shogi-ruby 0.0.8 → 0.0.9
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/.travis.yml +3 -0
- data/NEWS.md +14 -0
- data/README.md +0 -1
- data/lib/shogi/format/csa/board.rb +24 -6
- data/lib/shogi/version.rb +1 -1
- data/test/test-board.rb +13 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 129ab7f9ea2e8b0576a5f13e10b62d42d3ce7ed4
|
4
|
+
data.tar.gz: 5c914717d7a5d59858dd430f01cb9af3981b59d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be4d6e244dc785666b37505396cf344b5f542b942b075fba215d90e852b145cc0b14194bc4c623303b83e83f1edc4528dad7cd034df0331c1df05f2a99cbae67
|
7
|
+
data.tar.gz: b2dec598efa163be2daf9b803c4d3ca371fa68245018d12199ec8a36ae633ada7f190087d6441f87bdd7aa302d0f673a6e978f0dccd3f0ea7a4552f1520a9c17
|
data/.travis.yml
CHANGED
data/NEWS.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# NEWS
|
2
2
|
|
3
|
+
## 0.0.9: 2016-06-24
|
4
|
+
|
5
|
+
### Changes
|
6
|
+
|
7
|
+
* Improvements
|
8
|
+
* Improved mevement error detection. [Patch by Shigeaki Matsumura]
|
9
|
+
* Implemented Nifu restriction in `move_by_csa`. [Patch by Toru YAGI]
|
10
|
+
|
11
|
+
### Thanks
|
12
|
+
|
13
|
+
* Shigeaki Matsumura
|
14
|
+
* Toru YAGI
|
15
|
+
|
3
16
|
## 0.0.8: 2015-05-31
|
4
17
|
|
5
18
|
### Changes
|
@@ -7,6 +20,7 @@
|
|
7
20
|
* Improvements
|
8
21
|
* Supported Bundler.require (require "shogi-ruby").
|
9
22
|
* Added Board.register and Cell.register as plugin system.
|
23
|
+
* Removed a deprecated method `move_from_csa`.
|
10
24
|
* Fixes
|
11
25
|
* Fixed error messages.
|
12
26
|
|
data/README.md
CHANGED
@@ -126,13 +126,31 @@ module Shogi
|
|
126
126
|
unless after_cell == ""
|
127
127
|
raise MoveError, "A piece exists in the cell: #{csa}"
|
128
128
|
end
|
129
|
+
if csa[5..6] == "FU"
|
130
|
+
(1..9).each do |y|
|
131
|
+
cell = @table[to_array_y_from_shogi_y(y)][after_x]
|
132
|
+
if cell[1..2] == "FU" && cell[0] == csa[0]
|
133
|
+
raise_movement_error("Your FU exists in the cell of the same column: #{csa[3]}#{y}")
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
129
137
|
else
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
138
|
+
sign = csa[0] == '+' ? 1 : -1
|
139
|
+
movement_x = (after_x - before_x) * sign
|
140
|
+
movement_y = (before_y - after_y) * sign
|
141
|
+
|
142
|
+
if (movement_x == 0 || movement_y == 0 || movement_x.abs == movement_y.abs) &&
|
143
|
+
[movement_x.abs, movement_y.abs].max >= 2
|
144
|
+
xs = (-(movement_x.abs-1)...0).map{|x| sign * (movement_x <=> 0) * x}
|
145
|
+
ys = (-(movement_y.abs-1)...0).map{|x| sign * (movement_y <=> 0) * x}
|
146
|
+
(xs.empty? ? [0] * ys.size : xs).zip(ys)
|
147
|
+
.map{|x, y| [csa[1].to_i + (x || 0), csa[2].to_i + (y || 0)]}
|
148
|
+
.each do |x, y|
|
149
|
+
if (1..9).include?(x) && (1..9).include?(y)
|
150
|
+
piece = @table[to_array_y_from_shogi_y(y)][to_array_x_from_shogi_x(x)]
|
151
|
+
raise_movement_error("Can't jump over a piece: #{piece}") if piece && !piece.empty?
|
152
|
+
end
|
153
|
+
end
|
136
154
|
end
|
137
155
|
|
138
156
|
unless before_piece.move?(movement_x, movement_y)
|
data/lib/shogi/version.rb
CHANGED
data/test/test-board.rb
CHANGED
@@ -138,6 +138,9 @@ lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL
|
|
138
138
|
assert_raise Shogi::MoveError do
|
139
139
|
assert_false(@board.move("+2827HI"))
|
140
140
|
end
|
141
|
+
assert_raise Shogi::MovementError do
|
142
|
+
assert_false(@board.move("+2826HI"))
|
143
|
+
end
|
141
144
|
assert_raise Shogi::MoveError do
|
142
145
|
assert_false(@board.move("+2625FU"))
|
143
146
|
end
|
@@ -147,6 +150,12 @@ lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL
|
|
147
150
|
assert_raise Shogi::MoveError do
|
148
151
|
assert_false(@board.move("-4131KI"))
|
149
152
|
end
|
153
|
+
assert_raise Shogi::MovementError do
|
154
|
+
assert_false(@board.move("+8855KA"))
|
155
|
+
end
|
156
|
+
assert_raise Shogi::MovementError do
|
157
|
+
assert_false(@board.move("-1115KY"))
|
158
|
+
end
|
150
159
|
|
151
160
|
assert_nothing_raised do
|
152
161
|
@board.move("+7776FU")
|
@@ -167,6 +176,10 @@ P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
|
|
167
176
|
P+
|
168
177
|
P-
|
169
178
|
EOT
|
179
|
+
|
180
|
+
assert_raise Shogi::MovementError do
|
181
|
+
assert_false(@board.move("+8833UM").move("-2233KA").move("+0016FU"))
|
182
|
+
end
|
170
183
|
end
|
171
184
|
|
172
185
|
def test_move_csa_chain
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shogi-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masafumi Yokoyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-unit
|
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
136
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.
|
137
|
+
rubygems_version: 2.5.1
|
138
138
|
signing_key:
|
139
139
|
specification_version: 4
|
140
140
|
summary: Shogi Library by Pure Ruby
|