def next_tick(self, move_list: list) -> None: '''gets move and handles event''' if Match.matches(self): Match.remove_matches(self) Helper.drop_cells(self) Helper.check_game_over(self) Match.match_cells(self) move = move_list[0] if move == NEXT: if self._faller: Faller.drop_faller(self) elif move == FALLER: if not self._faller: GameState.check_valid_col_faller(self, move_list[1]) Faller.make_faller(self, move_list[1], move_list[2]) elif move == MOVE_LEFT: if self._faller: Faller.move_faller(self, MOVE_LEFT) elif move == MOVE_RIGHT: if self._faller: Faller.move_faller(self, MOVE_RIGHT) elif move == ROTATE: if self._faller: Faller.rotate_faller(self) elif move == QUIT: self._game_over = True else: raise InvalidInput
def _freeze_faller(gamestate) -> None: '''freezes faller, changes cell attributes and checks gameover''' faller_cells = Helper._get_faller_cells(gamestate) for cell in faller_cells: cell.make_frozen_cell(cell._display) Match.match_cells(gamestate) if not Match.matches(gamestate): Helper.check_game_over(gamestate) Faller._faller_gone(gamestate)