Exemplo n.º 1
0
def agentDefaultPlay(verbose=True):
    # Initialize tiles of default play
    humanTile = DE_AGENT_TILE
    computerTile = 'X' if DE_AGENT_TILE == 'O' else 'O'

    # Initialize game
    mainBoard = C4.getNewBoard()
    turn = 'human' if DE_AGENT_TILE == 'O' else 'computer'

    # Initialize Agent
    Agent = Ag.CFAgent(humanTile,
                       computerTile,
                       BOARDWIDTH,
                       BOARDHEIGHT,
                       mctsIters=MCTS_ITERS)

    ## Start game ##
    while True:
        if turn == 'human':
            if verbose:
                C4.drawBoard(mainBoard)
            move = Agent.decideMove(mainBoard, verbose=verbose)
            C4.makeMove(mainBoard, humanTile, move)
            if C4.isWinner(mainBoard, humanTile):
                winner = 'agent'
                break
            turn = 'computer'
        else:
            if verbose:
                C4.drawBoard(mainBoard)
                print('The computer is thinking...')
            move = C4.getComputerMove(mainBoard, computerTile)
            C4.makeMove(mainBoard, computerTile, move)
            if C4.isWinner(mainBoard, computerTile):
                winner = 'computer'
                break
            turn = 'human'

        if C4.isBoardFull(mainBoard):
            winner = 'tie'
            break

    ## Game outcome ##
    C4.drawBoard(mainBoard)
    print('Winner is: %s' % winner)
Exemplo n.º 2
0
def agentHumanPlay(verbose=True):
    ## Initialization ##
    # Decide who to go first
    humanTile, computerTile = C4.enterHumanTile()
    turn = 'human' if humanTile == 'O' else 'computer'
    print('The %s player will go first.' % (turn))
    mainBoard = C4.getNewBoard()

    # Initialize agent
    Agent = Ag.CFAgent(computerTile,
                       humanTile,
                       BOARDWIDTH,
                       BOARDHEIGHT,
                       mctsIters=MCTS_ITERS)

    ## Start game ##
    while True:
        if turn == 'human':
            C4.drawBoard(mainBoard)
            move = C4.getHumanMove(mainBoard)
            C4.makeMove(mainBoard, humanTile, move)
            if C4.isWinner(mainBoard, humanTile):
                winner = 'human'
                break
            turn = 'computer'
        else:
            C4.drawBoard(mainBoard)
            print('The agent is thinking...')
            move = Agent.decideMove(mainBoard, verbose=verbose)
            C4.makeMove(mainBoard, computerTile, move)
            if C4.isWinner(mainBoard, computerTile):
                winner = 'agent'
                break
            turn = 'human'

        if C4.isBoardFull(mainBoard):
            winner = 'tie'
            break

    ## Game outcome ##
    C4.drawBoard(mainBoard)
    print('Winner is: %s' % winner)