Overview
The game simulates cellular automata where cells evolve based on simple rules. This begann as a personal project to code Conway's Game of Life in Python using Pygame for graphics and Numpy for array operations.
Later this project was extended as part of my master's course ISYE 6644: Simulation and Modeling for Engineering and Science. The goal of which was to explore the performance metrics of the simulation.
You can view the final report here: DRAFT REPORT
Files
gameOfLife_v1.py
togameOfLife_v5.py
: Different versions of the Game of Life implementation, with version 5 being the latest.glider.csv
andgliders.csv
: CSV files storing starting configurations for one and two Gosper's glider guns, respectively.
Version History
- V1: Initial implementation.
- V2: Updated to use Numpy array operations.
- V3: Optimized drawing by only updating changed cells.
- V4: Refactored code into functions, added Pause and Resume functionality.
- V5: Improved user interaction, added restart feature, and implemented clock speed control.
Running the Game
To run the game, execute the appropriate version file (gameOfLife_v5.py
for the latest version) using Python. Ensure you have Pygame and Numpy installed.
python gameOfLife_v5.py
Game Controls
- Up Arrow: Increase game speed.
- Down Arrow: Decrease game speed.
- P: Pause the game.
- S: Return to the start menu while paused.
- R: Resume the game when paused.
- Escape: Quit the game.