Esempio n. 1
0
  @Test
  public void testKing() {
    Board b = new Board(true);
    Piece water = new Piece(false, b, 2, 2, "bomb");
    Piece fire = new Piece(true, b, 1, 1, "pawn");
    Piece fire2 = new Piece(true, b, 2, 6, "shield");
    b.place(water, 2, 2);
    b.place(fire, 1, 1);
    b.place(fire2, 2, 6);

    assertEquals(false, water.isKing());
    assertEquals(false, fire2.isKing());
    assertEquals(fire, b.pieceAt(1, 1));

    fire2.move(3, 7);
    assertEquals(true, fire2.isKing());
    assertEquals(true, fire2.isFire());
    assertEquals(fire2, b.pieceAt(3, 7));

    water.move(0, 0);
    assertEquals(true, water.isKing());
    assertEquals(true, fire2.isKing());
    assertEquals(null, b.pieceAt(1, 1));
    assertEquals(null, b.pieceAt(0, 0));

    b.select(3, 7);
    assertEquals(true, b.canSelect(4, 6)); // fire can now move down
    assertEquals(false, b.canSelect(4, 8)); // out of bounds
  }
Esempio n. 2
0
  @Test
  public void testComplexSelection() {
    Board b = new Board(true);
    Piece water = new Piece(false, b, 4, 4, "pawn");
    Piece fire = new Piece(true, b, 5, 5, "pawn");
    Piece fire2 = new Piece(true, b, 6, 2, "bomb");
    b.place(water, 4, 4);
    b.place(fire, 3, 3);
    b.place(fire2, 6, 2);

    b.endTurn();

    b.select(4, 4);
    assertEquals(false, b.canSelect(3, 3)); // fire in the way
    assertEquals(false, b.canSelect(3, 5)); // water can only move down
    assertEquals(true, b.canSelect(5, 3));
    assertEquals(true, b.canSelect(2, 2)); // capturing

    b.select(5, 3);
    assertEquals(false, b.canSelect(4, 5)); // cannot select again
    assertEquals(false, b.canSelect(7, 1)); // cannot capture after not capturing

    assertEquals(fire2, b.pieceAt(6, 2));
    b.select(7, 1);
    assertEquals(water, b.pieceAt(7, 1));
    assertEquals(null, b.pieceAt(6, 2));
  }
Esempio n. 3
0
  @Test
  public void testCanSelectAndSelect() {
    Board b = new Board(true);
    Piece fire = new Piece(true, b, 2, 2, "pawn");
    Piece fire2 = new Piece(true, b, 6, 6, "pawn");
    Piece fire3 = new Piece(true, b, 5, 5, "pawn");
    Piece water = new Piece(false, b, 0, 0, "shield");

    b.place(fire, 2, 2);
    b.place(water, 0, 0);
    b.place(fire2, 6, 6);
    b.place(fire3, 5, 5);

    assertEquals(false, b.canSelect(4, 4)); // we must first select a piece
    assertEquals(true, b.canSelect(2, 2));
    assertEquals(false, b.canSelect(0, 0)); // cannot select the opposite piece

    b.select(2, 2);
    assertEquals(true, b.canSelect(2, 2)); // no penalty for reselecting the same piece
    assertEquals(true, b.canSelect(3, 3)); // we can move to an empty spot
    assertEquals(false, b.canSelect(2, 3));
    assertEquals(false, b.canSelect(4, 4)); // we cannot move 2x unless we capture
    assertEquals(true, b.canSelect(6, 6)); // we should be able to change select methods
    assertEquals(true, b.canSelect(1, 3));

    b.select(3, 3); // should move the piece
    assertEquals(fire, b.pieceAt(3, 3));
    assertEquals(false, b.canSelect(4, 4)); // cannot select again

    b.endTurn(); // switches to water piece
    assertEquals(true, b.canSelect(0, 0));
    assertEquals(false, b.canSelect(3, 3)); // cannot select fire piece

    b.select(0, 0);
    assertEquals(false, b.canSelect(1, 1)); // water can only move down	
  }
Esempio n. 4
0
  @Test
  public void testEndingTurn() {
    Board b = new Board(true);
    Piece fire = new Piece(true, b, 0, 0, "pawn");
    Piece water = new Piece(false, b, 1, 1, "shield");
    b.place(fire, 0, 0);
    b.place(water, 1, 1);

    assertEquals(true, b.canSelect(0, 0));
    assertEquals(false, b.canSelect(1, 1));
    assertEquals(false, b.canEndTurn());

    b.endTurn();
    b.endTurn();
    assertEquals(false, b.canEndTurn());
    assertEquals(true, b.canSelect(0, 0));
    assertEquals(false, b.canSelect(1, 1));

    b.endTurn();
    assertEquals(false, b.canSelect(0, 0));
    assertEquals(true, b.canSelect(1, 1));
  }