Example #1
0
File: game.py Project: 0b11stan/lab
class Game:
    def __init__(self, player_x, player_o, players_interface):
        self.grid = Grid()
        self.player_x = player_x
        self.player_o = player_o
        self.pi = players_interface
        self.current_player = None
        self.current_player = player_x

    def get_switched_player(self):
        return self.player_o if self.current_player == self.player_x else self.player_x

    def play(self):
        (row, col) = self.pi.choose_cell(self.current_player, self.player_x, self.player_o, self.grid)
        if self.grid.is_empty(row, col):
            self.grid.fill(
                player=self.current_player,
                row=row,
                col=col
            )
        else: raise BadCellError(self.current_player, row, col)
        self.current_player = self.get_switched_player()

    def get_winner(self):
        return self.grid.get_winner()

    def is_won(self):
        return True if self.grid.get_winner() is not None else False
Example #2
0
 def test_cells_can_be_filled(self):
     grid = Grid()
     player = Player('test')
     grid.fill(player, 1, 1)
     self.assertFalse(grid.is_empty())
     self.assertEqual(player, grid.cells[1][1].player)
Example #3
0
 def test_is_empty_return_grids_emptiness(self):
     grid = Grid()
     self.assertTrue(grid.is_empty())
Example #4
0
 def test_is_empty_can_take_args_for_cell_emptiness(self):
     player = Player('test')
     grid = Grid()
     grid.fill(player, 0, 2)
     self.assertTrue(grid.is_empty(0, 1))
     self.assertFalse(grid.is_empty(0, 2))