The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970.
This is a rendition of the Game of Life in the C++ language, using modular and structured systems.
- Play a fully functional rendition of Conway's Game of Life in C++.
- Create a grid with inputted size parameters.
- Save any grid you want in a human-readable save format.
- Modify the saves by hand.
- Load any save file that matches the specifications.
- Optionally randomize the grid at start for random fun patterns.
- Evolve step-by-step.
- Automatically evolve every interval set by the user.
- Modify cell status between evolutions.
- Pre-built "templates" that insert certain well-known Game of Life entities at the cursor.
- Polish UI.
- Write tests.
- Allow the user to input the height and width of the grid, as well as to be able to execute an evolution.
- Better display system.
- Allow the user to input an execution speed and start the execution running a generation then waiting for the inputted amount of time and looping.
- Make the grid interactive.
- Saving and loading grids.
- The grid is not of infinite size; thus, the program behaves incorrectly when cells are at the edges of the grid.
- Attempting to make the size of the grid larger than the size of the terminal the program is executed in will result in unpredictable complications.
sudo apt install libncurses5-dev
- Clone this repository. [
git clone https://github.com/Wintro/game-of-life.git
] - Navigate to the root folder of the repository. [
cd game-of-life
] - In root folder of the repository compile the program. [
make
] - The compiler program is then in the root folder of the repository and can be executed. [
./golcpp
]
- To install the program to
/usr/local/bin
, runsudo make install
in the root folder of the repository. - The program can then be executed from any place on the system using
golcpp
.
- To uninstall the program from
/usr/local/bin
, runsudo make uninstall
in the root folder of the repository.
- To create a debuggable executable, run
make debug
in the root folder of the repository.
- To clean and remove all builds, run
make clean
in the root folder of the repository.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.