ruby-go 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.
- checksums.yaml +4 -4
- data/lib/game.rb +4 -12
- data/lib/stone.rb +3 -4
- data/test/go_test.rb +27 -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: 74efecc082ec565b2ffa7c416f8a28497706c895
|
4
|
+
data.tar.gz: 5f702299cf817f5fc56d70910b225ecc92879fd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1531c446d300958152b41c69c0b05a8f503f90f0bdc35cd041e52f15db2370000971f1b3f2a83acc5a3097a789a4a324a2a3a344979ef1e9a9a0785db7e2a779
|
7
|
+
data.tar.gz: 50b2b336a5f64132537ad193a0efe1c1a17867757539a730272fbbe6b4231f87f2eab036fb38ac67531bfcbf20289c8acee094458e84a43c0e5599878b9548eb
|
data/lib/game.rb
CHANGED
@@ -14,7 +14,7 @@ class Game
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def to_sgf
|
17
|
-
sgf = "(;GM[1]FF[4]CA[UTF-8]AP[jphager2]SZ[
|
17
|
+
sgf = "(;GM[1]FF[4]CA[UTF-8]AP[jphager2]SZ[19]PW[White]PB[Black]"
|
18
18
|
|
19
19
|
@moves.each do |move|
|
20
20
|
sgf << move[:stone].to_sgf
|
@@ -39,12 +39,8 @@ class Game
|
|
39
39
|
play(WhiteStone.new(x,y))
|
40
40
|
end
|
41
41
|
|
42
|
-
def
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
def white_pass
|
47
|
-
pass(:white)
|
42
|
+
def pass
|
43
|
+
@moves << {stone: NullStone.new(), captures: [], pass: true}
|
48
44
|
end
|
49
45
|
|
50
46
|
def undo
|
@@ -66,10 +62,6 @@ class Game
|
|
66
62
|
end
|
67
63
|
|
68
64
|
private
|
69
|
-
def pass(color)
|
70
|
-
@moves << {stone: NullStone.new(color), captures: [], pass: true}
|
71
|
-
end
|
72
|
-
|
73
65
|
def play(stone)
|
74
66
|
@board.place(stone)
|
75
67
|
@moves << {stone: stone, captures: [], pass: false}
|
@@ -83,7 +75,7 @@ class Game
|
|
83
75
|
captures = @moves[-2][:captures]
|
84
76
|
stone = @moves.last[:stone]
|
85
77
|
|
86
|
-
if captures
|
78
|
+
if captures == [stone]
|
87
79
|
undo
|
88
80
|
raise IllegalMove,
|
89
81
|
"You cannot capture the ko, play a ko threat first"
|
data/lib/stone.rb
CHANGED
@@ -88,15 +88,14 @@ class WhiteStone < Stone
|
|
88
88
|
end
|
89
89
|
|
90
90
|
class NullStone < Stone
|
91
|
-
def initialize(
|
91
|
+
def initialize(*args)
|
92
92
|
@x, @y = nil, nil
|
93
|
-
@color = color
|
94
93
|
end
|
95
94
|
|
96
95
|
def remove_from_board(board)
|
97
96
|
end
|
98
97
|
|
99
|
-
def
|
100
|
-
"
|
98
|
+
def to_sfg
|
99
|
+
""
|
101
100
|
end
|
102
101
|
end
|
data/test/go_test.rb
CHANGED
@@ -130,6 +130,32 @@ class GoTest < Minitest::Test
|
|
130
130
|
game.white(4,3)
|
131
131
|
end
|
132
132
|
end
|
133
|
-
end
|
134
133
|
|
134
|
+
def big_capture_area_game
|
135
|
+
game = Game.new
|
136
|
+
game.black(0,0)
|
137
|
+
game.white(1,1)
|
138
|
+
game.black(0,1)
|
139
|
+
game.white(0,2)
|
140
|
+
game.black(1,0)
|
141
|
+
game.white(2,0)
|
142
|
+
game
|
143
|
+
end
|
135
144
|
|
145
|
+
def test_can_play_in_previous_capture_area_that_is_not_a_ko
|
146
|
+
game = big_capture_area_game
|
147
|
+
assert_equal Liberty.new(0,0), game.board.at(0,0)
|
148
|
+
game.black(0,0)
|
149
|
+
assert_equal BlackStone.new(0,0), game.board.at(0,0)
|
150
|
+
|
151
|
+
game = big_capture_area_game
|
152
|
+
assert_equal Liberty.new(0,1), game.board.at(0,1)
|
153
|
+
game.black(0,1)
|
154
|
+
assert_equal BlackStone.new(0,1), game.board.at(0,1)
|
155
|
+
|
156
|
+
game = big_capture_area_game
|
157
|
+
assert_equal Liberty.new(1,0), game.board.at(1,0)
|
158
|
+
game.black(1,0)
|
159
|
+
assert_equal BlackStone.new(1,0), game.board.at(1,0)
|
160
|
+
end
|
161
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-go
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jphager2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: SgfParser
|