Exemplo n.º 1
0
    def update(self, delta):
        self.elapsed_time += delta
        self.handle_user_input()

        if self.elapsed_time >= self.drop_time:
            if self.board.are_valid_coordinates(
                    self.current_piece.move_result(Direction.Down)):
                renderer.clear_tetromino(self.current_piece, self.board_window)
                self.current_piece.move(Direction.Down)
            else:
                renderer.clear_tetromino(self.next_piece, self.info_window)
                try:
                    self.board.lock_tetromino(self.current_piece)
                    self.current_piece = self.next_piece
                    self.current_piece.set_location(5, 20)
                    self.next_piece = random_tetromino(0, 0)

                    rows_removed = self.board.clear_full_rows()
                    if rows_removed:
                        self.lines_to_next_level -= rows_removed
                        self.score += sum(range(rows_removed + 1)) * 100
                        if self.lines_to_next_level <= 0:
                            self.score += 1000 * self.level
                            self.lines_to_next_level = 15
                            self.level += 1
                            self.drop_time *= .75
                except RuntimeError:
                    game.add_state_and_switch("game over",
                                              GameOverState(self.window,
                                                            self.score))

            self.view_modified = True
            self.elapsed_time -= self.drop_time
Exemplo n.º 2
0
def main(window):
    renderer.initialize()

    curses.curs_set(0)
    dimens = window.getmaxyx()
    main_window = window.subwin(22, 20, dimens[0] // 2 - 11,
                                dimens[1] // 2 - 10)
    main_window.nodelay(1)
    main_window.keypad(1)

    game.init()
    game.add_state_and_switch("main_menu", MainMenuState(main_window))
    game.add_state("paused", PauseState(main_window))
    game.add_state("game", GameState(main_window))
    game.run()
Exemplo n.º 3
0
 def __init__(self, window):
     super().__init__(window)
     self.choices = (("New Game", lambda: game.switch_to_state("game", "restart")),
                     ("Help", lambda: game.add_state_and_switch(
                         "help", HelpState(self.window, "paused"))),
                     ("Quit", lambda: game.switch_to_state("finished")))
     self.lines_to_skip = 4
     self.line_to_start = 9