Decoding of vertical walls on column A was broken
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 17 Jan 2010 14:36:03 +0100
changeset 219d836818f5554
parent 218 4633b40ea42f
child 220 fca206f8e5ef
Decoding of vertical walls on column A was broken
quoridor/src/main/java/cz/xelfi/quoridor/Board.java
quoridor/src/test/java/cz/xelfi/quoridor/BoardCase.java
     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);