def test_illegal_moves(self): """ Pawns can only move into EMPTY tiles. Can't move into bombs, HARD, SOFT or off the board. """ board, clock = bnc() board.generate(3,3) pawn = Pawn() board.insertPawn((0,0), pawn) # off the board self.assertRaises(IllegalMove, pawn.move, 'l') self.assertRaises(IllegalMove, pawn.move, 'u') pawn.move('d') self.assertEqual(pawn.loc, (0,1)) # HARD self.assertRaises(IllegalMove, pawn.move, 'r') # SOFT self.assertRaises(IllegalMove, pawn.move, 'd') pawn.dropBomb() pawn.move('u') # on bomb self.assertRaises(IllegalMove, pawn.move, 'd')
def test_dropBomb_bomb(self): """ You can't drop a bomb on a tile that already has a bomb. """ board, clock = bnc() board.generate(5,5) pawn = Pawn() pawn.bombs = 2 board.insertPawn((0,0), pawn) pawn.dropBomb() self.assertRaises(IllegalMove, pawn.dropBomb) self.assertEqual(pawn.bombs, 1, "Should still have one")
def test_dropBomb(self): """ You can drop bombs on the board, which uses up one of the bombs until it explodes. """ board, clock = bnc() board.generate(5,5) pawn = Pawn() pawn.fuse = 3 board.insertPawn((0,0), pawn) pawn.dropBomb() self.assertEqual(pawn.bombs, 0, "Should use up a bomb") self.assertTrue((0,0) in board.bombs, "Bomb should be on" " the board") clock.advance(3) self.assertEqual(pawn.bombs, 1, "Should get the bomb back") self.assertFalse((0,0) in board.bombs)