Exemplo n.º 1
0
    def run(self):
        players = dict()
        symbol_list = list()
        for i in range(PLAYER_SIZE):
            player = Player(i + 1)
            player_name = player.get_name()
            symbol = Symbol(i, player_name, symbol_list)
            print('Hello {0}, your symbol is "{1}"'.format(
                player_name, symbol.get_symbol()))
            players[symbol] = player

        total_blocks = self.board.get_total_blocks()
        board = self.board.get_board()
        keep_filling = True
        winner = None
        index = 0
        keep_playing = True
        while keep_playing:
            for symbol, player in players.items():
                turn = symbol.get_symbol()
                move = self.get_player_move(player, turn)
                board[move] = turn
                self.move_history.append({
                    'player': player,
                    'move': move
                })  # saving players moves in history
                self.board.draw_board(
                    board)  # draw board to display player move
                winner = self.board.check_winner(
                    turn, player)  # get the winner player object
                index += 1
                if index >= total_blocks or winner:
                    keep_playing = False
                    if winner:
                        print('{0} ({1}) have won the game.'.format(
                            player.name, turn))
                    break

        if not winner:
            print('The game is draw.')