diff --git a/README.md b/README.md index 7fd423f..a5b1939 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,43 @@ # 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. + +[1]https://conwaylife.com/wiki/Conway%27s_Game_of_Life \ No newline at end of file