pitchcar 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34b441fcb4b47af154322a33d400d5d44b45c991
4
- data.tar.gz: 317cfcab1c9f5d4b76f39c61cf0caade4818531e
3
+ metadata.gz: 3c87085eb4eec9b96a86d1299c0a787e9355517a
4
+ data.tar.gz: 67ebc8e58b5e251de59f5ea59050526310364922
5
5
  SHA512:
6
- metadata.gz: 4d2ed02d11e5532334700b213ebb56fecafdd285a674a0f157423b02b6b0afb35c5268ddede6eae2594c6a1643ab5b043bb6dc3e0734836a4bf7321a16acfb7c
7
- data.tar.gz: 5bb3282a7b02b483dd02221fca414e492b77808f38cff60d695fd85f610967d76d8a4900d2f7667421fad8195384017c65973f8fc0a7c6562ab93c510bed2c6c
6
+ metadata.gz: 846e2794000ba3c86f7481af1f38899052af0fbbf82c6a324362b3b21c55aee72e1c8688d8762eb30bde38f064b73fd948ac49f572aa09d6728952d721be0e9c
7
+ data.tar.gz: 85574ef85a7d5ee3e0f9409e0c16ce6f3eb1e7f20d89d143a476159154bb467aaafd1412402213fc2fece9138ff925ff46e04f2e2e4782c1df2c0b1b1d34b4ad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pitchcar (0.4.1)
4
+ pitchcar (0.6.0)
5
5
  bazaar
6
6
  rmagick
7
7
 
Binary file
Binary file
Binary file
data/lib/piece.rb CHANGED
@@ -3,10 +3,11 @@ require 'rmagick'
3
3
 
4
4
  module Pitchcar
5
5
  class Piece
6
- TYPES = { STRAIGHT: 0, LEFT: 1, RIGHT: 2, STRAIGHT_LEFT_WALL: 3, STRAIGHT_RIGHT_WALL: 4 }
6
+ TYPES = { STRAIGHT: 0, LEFT: 1, RIGHT: 2, STRAIGHT_LEFT_WALL: 3, STRAIGHT_RIGHT_WALL: 4, STRAIGHT_START: 5 }
7
7
  DIRECTIONS = { NORTH: 0, EAST: 1, WEST: 2, SOUTH: 3 }
8
- STRAIGHT_IMAGE, CURVE_IMAGE = Magick::ImageList.new(File.expand_path('../images/straight_tile.png', __FILE__),
9
- File.expand_path('../images/curve_tile.png', __FILE__)).to_a
8
+ STRAIGHT_IMAGE, CURVE_IMAGE, START_IMAGE = Magick::ImageList.new(File.expand_path('../images/straight_tile.png', __FILE__),
9
+ File.expand_path('../images/curve_tile.png', __FILE__),
10
+ File.expand_path('../images/start_tile.png', __FILE__)).to_a
10
11
  attr_accessor :direction, :x, :y, :type
11
12
 
12
13
  def self.starting_piece
@@ -66,11 +67,37 @@ module Pitchcar
66
67
  { x: x, y: y, type: TYPES.key(type).downcase, direction: DIRECTIONS.key(direction).downcase }
67
68
  end
68
69
 
70
+ # Slw N = Srw S
71
+ # Slw E = Srw W
72
+ # Slw W == Srw E
73
+ # Slw S = Srw N
74
+
69
75
  def image
76
+ if (type == TYPES[:STRAIGHT_LEFT_WALL] && direction == DIRECTIONS[:NORTH]) || (type == TYPES[:STRAIGHT_RIGHT_WALL] && direction == DIRECTIONS[:SOUTH])
77
+ return STRAIGHT_IMAGE.rotate(90)
78
+ elsif (type == TYPES[:STRAIGHT_LEFT_WALL] && direction == DIRECTIONS[:EAST]) || (type == TYPES[:STRAIGHT_RIGHT_WALL] && direction == DIRECTIONS[:WEST])
79
+ return STRAIGHT_IMAGE.rotate(180)
80
+ elsif (type == TYPES[:STRAIGHT_LEFT_WALL] && direction == DIRECTIONS[:WEST]) || (type == TYPES[:STRAIGHT_RIGHT_WALL] && direction == DIRECTIONS[:EAST])
81
+ return STRAIGHT_IMAGE
82
+ elsif (type == TYPES[:STRAIGHT_LEFT_WALL] && direction == DIRECTIONS[:SOUTH]) || (type == TYPES[:STRAIGHT_RIGHT_WALL] && direction == DIRECTIONS[:NORTH])
83
+ return STRAIGHT_IMAGE.rotate(270)
84
+ end
85
+
70
86
  case type
