1.1 --- a/quoridor/src/main/java/cz/xelfi/quoridor/Board.java Wed Jan 13 16:57:55 2010 +0100
1.2 +++ b/quoridor/src/main/java/cz/xelfi/quoridor/Board.java Sun Jan 17 14:36:03 2010 +0100
1.3 @@ -878,7 +878,7 @@
1.4 for(int i=7; i<c.length;i+=2){
1.5 int f = Integer.parseInt(hashCode.substring(i, i+2),16);
1.6 Fence.Orientation o = Fence.Orientation.HORIZONTAL;
1.7 - if(f > 64){
1.8 + if(f >= 64){
1.9 o = Fence.Orientation.VERTICAL;
1.10 f -= 64;
1.11 }
2.1 --- a/quoridor/src/test/java/cz/xelfi/quoridor/BoardCase.java Wed Jan 13 16:57:55 2010 +0100
2.2 +++ b/quoridor/src/test/java/cz/xelfi/quoridor/BoardCase.java Sun Jan 17 14:36:03 2010 +0100
2.3 @@ -29,6 +29,7 @@
2.4 import cz.xelfi.quoridor.Player.Direction;
2.5 import java.io.IOException;
2.6 import java.io.StringReader;
2.7 +import java.io.StringWriter;
2.8 import java.util.List;
2.9 import junit.framework.TestCase;
2.10
2.11 @@ -500,6 +501,29 @@
2.12 assertFalse(f4.equals(f5));
2.13 assertFalse(f3.equals(f5));
2.14 }
2.15 +
2.16 + public void testBrokenWriteOfAGameDanVsJarda() throws Exception {
2.17 + Board b = board.apply(Move.NORTH).apply(Move.SOUTH).
2.18 + apply(Move.NORTH).apply(Move.SOUTH).
2.19 + apply(Move.NORTH).apply(Move.SOUTH).
2.20 + apply(Move.WEST).apply(Move.fence('C', 6, Orientation.HORIZONTAL)).
2.21 + apply(Move.EAST).apply(Move.SOUTH).
2.22 + apply(Move.fence('E', 2, Orientation.HORIZONTAL)).apply(Move.fence('E', 5, Orientation.HORIZONTAL)).
2.23 + apply(Move.fence('F', 3, Orientation.VERTICAL)).apply(Move.fence('D', 6, Orientation.VERTICAL)).
2.24 + apply(Move.jump(Direction.NORTH, Direction.EAST)).apply(Move.fence('F', 5, Orientation.VERTICAL)).
2.25 + apply(Move.fence('E', 1, Orientation.VERTICAL)).apply(Move.fence('E', 4, Orientation.VERTICAL)).
2.26 + apply(Move.fence('D', 8, Orientation.HORIZONTAL)).apply(Move.fence('D', 7, Orientation.HORIZONTAL)).
2.27 + apply(Move.fence('D', 4, Orientation.HORIZONTAL)).apply(Move.fence('E', 8, Orientation.VERTICAL)).
2.28 + apply(Move.fence('C', 3, Orientation.HORIZONTAL)).apply(Move.WEST).
2.29 + apply(Move.fence('D', 2, Orientation.VERTICAL)).apply(Move.fence('A', 4, Orientation.HORIZONTAL)).
2.30 + apply(Move.fence('B', 2, Orientation.HORIZONTAL)).apply(Move.WEST).
2.31 + apply(Move.SOUTH).apply(Move.SOUTH).
2.32 + apply(Move.SOUTH).apply(Move.WEST);
2.33 + Board m = move(b, 0, Direction.WEST);
2.34 + Board f = fence(m, 1, 'A', 1, Orientation.VERTICAL);
2.35 + Board l = fence(f, 0, 'A', 3, Orientation.VERTICAL);
2.36 + }
2.37 +
2.38 static Board picture2board(String text) throws IOException, IllegalPositionException {
2.39 StringReader sr = new StringReader(text);
2.40 return Board.read(sr);