This project is an implementation of John Conway's Game of Life, a well-known cellular automaton. The program simulates a two-dimensional grid where each cell can be either alive or dead. The grid evolves over generations based on predefined rules that determine the state of each cell in the next generation based on its neighbors.
The project follows structured coding practices, ensuring readability, maintainability, and ease of testing.
- Programming Language: Python
- Testing Framework: pytest
- Object-Oriented Programming (OOP): The project is structured using OOP principles, making it modular and extensible.
- Encapsulation & Abstraction: The game's logic is divided into separate components to maintain clarity and structure.
- Unit Testing:
pytestis used to ensure the correctness of core functionalities.
- Grid Representation: A structured way to store and update the game's state.
- Game Rules Implementation: Efficiently applies Conway's rules to generate new states.
- Testing Coverage: Unit tests verify critical components to maintain code integrity.