# HG changeset patch # User Jaroslav Tulach # Date 1263735363 -3600 # Node ID d836818f5554b1811fd723af4f7b335e8c8c1f8f # Parent 4633b40ea42fc6a7e983ed3ba2b1439854011271 Decoding of vertical walls on column A was broken diff -r 4633b40ea42f -r d836818f5554 quoridor/src/main/java/cz/xelfi/quoridor/Board.java --- a/quoridor/src/main/java/cz/xelfi/quoridor/Board.java Wed Jan 13 16:57:55 2010 +0100 +++ b/quoridor/src/main/java/cz/xelfi/quoridor/Board.java Sun Jan 17 14:36:03 2010 +0100 @@ -878,7 +878,7 @@ for(int i=7; i 64){ + if(f >= 64){ o = Fence.Orientation.VERTICAL; f -= 64; } diff -r 4633b40ea42f -r d836818f5554 quoridor/src/test/java/cz/xelfi/quoridor/BoardCase.java --- a/quoridor/src/test/java/cz/xelfi/quoridor/BoardCase.java Wed Jan 13 16:57:55 2010 +0100 +++ b/quoridor/src/test/java/cz/xelfi/quoridor/BoardCase.java Sun Jan 17 14:36:03 2010 +0100 @@ -29,6 +29,7 @@ import cz.xelfi.quoridor.Player.Direction; import java.io.IOException; import java.io.StringReader; +import java.io.StringWriter; import java.util.List; import junit.framework.TestCase; @@ -500,6 +501,29 @@ assertFalse(f4.equals(f5)); assertFalse(f3.equals(f5)); } + + public void testBrokenWriteOfAGameDanVsJarda() throws Exception { + Board b = board.apply(Move.NORTH).apply(Move.SOUTH). + apply(Move.NORTH).apply(Move.SOUTH). + apply(Move.NORTH).apply(Move.SOUTH). + apply(Move.WEST).apply(Move.fence('C', 6, Orientation.HORIZONTAL)). + apply(Move.EAST).apply(Move.SOUTH). + apply(Move.fence('E', 2, Orientation.HORIZONTAL)).apply(Move.fence('E', 5, Orientation.HORIZONTAL)). + apply(Move.fence('F', 3, Orientation.VERTICAL)).apply(Move.fence('D', 6, Orientation.VERTICAL)). + apply(Move.jump(Direction.NORTH, Direction.EAST)).apply(Move.fence('F', 5, Orientation.VERTICAL)). + apply(Move.fence('E', 1, Orientation.VERTICAL)).apply(Move.fence('E', 4, Orientation.VERTICAL)). + apply(Move.fence('D', 8, Orientation.HORIZONTAL)).apply(Move.fence('D', 7, Orientation.HORIZONTAL)). + apply(Move.fence('D', 4, Orientation.HORIZONTAL)).apply(Move.fence('E', 8, Orientation.VERTICAL)). + apply(Move.fence('C', 3, Orientation.HORIZONTAL)).apply(Move.WEST). + apply(Move.fence('D', 2, Orientation.VERTICAL)).apply(Move.fence('A', 4, Orientation.HORIZONTAL)). + apply(Move.fence('B', 2, Orientation.HORIZONTAL)).apply(Move.WEST). + apply(Move.SOUTH).apply(Move.SOUTH). + apply(Move.SOUTH).apply(Move.WEST); + Board m = move(b, 0, Direction.WEST); + Board f = fence(m, 1, 'A', 1, Orientation.VERTICAL); + Board l = fence(f, 0, 'A', 3, Orientation.VERTICAL); + } + static Board picture2board(String text) throws IOException, IllegalPositionException { StringReader sr = new StringReader(text); return Board.read(sr);