def make_movement(self, col: int, name=None): """ Allows to make a movement without a mouse click. Inserts a new piece in the specified column and prints the new board. """ assert(col is not None) if self.game_data.game_board.is_valid_location(col): row: int = self.game_data.game_board.get_next_open_row(col) self.game_data.last_move_row.append(row) self.game_data.last_move_col.append(col) self.game_data.game_board.drop_piece(row, col, self.game_data.turn + 1) self.draw() bus.emit( "piece:drop", PieceDropEvent(self.game_data.game_board.board[row][col]) ) self.print_board() if self.game_data.game_board.winning_move(self.game_data.turn + 1, row, col): print("Game over:", name) bus.emit( "game:over", self.renderer, GameOver(False, self.game_data.turn + 1, name) ) self.game_data.game_over = True pygame.display.update() self.game_data.turn += 1 self.game_data.turn = self.game_data.turn % 2
def update(self): """ Checks the game state, dispatching events as needed. """ if self.game_data.game_board.tie_move(): bus.emit("game:over", GameOver(was_tie=True)) self.game_data.game_over = True
def update(self): """ Checks the game state, dispatching events as needed. """ if self.game_data.game_board.tie_move(): bus.emit("game:over", self.renderer, GameOver(was_tie=True)) self.game_data.game_over = True if self.game_data.game_over: print(os.getpid()) pygame.time.wait(1000)
def update(self): """ Checks the game state, dispatching events as needed. """ if self.game_data.game_board.tie_move(): bus.emit("game:over", GameOver(was_tie=True)) self.game_data.game_over = True if self.game_data.game_over: print(os.getpid()) pygame.time.wait(3000) os.system("kill " + str(os.getpid())) os.system("./restart.sh")
def mouse_click(self, event: MouseClickEvent): """ Handles a mouse click event. :param event: Data about the mouse click """ pygame.draw.rect( self.renderer.screen, black, (0, 0, self.game_data.width, self.game_data.sq_size), ) col: int = int(math.floor(event.posx / self.game_data.sq_size)) if self.game_data.game_board.is_valid_location(col): row: int = self.game_data.game_board.get_next_open_row(col) self.game_data.last_move_row.append(row) self.game_data.last_move_col.append(col) self.game_data.game_board.drop_piece(row, col, self.game_data.turn + 1) self.draw() bus.emit("piece:drop", PieceDropEvent(self.game_data.game_board.board[row][col])) self.print_board() if self.game_data.game_board.winning_move(self.game_data.turn + 1): bus.emit("game:over", self.renderer, GameOver(False, self.game_data.turn + 1)) self.game_data.game_over = True pygame.display.update() self.game_data.turn += 1 self.game_data.turn = self.game_data.turn % 2