Ejemplo n.º 1
0
    hidden_layer_topology = [int(raw) for raw in raw_topology.split(";")]

    pba = PowerBoardAnn(51, hidden_layer_topology, 4)
    pba.read_pickle()
    error_rates = pba.do_training(no_of_epochs)

    start_time = time.time()

    ann_best_tiles = []
    random_best_tiles = []
    for i in range(50):
        pb = PowerBoard((4, 4))
        pb.add_random_tile()
        while True:
            if pb.is_game_over():
                pb.print_to_console()
                ann_best_tiles.append(max(pb.get_board()))
                break
            network_output = pba.evaluate_one_board(
                convert_list_to_2d(pb.get_board()))
            pb.move_and_add_random_tile(directions[network_output])
            """
            possible_directions = pb.get_possible_move_directions()
            for choice in network_output:
                if directions[choice] in possible_directions:
                    pb.move_and_add_random_tile(directions[choice])
                    break
            """

    for i in range(50):
Ejemplo n.º 2
0
        game_over = False
        while True:
            """
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
            """
            b = time()
            if not game_over:

                empties = len(pb.get_empty_spaces())

                search_state = PowerBoardState(PowerBoardState.get_recursion_depth_roof(empties))
                search_state.board = pb.get_board()
                decision = search_state.decision()
                with open("2048moves.txt", 'a') as log:
                    log.write("\n\n" + str(pb.get_board()))
                    log.write("\n" + decision)
                pb.move_and_add_random_tile(decision)
                c = time()
                print(c-b)
                if pb.is_game_over():
                    game_over = True
                    print('Game over after', c-a)
                    print('Max tile:', pb.get_max_tile())
                    break



                #gfx.draw()