OOP_D1_Project/ReadMe/ReadMe.java

53 lines
2.4 KiB
Java

/*
* README of Game Of Life
*
* INTRODUCTION:
*
* This Java project is a Game of life. The simulation
* is controlled through a graphical user interface
* (GUI). There are 2 types of cells (alive: green blocks,
* dead: black blocks). They interract with each other according
* to the number of living or dead cell around. For a cell to stay alive,
* it need to have 2 or 3 neighbours. If it's less or more, it
* will die. If a dead cell has exctly 3 living neughbours,
* it will come to life. The simulation includes agents that
* interact based on predefined rules.
*
*
* USAGE:
*
* Use the GUI controls to interact with the simulation:
* - Start/Pause: Control the execution of the simulation.
* - Toggle Click: Toggle different actions when clicking on cells.
* - Toggle Borber: Toggle looping border for the grid.
* - Speed slider: Increases or decreases the delay between simulation steps.
* - Files load: You can load different types of files:
* . World: Already predifined worlds to test
* . Rules: You can set different types of rules that differe from Conway's rules
* . Agents: It's the state the cell is in (dead or alive) and that can make a
* pattern emerge.
* - Files saves: You can save new agents, files or rules.
* - Random fields: You can create a random world
* - Density slider: You can have a random field that is more dense when moving from
* left to right.
*
* STRUCTURE:
*
* The main components of the project are:
* - Simulator.java: This class implements the simulation logic, including grid
* management, agent behavior, and simulation control.
* - Agent.java: Represents different types of agent in the simulation.
* - Gride.java: Manages the grid structure used in the simulation.
* - Cell.java: Represents individual cells within the grid.
* - Sheep.java: It's an extention of the game. We can add either sheeps or wolves.
* a sheep needs a cell to survive and a wolf needs a sheep to survive. It can simulate the environment
* between animals and it can show if there are domination of certain species over others.
*
* ADDITIONAL NOTES:
*
* There are a lot of personnalization possible. It is possible to change the color of cells, it is
* also possible to extend the grid to have an infinite grid and the possibility to zoom in or out.
* It is possible to create variances, when changing rules (changing number of neighbours), agents
* or world.
*/