Pawns can take opponents chess
authorJaroslav Tulach <jtulach@netbeans.org>
Fri, 26 Jul 2013 17:21:50 +0200
branchchess
changeset 357ae0125d57b2
parent 34 1ebd52ae8ccb
child 38 7b98c561321d
Pawns can take opponents
chess/src/main/java/org/apidesign/html/demo/chess/Rules.java
chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java
     1.1 --- a/chess/src/main/java/org/apidesign/html/demo/chess/Rules.java	Fri Jul 26 17:14:25 2013 +0200
     1.2 +++ b/chess/src/main/java/org/apidesign/html/demo/chess/Rules.java	Fri Jul 26 17:21:50 2013 +0200
     1.3 @@ -126,5 +126,14 @@
     1.4                  }
     1.5              }
     1.6          }
     1.7 +        BoardModel.ColorType opposite = white ? BoardModel.ColorType.BLACK : BoardModel.ColorType.WHITE;
     1.8 +        Square takeLeft = BoardModel.findSquare(b, (char)(s.getX() - 1), s.getY() + dy);
     1.9 +        if (takeLeft != null && takeLeft.getPieceColor() == opposite) {
    1.10 +            takeLeft.setAccessible(true);
    1.11 +        }
    1.12 +        Square takeRight = BoardModel.findSquare(b, (char)(s.getX() + 1), s.getY() + dy);
    1.13 +        if (takeRight != null && takeRight.getPieceColor() == opposite) {
    1.14 +            takeRight.setAccessible(true);
    1.15 +        }
    1.16      }
    1.17  }
     2.1 --- a/chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java	Fri Jul 26 17:14:25 2013 +0200
     2.2 +++ b/chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java	Fri Jul 26 17:21:50 2013 +0200
     2.3 @@ -120,4 +120,23 @@
     2.4          assertEquals(f3.getPiece(), PieceType.KNIGHT, "Moved");
     2.5          assertFalse(g3.isSelected(), "No longer selected");
     2.6      }
     2.7 +    
     2.8 +    @Test public void pawnCanTakeToSide() {
     2.9 +        Board b = BoardModel.createBoard();
    2.10 +        Square e2 = BoardModel.findSquare(b, 'E', 2);
    2.11 +        Square e4 = BoardModel.findSquare(b, 'E', 4);
    2.12 +        Square d7 = BoardModel.findSquare(b, 'D', 7);
    2.13 +        Square d5 = BoardModel.findSquare(b, 'D', 5);
    2.14 +        
    2.15 +        BoardModel.selected(b, e2);
    2.16 +        BoardModel.selected(b, e4);
    2.17 +        BoardModel.selected(b, d7);
    2.18 +        BoardModel.selected(b, d5);
    2.19 +        
    2.20 +        BoardModel.selected(b, e4);
    2.21 +        assertTrue(d5.isAccessible(), "Can take on d5");
    2.22 +        BoardModel.selected(b, d5);
    2.23 +        assertNull(e4.getPiece(), "No pawn on e4");
    2.24 +        assertEquals(d5.getPieceColor(), ColorType.WHITE, "White Pawn on d5");
    2.25 +    }
    2.26  }