def load(self, slot, startlevel=False): self.slot = slot s = Save() data = s.load(slot) if data is None: self.levelidx = 0 else: self.levelidx = data.levelidx if startlevel: self.startlevel(self.levelidx, True) return data
class Online: def __init__(self, n, m, depth, save_permission, user_id, team_id, game_id): self.N = n self.M = m self.DEPTH = depth self.SAVE_PERMISSION = save_permission self.SLEEP_TIME = 5 self.G = Game(n, m) self.T = Tree(n, m, depth) self.API = Api(user_id, team_id) self.API.set_game_id(game_id) # load cache self.S = Save(n, m, self.SAVE_PERMISSION) out = self.S.load() if out: print('loaded') self.T.EF.Hash = out def start_game(self): # first move: O side = int(input('choose side\n0: O, 1: X')) player = 1 if side == 1 else -1 print('Start\n', self.G) while True: while True: players_turn = self.G.input_board_list(self.API.get_board()) if players_turn == player: break else: print('Waiting for Player', 'X' if players_turn == 1 else 'O') time.sleep(self.SLEEP_TIME) print(self.G) t = time.time() y, x = self.T.search(self.G.get_state() * player) print('Time:', time.time() - t) self.API.make_move(y, x) if self.G.input(y, x, player): break # save cache self.S.save(self.T.EF.Hash) print('End')
class Pve: def __init__(self, n, m, depth, save_permission): self.N = n self.M = m self.DEPTH = depth self.SAVE_PERMISSION = save_permission self.G = Game(n, m) self.T = Tree(n, m, depth) # load cache self.S = Save(n, m, self.SAVE_PERMISSION) out = self.S.load() if out: print('loaded') self.T.EF.Hash = out def start_game(self): side = int(input('choose your side\n0: O, 1: X')) player_1 = 1 if side == 0 else -1 # player_2 = -player_1 print('Start\n', self.G) t = time.time() player = 1 for i in range(100): if player == player_1: y, x = self.T.search(self.G.get_state() * player_1) else: y = int(input('y:')) if y < 0: break x = int(input('x:')) if self.G.input(y, x, player): break player = -player t = time.time() - t print('Time:', t) # save cache self.S.save(self.T.EF.Hash) print('End')
class Eve: def __init__(self, n, m, depth, save_permission): self.N = n self.M = m self.DEPTH = depth self.SAVE_PERMISSION = save_permission self.G = Game(n, m) self.T1 = Tree(n, m, depth) self.T2 = Tree(n, m, depth) # load cache self.S = Save(n, m, self.SAVE_PERMISSION) out = self.S.load() if out: print('loaded') self.T1.EF.Hash = out self.T2.EF.Hash = out def start_game(self): # first move: X print('Start\n', self.G) t = time.time() for i in range(20): if i % 2 == 0: player = 1 next_move = self.T1.search(self.G.get_state()) else: player = -1 next_move = self.T1.search(-self.G.get_state()) y, x = next_move if self.G.input(y, x, player): break t = time.time() - t print('Time:', t) # save cache self.S.save(self.T1.EF.Hash, self.T2.EF.Hash) print('End')
my_apple = Point(random.randrange(10), random.randrange(10), 'A') game_over = False my_points = 0 getKey = GetKey() my_save = Save() my_load = Save() while True: ClearConsole() my_map.clean() key = getKey() if key == 27: my_save.save(my_apple, my_snake) my_load.load() break elif key == 301: my_snake.direction.x = 1 my_snake.direction.y = 0 elif key == 299: my_snake.direction.x = -1 my_snake.direction.y = 0 elif key == 296: my_snake.direction.x = 0 my_snake.direction.y = -1 elif key == 304: my_snake.direction.x = 0 my_snake.direction.y = 1 my_snake.move()