53 lines
2.4 KiB
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.
|
|
*/
|