Beispiel #1
0
    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)
Beispiel #2
0
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)
Beispiel #4
0
 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
Beispiel #5
0
    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)
Beispiel #6
0
 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")
Beispiel #7
0
 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
Beispiel #8
0
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()