Esempio n. 1
0
    def test_attack_cell_kill_one_of_two_ships(self):
        game = Game()
        game.opponent_grid[5][5] = GameCell.SHIP.value
        game.opponent_grid[3][3] = GameCell.SHIP.value
        game.save()

        result = game.attack_cell(5, 5)

        self.assertEqual(AttackStatus.KILLED, result.attack_status)
        self.assertEqual(GameStatus.IN_PROGRESS.value, game.game_status)
        self.assertEqual(GameCell.KILLED.value, game.opponent_grid[5][5])

        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[5][6])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[5][4])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[6][5])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[4][5])

        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[6][6])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[4][4])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[6][4])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[4][6])
Esempio n. 2
0
    def test_attack_cell_kill_center_ship(self):
        game = Game()
        game.opponent_grid[5][5] = GameCell.SHIP.value
        game.save()

        result = game.attack_cell(5, 5)
        self.assertEqual(AttackStatus.KILLED, result.attack_status)
        self.assertEqual(GameStatus.FINISHED.value, game.game_status)
        self.assertEqual(GameCell.KILLED.value, game.opponent_grid[5][5])

        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[5][6])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[5][4])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[6][5])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[4][5])

        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[6][6])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[4][4])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[6][4])
        self.assertEqual(GameCell.MISSED.value, game.opponent_grid[4][6])
Esempio n. 3
0
    def test_new_game_defaults(self):
        game = Game()

        self.assertEqual(GameStatus.IN_PROGRESS.value, game.game_status)
        self.assertEqual(Game.GRID_SIZE, len(game.opponent_grid))
Esempio n. 4
0
    def test_attack_cell_in_finished_game(self):
        game = Game(game_status=GameStatus.FINISHED.value)
        game.save()

        result = game.attack_cell(2, 3)
        self.assertEqual(AttackStatus.INVALID, result.attack_status)