71
- when TYPES[:STRAIGHT], TYPES[:STRAIGHT_LEFT_WALL], TYPES[:STRAIGHT_RIGHT_WALL]
87
+ when TYPES[:STRAIGHT]
72
88
  return STRAIGHT_IMAGE.rotate(90) if direction == DIRECTIONS[:NORTH] || direction == DIRECTIONS[:SOUTH]
73
- return STRAIGHT_IMAGE
89
+ STRAIGHT_IMAGE
90
+ when TYPES[:STRAIGHT_START]
91
+ case direction
92
+ when DIRECTIONS[:NORTH]
93
+ START_IMAGE.rotate(270)
94
+ when DIRECTIONS[:EAST]
95
+ START_IMAGE
96
+ when DIRECTIONS[:WEST]
97
+ START_IMAGE.rotate(180)
98
+ when DIRECTIONS[:SOUTH]
99
+ START_IMAGE.rotate(90)
100
+ end
74
101
  when TYPES[:LEFT]
75
102
  case direction
76
103
  when DIRECTIONS[:NORTH]
data/lib/track.rb CHANGED
@@ -46,7 +46,6 @@ module Pitchcar
46
46
  end
47
47
 
48
48
  def to_s
49
- pieces[0].type = Piece::TYPES[:STRAIGHT_RIGHT_WALL]
50
49
  pieces.map(&:to_s).join(' ')
51
50
  end
52
51
 
@@ -69,6 +68,7 @@ module Pitchcar
69
68
  def overlaps?
70
69
  @overlaps ||= pieces.group_by { |piece| [piece.x, piece.y] }.values.any? { |set| set.size > 1 }
71
70
  end
71
+ require 'pry'
72
72
 
73
73
  def with_wall_combinations(pieces = PieceList.new(self.pieces)[1..-1], combinations = [])
74
74
  straight_index = pieces.find_index { |piece| piece.type == Piece::TYPES[:STRAIGHT] }
@@ -81,8 +81,16 @@ module Pitchcar
81
81
  end
82
82
  combos
83
83
  else
84
- combinations << Track.new([self.pieces.first] + pieces)
84
+ track = Track.new([self.pieces.first] + pieces)
85
+ track.pieces.first.type = Piece::TYPES[:STRAIGHT_RIGHT_WALL]
86
+ random_right_wall = track.pieces.each_index.select do |index|
87
+ puts track.pieces[index].type
88
+ track.pieces[index].type == Piece::TYPES[:STRAIGHT_RIGHT_WALL]
89
+ end.sample
90
+ track.pieces[random_right_wall].type = Piece::TYPES[:STRAIGHT_START]
91
+ combinations << track
85
92
  end
93
+ return combinations
86
94
  end
87
95
 
88
96
  # Returns pieces list sorted from in a top-bottom left-right manner
data/lib/track_image.rb CHANGED
@@ -4,7 +4,7 @@ module Pitchcar
4
4
  class TrackImage
5
5
  attr_accessor :track
6
6
  TILE_SIZE = 570
7
- OFFSET_SIZE = -46
7
+ OFFSET_SIZE = -50
8
8
  TITLE_OFFSET = 200
9
9
  BLANK_TILE = Magick::Image.new(TILE_SIZE, TILE_SIZE) { |canvas| canvas.background_color = 'white' }
10
10
 
data/pitchcar.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'pitchcar'
3
- spec.version = '0.5.1'
3
+ spec.version = '0.6.0'
4
4
  spec.date = '2017-02-23'
5
5
  spec.summary = 'Pitchcar Track Generator'
6
6
  spec.description = 'Generates tracks for pitchcar'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pitchcar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonah Hirsch
@@ -50,6 +50,7 @@ files:
50
50
  - Readme.md
51
51
  - lib/boyermoore.rb
52
52
  - lib/images/curve_tile.png
53
+ - lib/images/start_tile.png
53
54
  - lib/images/straight_tile.png
54
55
  - lib/piece.rb
55
56
  - lib/pitchcar.rb