Skip to content

Commit

Permalink
several changes. New seed algorithm. QoL fixes
Browse files Browse the repository at this point in the history
Title says it all. It's better.
  • Loading branch information
death-magnet authored Jul 17, 2022
1 parent 480aec9 commit e3bebcf
Showing 1 changed file with 80 additions and 24 deletions.
104 changes: 80 additions & 24 deletions gameoflife.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,18 +55,20 @@
# initialize screen to default values
INFO = pg.display.Info()

SCREEN_WIDTH = int(INFO.current_w * 0.833333)
SCREEN_HEIGHT = int(INFO.current_h * 0.833333)
SCREEN_WIDTH = int(INFO.current_w * 0.933333)
SCREEN_HEIGHT = int(INFO.current_h * 0.933333)

SCREEN = pg.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

TILE = int(SCREEN_HEIGHT * 0.01)
W, H = SCREEN_WIDTH // TILE, SCREEN_HEIGHT // TILE


seednum = 0
value = str(0)
# The main function that controls the game
def main():
global current_gen
global current_gen, seednum, value
fullscreen = False

looping = True
Expand All @@ -89,15 +91,15 @@ def screen_setup():
pg.mouse.set_visible(False)
else:
# set window resolution to be a bit smaller than full screen
# This will make it 1600x900 on a 1920x1080 screen for example
# This should make it about 1600x900 on a 1920x1080 screen for example
SCREEN_WIDTH = int(INFO.current_w * 0.833333)
SCREEN_HEIGHT = int(INFO.current_h * 0.833333)
SCREEN = pg.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pg.mouse.set_visible(True)


# set up the game board
TILE = int(SCREEN_HEIGHT * 0.01)
TILE = int(SCREEN_HEIGHT * 0.008)
if TILE < 1:
TILE = 1

Expand All @@ -115,23 +117,73 @@ def screen_setup():
for y in range(0, SCREEN_HEIGHT, TILE)]






screen_setup()
# initialize grid randomly
next_gen = [[0 for i in range(W)] for j in range(H)]
current_gen = [[randint(0, 1) for i in range(W)] for j in range(H)]

# seed method examples below, uncomment to test
def game_intro():
global seednum
global value
intro=True
SCREEN.fill(COLOR_BLACK)
text = "Please enter a number or press return for a random one"
font = pg.font.SysFont(None, 25)
text1 = font.render(text, True, COLOR_WHITE)
SCREEN.blit(text1, (SCREEN_WIDTH // 3, SCREEN_HEIGHT // 4))
pg.display.flip()
seednum = randint(5, 9999999999999999) # randint(1,9999999999999999)
print(seednum)
while intro:


for event in pg.event.get():
if event.type==pg.QUIT:
pg.quit()
quit()

if event.type==pg.KEYDOWN:
if event.key == pg.K_0 or event.key==pg.K_KP0:
value = value + str(0)
if event.key == pg.K_1 or event.key==pg.K_KP1:
value = value + str(1)
if event.key == pg.K_2 or event.key==pg.K_KP2:
value = value + str(2)
if event.key == pg.K_3 or event.key==pg.K_KP3:
value = value + str(3)
if event.key == pg.K_4 or event.key==pg.K_KP4:
value = value + str(4)
if event.key == pg.K_5 or event.key==pg.K_KP5:
value = value + str(5)
if event.key == pg.K_6 or event.key==pg.K_KP6:
value = value + str(6)
if event.key == pg.K_7 or event.key==pg.K_KP7:
value = value + str(7)
if event.key == pg.K_8 or event.key==pg.K_KP8:
value = value + str(8)
if event.key == pg.K_9 or event.key==pg.K_KP9:
value = value + str(9)
if event.key==pg.K_KP_ENTER or event.key==pg.K_RETURN:
if int(value) >= 5:
seednum = int(value)
value = str(0)
print(seednum)
elif int(value) > 0 and int(value) < 5:
seednum = int(value) + 5
value = str(0)
else:
value = str(0)
intro=False
# print(value)
if int(value) is not 0:
text2 = font.render(value[1:], True, COLOR_WHITE)
SCREEN.blit(text2, (SCREEN_WIDTH // 3, SCREEN_HEIGHT // 3))

pg.display.flip()
CLOCK.tick(FPS)
game_intro()


# seed method below

# current_gen = [[1 if i == W // 2 or j == H // 2 else 0 for i in range(W)] for j in range(H)]
# current_gen = [[randint(0, 1) for i in range(W)] for j in range(H)]
# current_gen = [[1 if not i % 9 else 0 for i in range(W)] for j in range(H)]
# current_gen = [[1 if not (2 * i + j) % 4 else 0 for i in range(W)] for j in range(H)]
# current_gen = [[1 if not (i * j) % 22 else 0 for i in range(W)] for j in range(H)]
# current_gen = [[1 if not i % 7 else randint(0, 1) for i in range(W)] for j in range(H)]
next_gen = [[0 for i in range(W)] for j in range(H)] # initialize to zeroes
current_gen = [[1 if not ((seednum % (i + 1)) * (seednum % (j + 1))) else 0 for i in range(W)] for j in range(H)]

# see if each cell in grid should be alive or dead

Expand All @@ -156,7 +208,9 @@ def check_cell(current_gen, x, y):

# The main game loop
while looping:

stats = "Seed number: " + str(seednum)
newtitle = TITLE + " - " + stats
pg.display.set_caption(newtitle)
# Get inputs
for event in pg.event.get():
if event.type == pg.QUIT:
Expand All @@ -175,10 +229,12 @@ def check_cell(current_gen, x, y):
if event.key == pg.K_ESCAPE:
pg.quit()
exit()
if event.key == pg.K_RETURN:
if event.key == pg.K_RETURN or event.key == pg.K_KP_ENTER:
value = str(0)
game_intro()
# new seed
next_gen = [[0 for i in range(W)] for j in range(H)]
current_gen = [[randint(0, 1) for i in range(W)] for j in range(H)]

current_gen = [[1 if not ((seednum % (i + 1)) * (seednum % (j + 1))) else 0 for i in range(W)] for j in range(H)]

if not paused:

Expand Down

0 comments on commit e3bebcf

Please sign in to comment.