|
|
||
|---|---|---|
| Guidelines | ||
| lib | ||
| ressources | ||
| src | ||
| README.md | ||
README.md
Game Of Life
The Game of Life (an example of a cellular automaton) is played on an infinite two-dimensional rectangular grid of cells. Each cell can be either alive or dead. The status of each cell changes each turn of the game (also called a generation) depending on the statuses of that cell's 8 neighbors. Neighbors of a cell are cells that touch that cell, either horizontal, vertical, or diagonal from that cell.
Reminder of basic game of life rules
-
Any living cell with strictly fewer than two living neighbors dies (referred to as underpopulation or exposure).
-
Any living cell with strictly more than three living neighbors dies (referred to as overpopulation or overcrowding).
-
Any dead cell with exactly three living neighbors will come to life. (Referred to as spreading or growth) With the implied additional rules:
-
Any living cell with two or three living neighbors continues to live, unchanged.
-
Any dead cell who doesn’t have exactly 3 living neighbors stays dead, unchanged.
Features
- Classic Game of Life Rules: Implements the traditional rules of Conway's Game of Life.
- Customizable Rulesets: Load and apply custom rulesets from JSON files.
- Agent Behavior: Simulate agents with specific behaviors based on their surroundings.
- Interactive Grid: Click on cells to change their states with two modes: cell state change and agent placement.
- Looping Borders: Option to enable or disable looping borders for the grid. (Opposit sides are connected)
- Adjustable Simulation Speed: Change the speed of the simulation using a slider.
- Random Cell Generation: Generate a random initial state for the grid, the density slider allows to adjust the probability for a cell to become alive.
- Save and Load States: Save/Load current state of the simulation.
- Pause and Resume.
- Visual Representation: Display the grid with different colors representing different cell states.
Run Locally
Clone the project
git clone https://gitarero.ecam.fr/guillaume.bonabau/OOP_F1_Project.git
Go to the project directory
cd OOP_F1_Project
Install dependencies
TODO How to install the json-simple-1.1.1.jar
Start the program
TODO ???? => javac .\src\Main.java
Basic How to
-
Load Rules By default, Coneways rules are loaded. You can load other set of rules by clicking the "Load Rule" button.
-
Create Field Create the fild either by generating a random field, or by clicking yourself on cells (Don't forget to Toggle click).
-
Toggle Border There is 2 different iterations methodes.
-
Closed The sides of the gride will count as dead.
-
Loop The gride technicaly has no sides. The left handside is connected to the right one, the top to the bottom. All 4 corners cells are nearby cells of each others.
Color Reference
| Color | HEX | RGB |
|---|---|---|
| Dead | [37,52,31] | |
| Alived | [167,237,139] |
FAQ
Question 1
Answer 1
Question 2
Answer 2
Acknowledgements
Appendix
To download the json library: https://code.google.com/archive/p/json-simple/downloads
Workflow : When starting a task "TODO" edit it to "TODO-INPROGRESS"
When task is done edit it to "TODO-COMPLETE"
If there is an error in the code edit it to "TODO-ERROR"
Link Canva Whiteboard: https://www.canva.com/design/DAGCBGF5b4c/4cNmhoS6lSC8Once9r_Tlg/edit?utm_content=DAGCBGF5b4c&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton