コード例 #1
0
ファイル: solver.py プロジェクト: Ant1ng2/ATeam
 def solve(self, game):
     for move in game.generateMoves():
         newPosition = game.doMove(move)
         primitiveValue = game.primitive()
         if primitiveValue == -1 or (primitiveValue == 0 and self.solve(newPosition) == -1):
             return 1
     return -1
コード例 #2
0
ファイル: run_ai.py プロジェクト: mrminy/GomokuPython
    # weights, biases = new_ann.convert_all_to_weights_biases(layer_sizes, arr)
    # ann = new_ann.neuralnetwork(weights, biases, layer_sizes, activation=[nnet.sigmoid, nnet.sigmoid, nnet.sigmoid])
    # ann_player = ANN_Player(game.getOtherPlayer(game.FIRST_PLAYER), ann)

    move_nr = 1

    start_move_time = time.time()
    while game.winner is None:
        if move_nr % 2 == 1:
            move = alpha_beta.rootAlphaBeta(game, 3, player1)
            color = player1.color
        else:
            move = alpha_beta.rootAlphaBeta(game, 2, player2)
            color = player2.color
        valid_move = game.doMove(color, move)
        if valid_move:
            move_nr += 1
        # player = game.getOtherPlayer(player)
        end_move_time = time.time()
        print(game.getPlayerString(color), move, " - Time used:", end_move_time - start_move_time)
        start_move_time = time.time()
        # print(game.getCorrectBoardArray())

    end_time = time.time() - start_time
    print(game)
    print("Moves:", len(game.moves), end_time)
    game_nr += 1
    if game.winner == game.WHITE:
        new_ai_win += 1
    else:
コード例 #3
0
ファイル: gui.py プロジェクト: mrminy/GomokuPython
ai_turn = parameters.AI_FIRST
p1 = Player_fast(game.FIRST_PLAYER, random_start=parameters.RANDOM_START)
# player = Player(game.FIRST_PLAYER, random_start=parameters.RANDOM_START)
# player = ANN_Player(game.FIRST_PLAYER, new_ann.loadNeuralNetwork(), random_start=parameters.RANDOM_START)
other_color = game.getOtherPlayer(p1.color)
p2 = None
if parameters.AI_VS_AI:
    p2 = Player_fast(other_color)

# -------- Main Program Loop -----------
while not done:
    # --- Main event loop
    if parameters.PLAY_WITH_AI and ai_turn:
        move = ai.rootAlphaBeta(game, parameters.DEFAULT_ALPHA_BETA_DEPTH, p1)
        validMove = game.doMove(p1.color, move)
        if validMove:
            ai_turn = False
            print("AI --> X:", move[0], "Y:", move[1])

    if parameters.PLAY_WITH_AI and parameters.AI_VS_AI and not ai_turn:
        move = ai.rootAlphaBeta(game, parameters.DEFAULT_ALPHA_BETA_DEPTH, p2)
        validMove = game.doMove(p2.color, move)
        if validMove:
            ai_turn = True
            print("AI 2 --> X:", move[0], "Y:", move[1])

    for event in pygame.event.get():  # User did something
        if event.type == pygame.QUIT:  # If user clicked close
            done = True  # Flag that we are done so we exit this loop
        elif event.type == pygame.MOUSEBUTTONDOWN and not parameters.AI_VS_AI: