예제 #1
0
def IJK(player1, player2, deterministic, timeout=60, max_moves=30000):
    game = initialGame(6, '+', deterministic)

    game.printGame()  ##
    p1 = 0
    p2 = 0
    moves = []
    while not game.state() != 0 and len(moves) < max_moves:
        start = time.time()
        move = None

        for result in player1(copy.deepcopy(game)):
            end = time.time()
            if end - start > timeout:
                break
            else:
                move = result
        if not move:
            print('player + forfeits the game')
            break
        else:
            print("%s played: %s" % (game.getCurrentPlayer(), move))

            moves.append((game.getCurrentPlayer(), move))
            game = game.makeMove(move)

            game.printGame()
            p1 = p1 + 1

        start = time.time()
        move = None
        for result in player2(copy.deepcopy(game)):
            end = time.time()
            if end - start > timeout:
                break
            else:
                move = result
        if not move:
            print('player - forfeits the game')
            break
        else:
            print("%s played: %s" % (game.getCurrentPlayer(), move))

            moves.append((game.getCurrentPlayer(), move))
            game = game.makeMove(move)

            game.printGame()
            p2 = p2 + 1
    print('Winner was: ', game.state())
    print(p1, p2)
    return moves
def IJK(player1, player2, deterministic, timeout=120000, max_moves=1000):
    game = initialGame(4, '+', deterministic)

    game.printGame()

    moves = []
    while not game.state() != 0 and len(moves) < max_moves:
        start = time.time()
        move = None

        for result in player1(copy.deepcopy(game)):
            end = time.time()
            if end - start > timeout:
                break
            else:
                move = result
        if not move:
            print('player + forfeits the game')
            break
        else:
            print("%s played: %s" % (game.getCurrentPlayer(), move))

            moves.append((game.getCurrentPlayer(), move))
            game = game.makeMove(move)

            game.printGame()

        start = time.time()
        move = None
        for result in player2(copy.deepcopy(game)):
            end = time.time()
            if end - start > timeout:
                break
            else:
                move = result
        if not move:
            print('player - forfeits the game')
            break
        else:
            print("%s played: %s" % (game.getCurrentPlayer(), move))

            moves.append((game.getCurrentPlayer(), move))
            game = game.makeMove(move)

            game.printGame()
    return moves
def IJK(player1, player2, deterministic, timeout=60, max_moves=30000):
    game = initialGame(6, "+", deterministic)

    game.printGame()

    moves = []
    while not game.state() != 0 and len(moves) < max_moves:
        start = time.time()

        move = [
            result for result in player1(copy.deepcopy(game))
            if time.time() - start <= timeout
        ][-1]

        if move:
            print("%s played: %s" % (game.getCurrentPlayer(), move))
            moves.append((game.getCurrentPlayer(), move))
            game = game.makeMove(move)
            game.printGame()
        else:
            print("player + forfeits the game")
            break

        start = time.time()
        move = None
        for result in player2(copy.deepcopy(game)):
            end = time.time()
            if end - start > timeout:
                break
            else:
                move = result
        if not move:
            print("player - forfeits the game")
            break
        else:
            print("%s played: %s" % (game.getCurrentPlayer(), move))

            moves.append((game.getCurrentPlayer(), move))
            game = game.makeMove(move)

            game.printGame()

    print("Winner was: ", game.state())
    return moves