From c37a9ff3bc62641435896b4ccda88bad87505c8c Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 22 Mar 2024 10:03:59 -0500 Subject: [PATCH] Fixed edgecase when mouse is held-down outside of window. --- conway.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/conway.py b/conway.py index 74aedd7..813688d 100644 --- a/conway.py +++ b/conway.py @@ -108,8 +108,9 @@ class Board: def fill_crowding(self): for row in self.matrix: for cell in row: - crowding_number = self.calculate_crowding_number(cell.position, XYPair(1,1)) - cell.set_crowding_number(crowding_number) + cell.set_crowding_number( + self.calculate_crowding_number(cell.position, XYPair(1,1)) + ) def evolve_state(self): #calculate crowding numbers before updating any state, otherwise you'll be unhappy @@ -143,7 +144,10 @@ class Board: x = pixel_to_index(mouse_pos[0], dimensions.x, render_info.padding.x) y = pixel_to_index(mouse_pos[1], dimensions.y, render_info.padding.y) - cell = self.matrix[y][x] + try: + cell = self.matrix[y][x] + except IndexError: + return #this exception corresponds to the case of the mouse being held down outside the game window if not self.click_state: if cell.state == CellStates.ALIVE: @@ -189,7 +193,7 @@ def main(): while running: - dt = clock.tick(60) + dt = clock.tick(144) board.draw(screen) pygame.display.flip()