From 8ea68ad89f6ad1a82a60592abeeb0ba0f33aeda2 Mon Sep 17 00:00:00 2001 From: Balthazar SQUINABOL Date: Wed, 22 May 2024 14:06:14 +0200 Subject: [PATCH] Actualiser README.md --- README.md | 121 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 111 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 6f81b49..f0f7270 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,124 @@ -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 +# 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 game of life rules: +### Reminder of basic game of life rules 1. Any living cell with strictly fewer than two living neighbors dies (referred to as underpopulation or exposure). + 2. Any living cell with strictly more than three living neighbors dies (referred to as overpopulation or overcrowding). + 3. Any dead cell with exactly three living neighbors will come to life. (Referred to as spreading or growth) With the implied additional rules: + 4. Any living cell with two or three living neighbors continues to live, unchanged. -5. Any dead cell who doesn’t have exactly 3 living neighbors stays dead, -unchanged. + +5. 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 + +```bash + git clone https://gitarero.ecam.fr/guillaume.bonabau/OOP_F1_Project.git +``` + +Go to the project directory + +```bash + cd OOP_F1_Project +``` + +Install dependencies + +```bash + TODO How to install the json-simple-1.1.1.jar +``` + +Start the program + +```bash + 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. + +1. Closed +The sides of the gride will count as dead. + +2. 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 | ![#25341F](https://via.placeholder.com/10/25341F?text=+) #25341F | [37,52,31] | +| Alived | ![#a7ed8b](https://via.placeholder.com/10/A7ED8B?text=+) #f8f8f8 | [167,237,139] | + + +## FAQ + +#### Question 1 + +Answer 1 + +#### Question 2 + +Answer 2 + + +## Acknowledgements + + - [OOP Project](https://gitarero.ecam.fr/francois.neron/OOP_H03_test_Project) + - [Francois NERON](https://gitarero.ecam.fr/francois.neron) + +## Appendix To download the json library: https://code.google.com/archive/p/json-simple/downloads -tutorial to install it on vscode: -https://www.youtube.com/watch?v=g6vvEEm2hhs \ No newline at end of file + +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 +## Authors + +- [@guillaume.bonabau](https://gitarero.ecam.fr/guillaume.bonabau) +- [@g.le-chartier](https://gitarero.ecam.fr/g.le-chartier) +- [@balthazar.squinabol](https://gitarero.ecam.fr/balthazar.squinabol)