Spaces:
Runtime error
Runtime error
Jumper-Clown
commited on
Commit
•
678803d
1
Parent(s):
4b4be2a
add example output
Browse files
__pycache__/ai.cpython-311.pyc
DELETED
Binary file (2.31 kB)
|
|
__pycache__/cpu_ai.cpython-311.pyc
DELETED
Binary file (2.79 kB)
|
|
__pycache__/github_manager.cpython-311.pyc
DELETED
Binary file (3.17 kB)
|
|
examples/conway.py
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pygame
|
2 |
+
import asyncio
|
3 |
+
import random
|
4 |
+
|
5 |
+
# define some colors
|
6 |
+
BLACK = (0, 0, 0)
|
7 |
+
WHITE = (255, 255, 255)
|
8 |
+
GREEN = (0, 255, 0)
|
9 |
+
RED = (255, 0, 0)
|
10 |
+
BLUE = (0, 0, 255)
|
11 |
+
YELLOW = (255, 255, 0)
|
12 |
+
pygame.init()
|
13 |
+
screen = pygame.display.set_mode((500,500))
|
14 |
+
pygame.display.set_caption("Conway's Game of Life")
|
15 |
+
|
16 |
+
# create a grid of squares
|
17 |
+
grid = [[False for _ in range(500)] for _ in range(500)]
|
18 |
+
|
19 |
+
# create a font for displaying numbers
|
20 |
+
font = pygame.font.Font('freesansbold.ttf', 30)
|
21 |
+
|
22 |
+
# create a function to display the grid
|
23 |
+
def draw_grid():
|
24 |
+
for row in range(500):
|
25 |
+
for col in range(500):
|
26 |
+
if grid[row][col]:
|
27 |
+
pygame.draw.rect(screen, GREEN, (col*50, row*50, 50, 50))
|
28 |
+
else:
|
29 |
+
pygame.draw.rect(screen, BLACK, (col*50, row*50, 50, 50))
|
30 |
+
pygame.display.flip()
|
31 |
+
|
32 |
+
# create a function to update the grid
|
33 |
+
def update_grid(neighbors):
|
34 |
+
for row in range(500):
|
35 |
+
for col in range(500):
|
36 |
+
# get the number of neighbors
|
37 |
+
num_neighbors = sum([grid[r][c] for r, c in neighbors if grid[r][c]])
|
38 |
+
# update the grid
|
39 |
+
grid[row][col] = num_neighbors == 3 or (num_neighbors == 2 and grid[row][col])
|
40 |
+
|
41 |
+
# create a function to display the neighbors
|
42 |
+
def draw_neighbors(row, col):
|
43 |
+
neighbors = [(r, c) for r, c in [(row-1, col), (row-1, col-1), (row, col-1), (row+1, col-1), (row+1, col), (row+1, col+1), (row, col+1), (row-1, col+1)]]
|
44 |
+
for neighbor in neighbors:
|
45 |
+
if neighbor in grid:
|
46 |
+
update_grid(neighbors)
|
47 |
+
else:
|
48 |
+
grid.append(neighbor)
|
49 |
+
update_grid(neighbors)
|
50 |
+
draw_grid()
|
51 |
+
|
52 |
+
# create a function to handle the events
|
53 |
+
def event_handler(event):
|
54 |
+
if event.type == pygame.QUIT:
|
55 |
+
pygame.quit()
|
56 |
+
quit()
|
57 |
+
elif event.type == pygame.KEYDOWN:
|
58 |
+
if event.key == pygame.K_ESCAPE:
|
59 |
+
pygame.quit()
|
60 |
+
quit()
|
61 |
+
elif event.key == pygame.K_r:
|
62 |
+
draw_grid()
|
63 |
+
elif event.key == pygame.K_SPACE:
|
64 |
+
draw_neighbors(50, 50)
|
65 |
+
|
66 |
+
# create the main function
|
67 |
+
async def main():
|
68 |
+
while True:
|
69 |
+
# handle events
|
70 |
+
for event in pygame.event.get():
|
71 |
+
event_handler(event)
|
72 |
+
# update the grid
|
73 |
+
await asyncio.sleep(1)
|
74 |
+
|
75 |
+
# run the game
|
76 |
+
asyncio.run(main())
|