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:
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("パス")