just_backgammon 0.1.2 → 0.2.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 +4 -4
- data/README.md +6 -0
- data/lib/just_backgammon/bar.rb +1 -1
- data/lib/just_backgammon/game_state.rb +12 -12
- data/lib/just_backgammon/off_board.rb +4 -0
- data/lib/just_backgammon/point.rb +5 -1
- data/lib/just_backgammon/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58933064a92751418bd44c9a501b3aa4a3e790c6
|
4
|
+
data.tar.gz: 93e0594569139a5c978275a6be3f212ab45aab45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 966ffc0ebe3a5e90887ee6228b792e04ee220a8a4059fd2ee603bb7c17ee3c7cda17329d00992613cae51b784ce7a6aad76802db39bbf37728af3a13a3034b08
|
7
|
+
data.tar.gz: f3dcef6231fef144bf81acf90bba38a816798cf5afdf994993a4174f319a8961b42e9f6830f90e74a4dbc4e155e2bdf8e9e29162da15cff9c94767923d0e7c62
|
data/README.md
CHANGED
@@ -34,6 +34,12 @@ Moves can be made by passing in the player number, and an array of moves each co
|
|
34
34
|
game_state.move(1, [{from: 1, to: 2}]])
|
35
35
|
```
|
36
36
|
|
37
|
+
The last change with all its details are found in the `last_change` attribute
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
game_state.last_change
|
41
|
+
```
|
42
|
+
|
37
43
|
If something happens errors may be found in the errors attribute
|
38
44
|
|
39
45
|
```ruby
|
data/lib/just_backgammon/bar.rb
CHANGED
@@ -79,6 +79,7 @@ module JustBackgammon
|
|
79
79
|
@points = JustBackgammon::PointSet.load(points: points)
|
80
80
|
@off_board = JustBackgammon::OffBoard.load(off_board)
|
81
81
|
@errors = []
|
82
|
+
@last_change = {}
|
82
83
|
end
|
83
84
|
|
84
85
|
# Instantiates a new GameState object in the starting position
|
@@ -147,6 +148,9 @@ module JustBackgammon
|
|
147
148
|
# @return [Array<Error>] errors if any.
|
148
149
|
attr_reader :errors
|
149
150
|
|
151
|
+
# @return [Hash] the last change made.
|
152
|
+
attr_reader :last_change
|
153
|
+
|
150
154
|
# Rolls the dice
|
151
155
|
#
|
152
156
|
# Two dice are rolled and returns true on success.
|
@@ -172,6 +176,7 @@ module JustBackgammon
|
|
172
176
|
else
|
173
177
|
@dice.roll
|
174
178
|
step
|
179
|
+
@last_change = { type: 'roll', data: { player_number: player_number, dice: @dice.as_json } }
|
175
180
|
end
|
176
181
|
|
177
182
|
@errors.none?
|
@@ -204,6 +209,7 @@ module JustBackgammon
|
|
204
209
|
elsif move_valid?(move_list)
|
205
210
|
perform_move(move_list)
|
206
211
|
step
|
212
|
+
@last_change = { type: 'move', data: { player_number: player_number, list: list }}
|
207
213
|
end
|
208
214
|
|
209
215
|
@errors.none?
|
@@ -261,18 +267,12 @@ module JustBackgammon
|
|
261
267
|
|
262
268
|
def perform_move(list) # :nodoc:
|
263
269
|
list.each do |move|
|
264
|
-
from =
|
265
|
-
to =
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
popped = if from.is_a?(JustBackgammon::Bar)
|
272
|
-
from.pop_for_player(current_player_number)
|
273
|
-
else
|
274
|
-
from.pop
|
275
|
-
end
|
270
|
+
from = move.from
|
271
|
+
to = move.to
|
272
|
+
|
273
|
+
@bar.push(to.pop) if to.hittable?(current_player_number)
|
274
|
+
|
275
|
+
popped = from.pop(current_player_number)
|
276
276
|
|
277
277
|
to.push(popped)
|
278
278
|
end
|
@@ -42,7 +42,7 @@ module JustBackgammon
|
|
42
42
|
# Removes a piece and returns it.
|
43
43
|
#
|
44
44
|
# @return [Piece,NilClass]
|
45
|
-
def pop
|
45
|
+
def pop(_=nil)
|
46
46
|
@pieces.pop
|
47
47
|
end
|
48
48
|
|
@@ -95,6 +95,10 @@ module JustBackgammon
|
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
|
+
def hittable?(player_number)
|
99
|
+
owned_by_opponent?(player_number) && blot?
|
100
|
+
end
|
101
|
+
|
98
102
|
# A hashed serialized representation of the bar.
|
99
103
|
#
|
100
104
|
# @return [Hash]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: just_backgammon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Humphreys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|