def replay(steps_list): for steps in steps_list: position_nums = [ int(step['position_num']) for step in json.loads(steps) ] choice1 = ChoiceReplaySteps( np.array(position_nums, dtype=np.int32)[::2]) choice2 = ChoiceReplaySteps( np.array(position_nums, dtype=np.int32)[1::2]) Reversi.game(choice1, choice2)
def start_game(self, reversi): """ start_game starts the reversi game and initializes a new game whenever user wants to continue to play """ restart = self.run_game(reversi) while restart: print("here?") newReversi = Reversi() # initialize reversi object newReversi.initiateboard() # initialize the game board restart = self.run_game(newReversi) print("goodbye!")
def start_game(self,reversi): """ start_game starts the reversi game and initializes a new game whenever user wants to continue to play """ restart = self.run_game(reversi) while restart: print("here?") newReversi = Reversi() # initialize reversi object newReversi.initiateboard() # initialize the game board restart = self.run_game(newReversi) print("goodbye!")
def play(choice_computer): choice1 = {'name': "You", 'choice': choice_human} choice2 = {'name': "Computer", 'choice': choice_computer} while True: print("start: {} vs {}".format(choice1['name'], choice2['name'])) steps = Reversi.game(choice1['choice'], choice2['choice']) is_black_win = Reversi.is_win_game(steps, is_black=True) is_white_win = Reversi.is_win_game(steps, is_black=False) if is_black_win: print("{} is win".format(choice1['name'])) elif is_white_win: print("{} is win".format(choice2['name'])) else: print("draw") save_playdata(steps) if not yes_no_input("Do you want to continue? [y/N]: "): break choice1, choice2 = choice2, choice1
end = self.drawBoard(reversi,yield_) pygame.display.flip() if yield_ != 0: pygame.time.wait(1000) else: pygame.time.wait(200) print("out of the loop") return restart def start_game(self,reversi): """ start_game starts the reversi game and initializes a new game whenever user wants to continue to play """ restart = self.run_game(reversi) while restart: print("here?") newReversi = Reversi() # initialize reversi object newReversi.initiateboard() # initialize the game board restart = self.run_game(newReversi) print("goodbye!") if __name__ == "__main__": reversi = Reversi() # initialize reversi object computertile = reversi.assigntile('X') # assign string 'X' to be computer's tile reversi.initiateboard() # initialize the game board game = Reversi_GUI() # initialize the GUI for Reversi game.start_game(reversi) # start the game
import copy from Reversi import Reversi from dqn_agent import DQNAgent if __name__ == "__main__": # parameters n_epochs = 1000 # environment, agent env = Reversi() # playerID playerID = [env.Black, env.White, env.Black] # player agent players = [] # player[0]= env.Black players.append( DQNAgent(env.enable_actions, env.name, env.screen_n_rows, 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エピソードが終わるまでループ
def next(url, choice, algorithm): board = Reversi.get_init_board() query = request.args.get('query') if query: params = json.loads(base64.urlsafe_b64decode(query).decode()) player = Reversi.get_player(np.array(params['board'])) board = Reversi.put(player, params['num']) while True: player = Reversi.get_player(board, False) if Reversi.is_putable(player): choice_data = choice(player) board = Reversi.put(player, choice_data['position_num']) player = Reversi.get_player(board) if Reversi.is_putable(player): break else: break board, is_black, putable_position_nums = Reversi.get_player(board) black_num, white_num = Reversi.get_stone_num(board) return render_template('index.html', url=url, algorithm=algorithm, is_end_board=Reversi.is_end_board(board), black_num=black_num, white_num=white_num, board=board, is_black=is_black, putable_position_nums=putable_position_nums)
import argparse from Reversi import Reversi from dqn_agent import DQNAgent if __name__ == "__main__": # args parser = argparse.ArgumentParser() parser.add_argument("-m", "--model_path") 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('>>> ')
# args parser = argparse.ArgumentParser() parser.add_argument("-m", "--model_path") 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 (args.model_path) ''' ranagent = randomAgent() for episode in range(max_episodes): env = Reversi() #agent 생성 agent = DQNAgent(env.enable_actions, env.name, env.screen_n_rows, env.screen_n_cols) agent.load_model() # game print(" ------------- GAME START --------------- ", episode) while not env.isEnd(): print(" *** user 턴 ● *** ") #black : 1 env.print_screen() enables = env.get_enables(1) if len(enables) > 0: if (randomAI == False): flg = False while not flg: #입력가능한 값들중 이상한 값을 집어넣는것 방지
end = self.drawBoard(reversi, yield_) pygame.display.flip() if yield_ != 0: pygame.time.wait(1000) else: pygame.time.wait(200) print("out of the loop") return restart def start_game(self, reversi): """ start_game starts the reversi game and initializes a new game whenever user wants to continue to play """ restart = self.run_game(reversi) while restart: print("here?") newReversi = Reversi() # initialize reversi object newReversi.initiateboard() # initialize the game board restart = self.run_game(newReversi) print("goodbye!") if __name__ == "__main__": reversi = Reversi() # initialize reversi object computertile = reversi.assigntile( 'X') # assign string 'X' to be computer's tile reversi.initiateboard() # initialize the game board game = Reversi_GUI() # initialize the GUI for Reversi game.start_game(reversi) # start the game
src_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope=src_scope_name) dest_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope=dest_scope_name) for src_var, dest_var in zip(src_vars, dest_vars): op_holder.append(dest_var.assign(src_var.value())) return op_holder if __name__ == "__main__": # 반복횟수 n_epochs = 1000 # Reversi.py 파일의 변수들을 사용하기 위한 env객체를 선언 env = Reversi() # playerID playerID = [env.black, env.white, env.black] #black-> white -> black순이므로 # player agent. player[0]과 player[1]은 각각 ([0, 1, ... , 63], 'Reversi', 8, 8) 의 값을 가지게 됨 players = [] # player [0] = env.Black players.append(DQNAgent(env.name, env.rows, env.cols, name="main0")) # player [1] = env.White players.append(DQNAgent(env.name, env.rows, env.cols, name="main1")) players.append(DQNAgent(env.name, env.rows, env.cols, name="target0")) players.append(DQNAgent(env.name, env.rows, env.cols, name="target1"))
import argparse from Reversi import Reversi from dqn_agent import DQNAgent if __name__ == "__main__": # args parser = argparse.ArgumentParser() parser.add_argument("-m", "--model_path") parser.add_argument("-s", "--save", dest="save", action="store_true") parser.set_defaults(save=False) args = parser.parse_args() # environmet, agent env = Reversi() agent1 = DQNAgent(env.enable_actions, env.name, env.screen_n_rows, env.screen_n_cols) agent1.load_model("models1/Reversi.ckpt") agent2 = DQNAgent(env.enable_actions, env.name, env.screen_n_rows, env.screen_n_cols) agent2.load_model("models2/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
from Reversi import Reversi game = Reversi(size=800, gameName='Toby\'s Game') while True: if (not game.update()): break