patience 0.1.0 → 0.1.1

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.
@@ -1,6 +1,11 @@
1
1
  Patience changelog
2
2
  ==================
3
3
 
4
+ ## v0.1.1 (April 03, 2012)
5
+
6
+ * Noticeably improved graphics (it's like a whole new game!)
7
+ * Fixed minor bugs
8
+
4
9
  ## v0.1.0 (March 06, 2012)
5
10
 
6
11
  * Initial release.
@@ -98,7 +98,8 @@ module Patience
98
98
  sprite.collide?(other_card.sprite) and self.not.eql?(other_card)
99
99
  end
100
100
 
101
- def_delegators :@sprite, :pos, :pos=, :x, :y, :to_rect
101
+ def_delegators :@sprite, :pos, :pos=, :x, :y, :to_rect,
102
+ :sprite_width, :sprite_height
102
103
  def_delegator :"@sprite.to_rect", :contain?, :hit?
103
104
 
104
105
  class DefunctRank < StandardError; end
@@ -65,7 +65,9 @@ module Patience
65
65
  # Adds a card from Stock to Waste, if Stock was clicked.
66
66
  def stock
67
67
  if stock?
68
+
68
69
  if pile.empty?
70
+ return if @areas[:waste].cards.size == 1
69
71
  pile_background = 'patience/sprites/pile_background.png'
70
72
  pile.background = Ray::Sprite.new path_of(pile_background)
71
73
  refill_stock
@@ -74,9 +76,15 @@ module Patience
74
76
  end
75
77
 
76
78
  if pile.empty?
77
- empty_stock = 'patience/sprites/empty_stock.png'
78
- pile.background = Ray::Sprite.new path_of(empty_stock)
79
+ if @areas[:waste].cards.size == 1
80
+ fully_empty_stock = 'patience/sprites/fully_empty_stock.png'
81
+ pile.background = Ray::Sprite.new path_of(fully_empty_stock)
82
+ else
83
+ empty_stock = 'patience/sprites/empty_stock.png'
84
+ pile.background = Ray::Sprite.new path_of(empty_stock)
85
+ end
79
86
  end
87
+
80
88
  end
81
89
  end
82
90
 
@@ -21,7 +21,7 @@ module Patience
21
21
  # Changes position of the card's sprite, considering the offset.
22
22
  def move(mouse_pos)
23
23
  @tail_cards.keys.each_with_index do |card, i|
24
- card.pos = mouse_pos + @offset + [0, i*20]
24
+ card.pos = mouse_pos + @offset + [0, i*19]
25
25
  end
26
26
  end
27
27
 
@@ -17,14 +17,14 @@ module Patience
17
17
  attr_reader :scenario
18
18
 
19
19
  def initialize(click, areas)
20
- @cards = click.cards
21
- @areas = areas
22
- @pile = click.pile
20
+ @cards = click.cards
21
+ @areas = areas
22
+ @pile = click.pile
23
23
  @card_to_drop = click.card
24
24
 
25
25
  @card_beneath = find_card_beneath
26
26
  @pile_beneath = find_pile_beneath
27
- @area = find_area_beneath
27
+ @area = find_area_beneath
28
28
 
29
29
  @scenario = -> {
30
30
  if tableau?
@@ -51,21 +51,25 @@ module Patience
51
51
  detect_in(@areas, :pile) do |pile|
52
52
  # If dropped card is a king or an ace, don't
53
53
  # check, whether a pile includes card beneath.
54
- pile != @pile and pile.overlaps?(@card_to_drop) and
55
- (king_or_ace ? pile.empty? : pile.cards.include?(@card_beneath))
54
+ pile != @pile && pile.overlaps?(@card_to_drop) &&
55
+ (if king_or_ace
56
+ pile.empty? || (@card_beneath && @card_beneath.rank.queen?)
57
+ else
58
+ pile.cards.include?(@card_beneath)
59
+ end)
56
60
  end
57
61
  end
58
62
 
59
63
  # Finds a card beneath the dropped card.
60
64
  def find_card_beneath
61
- all_tail_cards = @areas.values.map do |area|
65
+ all_tail_cards = @areas.values.flat_map do |area|
62
66
  area.piles.map { |pile| pile.cards.last }
63
- end.flatten.compact
67
+ end.compact
64
68
 
65
69
  # Iterate only over tail cards.
66
70
  all_tail_cards.find do |card|
67
71
  area = detect_in(@areas, :area) { |area| area.cards.include?(card)}
68
- card.face_up? and card.overlaps?(@card_to_drop) and
72
+ card.face_up? && card.overlaps?(@card_to_drop) &&
69
73
  (case area
70
74
  when Tableau then tableau_conditions?(card)
71
75
  when Foundation then foundation_conditions?(card)
@@ -76,15 +80,15 @@ module Patience
76
80
  # Returns true, if card's rank is higher by 1 than the rank of
77
81
  # the card which is dropped and the card's suit has different color.
78
82
  def tableau_conditions?(card)
79
- card.rank.higher_by_one_than?(@card_to_drop.rank) and
83
+ card.rank.higher_by_one_than?(@card_to_drop.rank) &&
80
84
  card.suit.different_color?(@card_to_drop.suit)
81
85
  end
82
86
 
83
87
  # Returns true, if card's rank is lower by 1 than the rank of the
84
88
  # card, which is dropped and the card's suit must be the same color.
85
89
  def foundation_conditions?(card)
86
- @card_to_drop.rank.higher_by_one_than?(card.rank) and
87
- card.suit.same_color?(@card_to_drop.suit)
90
+ @card_to_drop.rank.higher_by_one_than?(card.rank) &&
91
+ card.suit == @card_to_drop.suit
88
92
  end
89
93
 
90
94
  # Removes card from its pile and adds to the pile beneath.
@@ -100,17 +104,17 @@ module Patience
100
104
  # Returns true, if dropped card meets
101
105
  # requirements for dropping into Tableau.
102
106
  def can_put_in_tableau?
103
- (@pile_beneath.empty? and @card_to_drop.rank.king?) or
104
- (@card_beneath and @card_to_drop.rank.not.ace? and
105
- @pile_beneath.last_card?(@card_beneath) and
107
+ (@pile_beneath.empty? && @card_to_drop.rank.king?) ||
108
+ (@card_beneath && @card_to_drop.rank.not.ace? &&
109
+ @pile_beneath.last_card?(@card_beneath) &&
106
110
  tableau_conditions?(@card_beneath))
107
111
  end
108
112
 
109
113
  # Returns true, if dropped card meets
110
114
  # requirements for dropping into Foundation.
111
115
  def can_put_in_foundation?
112
- (@pile_beneath.empty? and @card_to_drop.rank.ace?) or
113
- (@card_beneath and foundation_conditions?(@card_beneath))
116
+ (@pile_beneath.empty? && @card_to_drop.rank.ace?) ||
117
+ (@card_beneath && foundation_conditions?(@card_beneath))
114
118
  end
115
119
 
116
120
  # Adds dropped card to one of Tableau's piles, if it's
@@ -120,9 +124,9 @@ module Patience
120
124
  @cards.keys.each_with_index do |card, i|
121
125
  add_to_pile_beneath(card)
122
126
  if @pile_beneath.size == 1 # It was empty one line before.
123
- card.pos = @pile_beneath.pos + [0, i*20]
127
+ card.pos = @pile_beneath.pos + [0, i*19]
124
128
  else
125
- card.pos = @pile_beneath.cards[-2].pos + [0, 20]
129
+ card.pos = @pile_beneath.cards[-2].pos + [0, 19]
126
130
  end
127
131
  @pile.cards.last.face_up unless @pile.empty?
128
132
  end
@@ -11,7 +11,7 @@ module Patience
11
11
 
12
12
  def initialize
13
13
  super([], 4)
14
- self.pos = [361, 23]
14
+ self.pos = [356, 23]
15
15
  end
16
16
 
17
17
  protected
@@ -20,8 +20,11 @@ module Patience
20
20
  # of every pile in this area, starting from the pos argument.
21
21
  def pos=(pos)
22
22
  x, y, step_x = pos[0], pos[1], 110
23
+ foundation_bg = path_of('patience/sprites/foundation_bg.png')
24
+
23
25
  piles.each do |pile|
24
26
  pile.pos = [x, y]
27
+ pile.background = Ray::Sprite.new foundation_bg
25
28
  x += step_x # Margin between piles along the axis X.
26
29
  end
27
30
  end
@@ -30,7 +30,20 @@ module Patience
30
30
 
31
31
  # Appends card to the pile considering position of that pile.
32
32
  def <<(other_card)
33
+ bg_w = self.background.sub_rect.w
34
+ bg_h = self.background.sub_rect.h
35
+ sprite_w = other_card.sprite_width
36
+ sprite_h = other_card.sprite_height
37
+
33
38
  other_card.pos = self.pos
39
+
40
+ if bg_w > sprite_w && bg_h > sprite_h
41
+ w = bg_w - sprite_w
42
+ h = bg_h - sprite_h
43
+
44
+ other_card.pos += [w/2, h/2]
45
+ end
46
+
34
47
  cards << other_card
35
48
  end
36
49
 
@@ -39,13 +39,9 @@ module Patience
39
39
  @num <=> other_rank.to_i
40
40
  end
41
41
 
42
- def ace?
43
- @num == 1
44
- end
45
-
46
- def king?
47
- @num == 13
48
- end
42
+ def ace?; @num == 1; end
43
+ def king?; @num == 13; end
44
+ def queen?; @num == 12; end
49
45
 
50
46
  def higher_by_one_than?(other_rank)
51
47
  @num - other_rank.to_i == 1
@@ -4,7 +4,7 @@ module Patience
4
4
  class GameScene < Ray::Scene
5
5
 
6
6
  def setup
7
- @bg_color = Ray::Color.new(31, 95, 25)
7
+ @bg_sprite = Ray::Sprite.new path_of('patience/sprites/table_bg.png')
8
8
  @cursor = Cursor.new
9
9
  @deck = Deck.new
10
10
  @deck.cards.shuffle!
@@ -54,7 +54,7 @@ module Patience
54
54
  end
55
55
 
56
56
  def render(win)
57
- win.clear @bg_color
57
+ win.draw @bg_sprite
58
58
  @areas.values.to_a.each { |area| area.draw_on(win) }
59
59
  # Draw the card, which is being dragged.
60
60
  if @cursor.drawable?
@@ -13,7 +13,7 @@ module Patience
13
13
  def initialize(cards)
14
14
  super(cards, 1)
15
15
  self.piles.first.cards += @cards.shuffle_off!(24).each(&:face_down)
16
- self.pos = [31, 23]
16
+ self.pos = [31, 27]
17
17
  end
18
18
 
19
19
  end
@@ -59,13 +59,13 @@ module Patience
59
59
  # Returns true, if the color of suit is
60
60
  # the same as the color of other suit.
61
61
  def same_color?(other_suit)
62
- (black? and other_suit.black?) or (red? and other_suit.red?)
62
+ (black? && other_suit.black?) || (red? && other_suit.red?)
63
63
  end
64
64
 
65
65
  # Returns true if the color of suit
66
66
  # of differs from other suit's color.
67
67
  def different_color?(other_suit)
68
- (black? and other_suit.red?) or (red? and other_suit.black?)
68
+ (black? && other_suit.red?) || (red? && other_suit.black?)
69
69
  end
70
70
 
71
71
  end
@@ -17,7 +17,7 @@ module Patience
17
17
  def initialize(cards)
18
18
  super(cards, 7)
19
19
  @piles.each_with_index { |pile, i| pile.cards += @cards.shuffle_off!(i+1) }
20
- self.pos = [31, 165]
20
+ self.pos = [31, 175]
21
21
  end
22
22
 
23
23
  protected
@@ -25,14 +25,16 @@ module Patience
25
25
  # Disposes Tableau in the window by specifying coordinates
26
26
  # of every pile in this area, starting from the pos argument.
27
27
  def pos=(pos)
28
- x, y, step_x, step_y = pos[0], pos[1], 110, 26
28
+ x, y, step_x, step_y = pos[0], pos[1], 110, 10
29
+
29
30
  piles.each { |pile|
30
31
  pile.pos = [x, y]
31
32
  x += step_x # Margin between piles along the axis X.
32
33
  y2 = 0 # Y position of the first card.
34
+
33
35
  pile.cards.each_with_index do |card, i|
34
36
  card.sprite.y += y2
35
- y2 += step_y # Margin between cards along the axis Y.
37
+ y2 += step_y # Y axis margin.
36
38
  card.face_down unless pile.last_card?(card)
37
39
  end
38
40
  }
@@ -1,3 +1,3 @@
1
1
  module Patience
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -11,7 +11,8 @@ module Patience
11
11
 
12
12
  def initialize
13
13
  super([], 1)
14
- self.pos = [141, 23]
14
+ self.pos = [141, 27]
15
+ self.piles[0].background = Ray::Sprite.new # Emptiness.
15
16
  end
16
17
 
17
18
  end
@@ -14,14 +14,14 @@ module Patience
14
14
 
15
15
  def setup
16
16
  @mouse_pos_missclick = Ray::Vector2[0, 0]
17
- @mouse_pos_hit = Ray::Vector2[32, 166]
17
+ @mouse_pos_hit = Ray::Vector2[32, 175]
18
18
  @deck = Deck.new
19
19
  @areas = { :tableau => Tableau.new(@deck.shuffle_off! 28),
20
20
  :waste => Waste.new,
21
21
  :stock => Stock.new(@deck.shuffle_off! 10) }
22
22
  @dummy_click_miss = Dummy.new(@mouse_pos_missclick, @areas)
23
23
  @dummy_click_hit = Dummy.new(@mouse_pos_hit, @areas)
24
- @stock_hit = Dummy.new(Ray::Vector2[32, 24], @areas)
24
+ @stock_hit = Dummy.new(Ray::Vector2[32, 28], @areas)
25
25
  end
26
26
 
27
27
  def fill_attributes_up(click)
@@ -55,21 +55,21 @@ module Patience
55
55
 
56
56
  test 'A card can be selected by click' do
57
57
  # Hit
58
- tableau_click = Dummy.new(Ray::Vector2[472, 270], @areas)
58
+ tableau_click = Dummy.new(Ray::Vector2[472, 176], @areas)
59
59
  assert_nil tableau_click.card
60
60
  assert_nil tableau_click.cards
61
61
  tableau_click.pile = @areas[:tableau].piles[4]
62
62
 
63
63
  [Card.new(3, 1), Card.new(2, 4)].each do |card|
64
64
  @areas[:tableau].piles[4] << card
65
- card.pos = @areas[:tableau].piles[4].cards[-2].pos + [0, 20]
65
+ card.pos = @areas[:tableau].piles[4].cards[-2].pos + [0, 19]
66
66
  end
67
67
 
68
68
  tableau_click.cards = tableau_click.send(:collect_cards).map(&:first)
69
69
  assert tableau_click.cards
70
- assert_instance_of Card::Rank::Four, tableau_click.cards[0].rank
70
+ assert_instance_of Card::Rank::Three, tableau_click.cards[0].rank
71
71
  assert_instance_of Card::Rank::Three, tableau_click.cards[1].rank
72
- assert_instance_of Card::Rank::Two, tableau_click.cards[2].rank
72
+ assert_instance_of Card::Rank::Four, tableau_click.cards[2].rank
73
73
 
74
74
  # Miss
75
75
  assert_nil @dummy_click_miss.card
@@ -15,7 +15,6 @@ module Patience
15
15
  @mouse_pos = Ray::Vector2[361, 243]
16
16
  @deck = Deck.new
17
17
  @areas = { :tableau => Tableau.new(@deck.shuffle_off! 28),
18
- :waste => Waste.new,
19
18
  :foundation => Foundation.new }
20
19
  @click = EventHandler::Click.new(@mouse_pos, @areas)
21
20
  @drop = Dummy.new(@click, @areas)
@@ -90,13 +89,13 @@ module Patience
90
89
  end
91
90
 
92
91
  test 'A dropped card can be called off' do
93
- assert_equal Ray::Vector2[361, 243], @drop.card_to_drop.pos
92
+ assert_equal Ray::Vector2[361, 205], @drop.card_to_drop.pos
94
93
 
95
94
  @drop.card_to_drop.pos = Ray::Vector2[0, 0]
96
95
  assert_equal Ray::Vector2[0, 0], @drop.card_to_drop.pos
97
96
 
98
97
  @drop.send(:call_off)
99
- assert_equal Ray::Vector2[361, 243], @drop.card_to_drop.pos
98
+ assert_equal Ray::Vector2[361, 205], @drop.card_to_drop.pos
100
99
  end
101
100
 
102
101
  test 'A dropped card can be added to the pile beneath' do
@@ -153,22 +152,22 @@ module Patience
153
152
  end
154
153
 
155
154
  test 'A dropped card can be put in Foundation' do
156
- @click = EventHandler::Click.new(Ray::Vector2[32, 165], @areas)
155
+ @click = EventHandler::Click.new(Ray::Vector2[32, 176], @areas)
157
156
  @drop = Dummy.new(@click, @areas)
158
- @drop.card_to_drop.pos = Ray::Vector2[362, 23]
157
+ @drop.card_to_drop.pos = Ray::Vector2[467, 24]
159
158
  fill_attributes_up(@drop)
160
159
  @drop.send(:put_in_foundation)
161
- assert_equal 1, @areas[:foundation].piles[0].size
160
+ assert_equal 1, @areas[:foundation].piles[1].size
162
161
 
163
162
  last_card = @areas[:tableau].piles[2].cards.last
164
163
  @areas[:tableau].piles[2].cards.delete(last_card)
165
164
  @areas[:tableau].piles[2].cards.last.flip!
166
165
  @click = EventHandler::Click.new(Ray::Vector2[252, 192], @areas)
167
166
  @drop = Dummy.new(@click, @areas)
168
- @drop.card_to_drop.pos = Ray::Vector2[362, 23]
167
+ @drop.card_to_drop.pos = Ray::Vector2[467, 24]
169
168
  fill_attributes_up(@drop)
170
169
  @drop.send(:put_in_foundation)
171
- assert_equal 2, @areas[:foundation].piles[0].size
170
+ assert_equal 2, @areas[:foundation].piles[1].size
172
171
  end
173
172
 
174
173
  end
@@ -16,13 +16,13 @@ module Patience
16
16
  end
17
17
 
18
18
  test 'Overall position of foundation can be gotten' do
19
- assert_equal Ray::Vector2[361, 23], @foundation.pos
20
- assert_equal Ray::Vector2[361, 23], @foundation.piles.first.pos
19
+ assert_equal Ray::Vector2[356, 23], @foundation.pos
20
+ assert_equal Ray::Vector2[356, 23], @foundation.piles.first.pos
21
21
  end
22
22
 
23
23
  test 'Particular position of a pile in foundation can be gotten' do
24
- assert_equal Ray::Vector2[471, 23], @foundation.piles[1].pos
25
- assert_equal Ray::Vector2[581, 23], @foundation.piles[2].pos
24
+ assert_equal Ray::Vector2[466, 23], @foundation.piles[1].pos
25
+ assert_equal Ray::Vector2[576, 23], @foundation.piles[2].pos
26
26
  end
27
27
 
28
28
  test 'Foundation can be disposed in the window' do
@@ -17,7 +17,7 @@ module Patience
17
17
  def setup
18
18
  @dummy = Dummy.new
19
19
  @mouse_pos_miss = Ray::Vector2[0, 0]
20
- @mouse_pos_hit = Ray::Vector2[32, 166]
20
+ @mouse_pos_hit = Ray::Vector2[45, 176]
21
21
  @deck = Deck.new
22
22
  @areas = { :tableau => Tableau.new(@deck.shuffle_off! 28),
23
23
  :stock => Stock.new(@deck.shuffle_off! 24),
@@ -63,7 +63,7 @@ module Patience
63
63
  assert_equal Tableau, @dummy.find_area_in(@areas) { |area|
64
64
  area.hit?(@mouse_pos_hit)
65
65
  }.class
66
- mouse_pos_hit_stock = Ray::Vector2[31, 65]
66
+ mouse_pos_hit_stock = Ray::Vector2[32, 65]
67
67
  assert_equal Stock, @dummy.find_area_in(@areas) { |area|
68
68
  area.hit?(mouse_pos_hit_stock)
69
69
  }.class
@@ -83,7 +83,7 @@ module Patience
83
83
  end
84
84
 
85
85
  test 'Processable can find a card' do
86
- mouse_pos_hit_stock = Ray::Vector2[31, 65]
86
+ mouse_pos_hit_stock = Ray::Vector2[32, 65]
87
87
  assert_equal Card, @dummy.find_card_in(@areas) { |card|
88
88
  card.hit?(@mouse_pos_hit)
89
89
  }.class
@@ -131,7 +131,7 @@ module Patience
131
131
 
132
132
  test 'Processable can count an offset' do
133
133
  @dummy.find_all(@areas, @mouse_pos_hit)
134
- assert_equal Ray::Vector2[-1, -1],
134
+ assert_equal Ray::Vector2[-14, -1],
135
135
  @dummy.pick_up(@areas[:tableau].cards[0], @mouse_pos_hit)
136
136
  end
137
137
 
@@ -140,18 +140,13 @@ module Patience
140
140
  assert @dummy.stock?
141
141
  end
142
142
 
143
- test 'Processable can check, if Waste has been hit' do
144
- @dummy.find_all(@areas, Ray::Vector2[160, 40])
145
- assert @dummy.waste?
146
- end
147
-
148
143
  test 'Processable can check, if Tableau has been hit' do
149
- @dummy.find_all(@areas, Ray::Vector2[32, 166])
144
+ @dummy.find_all(@areas, Ray::Vector2[32, 176])
150
145
  assert @dummy.tableau?
151
146
  end
152
147
 
153
148
  test 'Processable can check, if Foundation has been hit' do
154
- @dummy.find_all(@areas, Ray::Vector2[590, 40])
149
+ @dummy.find_all(@areas, Ray::Vector2[577, 24])
155
150
  assert @dummy.foundation?
156
151
  end
157
152
 
@@ -84,5 +84,13 @@ module Patience
84
84
  refute ace_rank.king?
85
85
  end
86
86
 
87
+ test "A rank can be checked, if it's a queen" do
88
+ ace_rank = Patience::Card::Rank::Ace.new
89
+ queen_rank = Patience::Card::Rank::Queen.new
90
+
91
+ assert queen_rank.queen?
92
+ refute ace_rank.queen?
93
+ end
94
+
87
95
  end
88
96
  end
@@ -28,8 +28,8 @@ module Patience
28
28
  end
29
29
 
30
30
  test 'The overall position of Stock can be gotten' do
31
- assert_equal Ray::Vector2[31, 23], @stock.pos
32
- assert_equal Ray::Vector2[31, 23], @stock.piles.first.pos
31
+ assert_equal Ray::Vector2[31, 27], @stock.pos
32
+ assert_equal Ray::Vector2[31, 27], @stock.piles.first.pos
33
33
  end
34
34
 
35
35
  test 'Stock can be disposed in the window' do
@@ -26,14 +26,14 @@ module Patience
26
26
  end
27
27
 
28
28
  test 'The overall position of Tableau can be gotten' do
29
- assert_equal Ray::Vector2[31, 165], @tableau.pos
30
- assert_equal Ray::Vector2[31, 165], @tableau.piles.first.pos
29
+ assert_equal Ray::Vector2[31, 175], @tableau.pos
30
+ assert_equal Ray::Vector2[31, 175], @tableau.piles.first.pos
31
31
  end
32
32
 
33
33
  test 'Particular position of a pile in Tableau can be gotten' do
34
- assert_equal Ray::Vector2[141, 165], @tableau.piles[1].pos
35
- assert_equal Ray::Vector2[251, 165], @tableau.piles[2].pos
36
- assert_equal Ray::Vector2[691, 165], @tableau.piles.last.pos
34
+ assert_equal Ray::Vector2[141, 175], @tableau.piles[1].pos
35
+ assert_equal Ray::Vector2[251, 175], @tableau.piles[2].pos
36
+ assert_equal Ray::Vector2[691, 175], @tableau.piles.last.pos
37
37
  end
38
38
 
39
39
  test 'Tableau can be disposed in the window' do
@@ -46,11 +46,11 @@ module Patience
46
46
  end
47
47
 
48
48
  test 'Cards in Tableau have a margin along the Y axis' do
49
- assert_equal Ray::Vector2[31, 165], @tableau.piles[0].cards[0].pos
50
- assert_equal Ray::Vector2[251, 191], @tableau.piles[2].cards[1].pos
51
- assert_equal Ray::Vector2[471, 191], @tableau.piles[4].cards[1].pos
52
- assert_equal Ray::Vector2[581, 217], @tableau.piles[5].cards[2].pos
53
- assert_equal Ray::Vector2[691, 321], @tableau.piles.last.cards.last.pos
49
+ assert_equal Ray::Vector2[31, 175], @tableau.piles[0].cards[0].pos
50
+ assert_equal Ray::Vector2[251, 185], @tableau.piles[2].cards[1].pos
51
+ assert_equal Ray::Vector2[471, 185], @tableau.piles[4].cards[1].pos
52
+ assert_equal Ray::Vector2[581, 195], @tableau.piles[5].cards[2].pos
53
+ assert_equal Ray::Vector2[691, 235], @tableau.piles.last.cards.last.pos
54
54
  end
55
55
 
56
56
  end
@@ -4,7 +4,7 @@ module Patience
4
4
  class TestVERSION < TestCase
5
5
 
6
6
  test 'The Patience version is correct' do
7
- assert_equal "0.1.0", Patience::VERSION
7
+ assert_equal "0.1.1", Patience::VERSION
8
8
  end
9
9
 
10
10
  end
@@ -20,8 +20,8 @@ module Patience
20
20
  end
21
21
 
22
22
  test 'Overall position of Waste can be gotten' do
23
- assert_equal Ray::Vector2[141, 23], @waste.pos
24
- assert_equal Ray::Vector2[141, 23], @waste.piles.first.pos
23
+ assert_equal Ray::Vector2[141, 27], @waste.pos
24
+ assert_equal Ray::Vector2[141, 27], @waste.piles.first.pos
25
25
  end
26
26
 
27
27
  test 'Waste can be disposed in the window' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: patience
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-08 00:00:00.000000000 Z
12
+ date: 2012-04-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ray
16
- requirement: &76654590 !ruby/object:Gem::Requirement
16
+ requirement: &85106680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 0.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *76654590
24
+ version_requirements: *85106680
25
25
  description: Klondike solitaire game which is built with help of Ray game library.
26
26
  email: kyrylosilin@gmail.com
27
27
  executables:
@@ -36,8 +36,11 @@ files:
36
36
  - lib/patience/event_handlers/drop.rb
37
37
  - lib/patience/event_handlers/click.rb
38
38
  - lib/patience/event_handlers/drag.rb
39
+ - lib/patience/sprites/table_bg.png
39
40
  - lib/patience/sprites/empty_stock.png
41
+ - lib/patience/sprites/fully_empty_stock.png
40
42
  - lib/patience/sprites/card_deck.png
43
+ - lib/patience/sprites/foundation_bg.png
41
44
  - lib/patience/sprites/pile_background.png
42
45
  - lib/patience/card.rb
43
46
  - lib/patience/suit.rb