Skip to content

Instantly share code, notes, and snippets.

@WilliamD47
Created July 23, 2022 18:11
Show Gist options
  • Save WilliamD47/bb19bb23582e0700d182d88dbd88693d to your computer and use it in GitHub Desktop.
Save WilliamD47/bb19bb23582e0700d182d88dbd88693d to your computer and use it in GitHub Desktop.
1D Connoway's Game of Life
import time
class GameOfLife:
def __init__(self):
self.length = 6
self.board = self.create_board()
self.generation = 0
self.segmentLength = 3
self.run()
def create_board(self):
board = []
for i in range(self.length):
board.append(False)
board[0] = True
board[1] = False
board[2] = True
board[3] = False
board[4] = False
board[5] = False
return board
def print_board(self):
for i in range(self.length):
if self.board[i]:
print("▮", end="")
else:
print(" ", end="")
def run(self):
while True:
self.print_board()
self.generation += 1
print("")
time.sleep(0.2)
self.update_board()
def update_board(self):
tempBoard = [self.board[0]]
for i in range(1, self.length - 1):
center = self.checkSegment([self.board[i - 1], self.board[i], self.board[i + 1]])
tempBoard.append(center)
tempBoard.append(self.board[-1])
self.board = tempBoard
def checkSegment(self, segment):
match segment:
case [False, False, False]:
return False
case [False, False, True]:
return True
case [False, True, False]:
return False
case [False, True, True]:
return False
case [True, False, False]:
return True
case [True, False, True]:
return True
case [True, True, False]:
return True
case [True, True, True]:
return False
game = GameOfLife()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment