Пример #1
0
                 env.screen_n_cols))
    # player[1]= env.White
    players.append(
        DQNAgent(env.enable_actions, env.name, env.screen_n_rows,
                 env.screen_n_cols))

    for e in range(n_epochs):
        # reset
        env.reset()
        terminal = False
        while terminal == False:  # 1エピソードが終わるまでループ

            for i in range(0, len(players)):

                state = env.screen
                targets = env.get_enables(playerID[i])

                if len(targets) > 0:
                    # どこかに置く場所がある場合

                    #すべての手をトレーニングする
                    for tr in targets:
                        tmp = copy.deepcopy(env)
                        tmp.update(tr, playerID[i])
                        #終了判定
                        win = tmp.winner()
                        end = tmp.isEnd()
                        #次の状態
                        state_X = tmp.screen
                        target_X = tmp.get_enables(playerID[i + 1])
                        if len(target_X) == 0:
Пример #2
0
    parser.add_argument("-s", "--save", dest="save", action="store_true")
    parser.set_defaults(save=False)
    args = parser.parse_args()

    # environmet, agent
    env = Reversi()
    agent = DQNAgent(env.enable_actions, env.name, env.screen_n_rows,
                     env.screen_n_cols)
    agent.load_model("models1/Reversi.ckpt")

    # game
    print("------------- GAME START ---------------")
    while not env.isEnd():
        print("*** userターン○ ***")
        env.print_screen()
        enables = env.get_enables(1)
        if len(enables) > 0:
            flg = False
            while not flg:
                print("番号を入力してください")
                print(enables)
                inp = input('>>>  ')
                action_t = int(inp)
                for i in enables:
                    if action_t == i:
                        flg = True
                        break

            env.update(action_t, 1)
        else:
            print("パス")