def _build(self, Log, Scorer): if Log == None: Log = Logger() if Scorer == None: Scorer = Score() self.Log = Log self.Scorer = Scorer self.Encoder = Encoder() self.GPT = GPT2LanguageModel(model_name=self.model)
def main(): # 1st human player is created. score_keeper = Score() h1 = HumanPlayer(score_keeper, 'x', "Reuven") # h2 = HumanPlayer(score_keeper, 'o', "Shimon") # a1 = AIPlayer(score_keeper, 'x') # a2 = AIPlayer(score_keeper, 'o', "Bot2") while True: """ You need to create 2nd 'o' player, either Human or AI, and select its name. For details see GameManager docs """ opponent = GameManager.get_opponent_player(score_keeper) board_size = GameManager.input_board_size() game_manager = GameManager(h1, opponent, board_size) board = game_manager.board while not game_manager.game_over(): game_manager.print_board() try: current_player = game_manager.current_player() next_move = current_player.next_move(board) print(next_move) if game_manager.is_valid_move(next_move): game_manager.play(next_move) except exceptions.ParseMoveError as err: print(err) continue except exceptions.OutOfBoardError as err: print(f"Illegal move, {err.row, err.col} is out of board!") continue finally: print('Try again') continue game_manager.print_board() winner = game_manager.get_winner() if winner is not None: print(f"{winner.value}! {winner.name} won") winner.sign_victory() else: print("No winner, game over...") score_keeper.print() next_game = input("Want to play again? Y/N ?") if next_game == 'Y': continue else: print("Bye!") break
def _build(self, mod, Log): ''' Builds application using variables provided by user ''' if Log == None: Log = Log() if (self._seed < 1): random.seed(time.time()) self._seed = random.random() self.Log = Log self.Scorer = Score(mod, self.Log) self.Encoder = Encoder(seed=self._seed, probability=self._probability) self.GPT = GPT2LanguageModel(model_name=self.model)
def __render_score(self): for sprite in self.score_group.sprites(): self.score_group.remove(sprite) i = 0 score_points = f"{self.score}" spacing = SCREEN_SIZE[1] / 24 size = len(score_points) margin_left = int((SCREEN_SIZE[0] / 2) - (size * spacing + size * 2) / 2) for num in score_points: score = Score(num=num, pos=(margin_left + (i * (spacing + 2)), SCREEN_SIZE[1] / 10)) self.score_group.add(score) i += 1
def update(self, game_time): time_delta = (game_time - self.game_time) self.coin_box_time += time_delta self.transition_time = self.coin_box_time self.game_time = game_time if self.num_coins == 0: self.display_frame = self.empty_frame else: if 0 < self.coin_box_time <= 400: self.frame_idx = 0 elif 400 < self.coin_box_time <= 600: self.frame_idx = 1 elif 600 < self.coin_box_time <= 700: self.frame_idx = 2 elif self.coin_box_time > 700: self.frame_idx = 0 self.coin_box_time = 0 self.display_frame = self.coin_box_frames[self.frame_idx] if self.in_transition is True: if self.transition_time > 10: self.y_offset -= 1 self.transition_time = 0 if self.y_offset == 0: self.in_transition = False else: self.transition_time = 0 for item in self.coin_score_group: item.update(game_time) if isinstance(item, Coin): if not item.is_bouncing: item.kill() score = Score(self.rect.x + 5, self.rect.y - 25, c.SCORE_COIN) self.coin_score_group.add(score)
def setUp(self): self.score_keeper = Score() self.h1 = HumanPlayer(self.score_keeper, 'x', "Reuven") self.h2 = HumanPlayer(self.score_keeper, 'o', "Shimon") self.a1 = AIPlayer(self.score_keeper, 'x') self.a2 = AIPlayer(self.score_keeper, 'o', "Bot2")
def kill_enemy(self, score_group): self.state = c.ENEMY_STATE_DEAD score = Score(self.rect.x + 5, self.rect.y - 25, self.kill_score) score_group.add(score) return self.kill_score
def main(): pg.init() pg.font.init() screen = pg.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) pg.display.set_caption('My_game') clock = pg.time.Clock() # sprites img = load_image('player.png') Player.images = [img] img = load_image('player_shot.png') Player_shot.images = [img] img = load_image('enemy_new.png') Enemy.images = [img] # sounds crow_sound = load_sound('crow.wav') shot_sound = load_sound('shot.wav') shot_sound.set_volume(0.1) background = pg.Surface(SCREEN_RECT.size) background.fill(BACKGROUND_COLOR) screen.blit(background, (0, 0)) pg.display.flip() # Создание контейнеров all = pg.sprite.RenderUpdates() shots = pg.sprite.Group() enemies = pg.sprite.Group() # Присвоение контейнеров Player.containers = all Player_shot.containers = all, shots Enemy.containers = all, enemies player = Player() # Таймеры появлений объектов gun_timer = 0 enemy_spawn_timer = 0 crow_sound_timer = 0 score_delta = 0 score = Score() game_over = False def check_quit_keys(): for event in pg.event.get(): if event.type == QUIT or \ (event.type == KEYDOWN and event.key == K_ESCAPE): return True if pg.font: all.add(score) # initialiaing fonts pg.font.init() my_font = pg.font.SysFont('Comic Sans MS', 40) my_font_bot = pg.font.SysFont('Comic Sans MS', 20) text_over = my_font.render('Game over', False, (0, 0, 0)) text_score = my_font.render('Score: ' + str(score.score), False, (0, 0, 0)) instruction = my_font_bot.render('Press S to start a new game ', False, (0, 0, 0)) while player.alive(): if check_quit_keys(): break key_state = pg.key.get_pressed() horiz_direction = key_state[K_RIGHT] - key_state[K_LEFT] vert_direction = key_state[K_DOWN] - key_state[K_UP] player.move(horiz_direction, vert_direction) score_delta = 0 for shot in shots: enemies_hit_list = pg.sprite.spritecollide(shot, enemies, True) if len(enemies_hit_list) > 0: if crow_sound_timer <= 0: crow_sound.play() crow_sound_timer = Enemy.CROW_SOUND_COOLDOWN shot.kill() score_delta += len(enemies_hit_list) crow_sound_timer -= 1 if score_delta > 0: score.set_score_delta(score_delta) d = pg.sprite.spritecollide(player, enemies, True) if len(d) > 0: player.kill() text_score = my_font.render('Score: ' + str(score.score), False, (0, 0, 0)) game_over = True if key_state[K_x]: if gun_timer != 0: gun_timer = gun_timer - 1 else: Player_shot(player.get_guns()[0]) Player_shot(player.get_guns()[1]) shot_sound.play() gun_timer = Player_shot.GUN_RELOAD if enemy_spawn_timer != 0: enemy_spawn_timer = enemy_spawn_timer - 1 else: Enemy() enemy_spawn_timer = Enemy.SPAWN_COOLDOWN all.clear(screen, background) all.update() pg.display.update(all.draw(screen)) clock.tick(60) while game_over: if check_quit_keys(): break key_state = pg.key.get_pressed() if key_state[K_s]: main() break screen.blit(background, (0, 0)) screen.blit(text_over, (100, 0)) screen.blit(text_score, (125, 100)) screen.blit(instruction, (50, 600)) pg.display.update() clock.tick(60) pg.quit()