Final read.me file without the bonus image processing that might be create over the week-end/ following week. |
||
|---|---|---|
| .gitignore | ||
| README.md | ||
README.md
OOP_E4_Project
Authors: Louison DUPUIS--BURTIN, Raphaël SAVIO, Sambath UY MONYROTANAK
This programm is an implementation of the Game of life made by John Horton Conway[1]. The Game of life is a cellular automation where cells are arranged in a grid, those cells can be either considered as dead or alive. Those cells are subjected to Rules that dictate their behavior, if an alive cell has less than 2 alive cells as neighbourgs it dies of undercrowed population, if it possesses more than 3 alive neighbouring cells it dies of overcrowding. This algorythm permits us to modelise diverse behaviors of certain population of wildlife animals. In this very programm, we will implement diverse changes to the original Game of Life, introducing new Rules and a new concept: Agents.
HOW TO LAUNCH: First run the main class after downloading the right file, it will open a new window, in this window you can find diverse buttons and sliders each of their functions are listed below: -Start/Pause: Straight forward, it is the button the stop the Thread, stopping the next steps of the game to compute -Toggle Click: Permits the user to siwtch the function of the left click Mouse button on a cell to 4 scenarios: ¤position: giving the coordinates of the clicked cell ¤cell: switching the state of the clicked cell(alive to dead, dead to alive) ¤Sheep: placing a Sheep Agent on the grid at the coordinate of the mouse ¤Wolf: placing a Wolf Agent on the grid at the coordinate of the mouse Note that you can see the ongoing scenario in the botom right corner of the window next to the annotation "click :" -speed slider: changes the delay between each step, the highest delay being to the left of the slider. Note that you can see the number of steps the programm went through since it started to the left of this slider indicated by "Step :". -Load World: Loads a grid pre-registered in a .csv file with the value of each cell within it. -Save World: Save the current state of the grid into a .csv file. -Load Rule: Loads a Rule pre-registered in a .csv file with the value that dictates the behaviour of cells within it. -Save Rule: Save the current state of the implemented rule into a .csv file. -Load Agent: Loads agents depending on their coordinates and types from a .csv file. -Save Agent: Save agents depending on their coordinates and types in a .csv file. -Random Field: Generate a random grid with all the cells having a probability of being alive. -random density slider: modify the probabilty of the cells being alive, the lowest probability being to the left. -Toggle Border: Changes the type of border between closed and looping borders. Closed border acting like dead cells and looping border giving the value of the future cell that would have been out of bounds to the one opposite to the border it just crossed. It is indicated just below with the annotation "border :"
Rules: -Conway Rule -Blob Rule lighter surviving and birth conditions.
Agents : An agent is an entity that move on the grid on an other plan interracting with the cells and other agents. -Sheep: a agent moving randomely, feeding on the cells to lessen its hunger value, after its hunger reach 30 it will die, be removed from the Field -Wolf: an agent detecting nearby agents and moving towards them, eating it if it is a sheep when upclose and replenishing its satiety(hunger value) to its fullest or making a pack with other wolves if the nearest detected agent is a wolf object.