Skip to content
Snippets Groups Projects
Select Git revision
  • b9754f9b53a2565775c39c7c7749db001c2152d6
  • main default protected
  • correction_video
  • going_further
  • ImprovedMouseInteraction
  • final2023
  • template
  • ModifGUI
8 results

CellularAutomatonSimulation.java

Blame
  • Forked from YAGOUBI Rim / Game of life Template
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Cell.java 1.64 KiB
    /**
     * {@link Cell} instances represent the cells of <i>The Game of Life</i>.
     */
    
    public class Cell {
        private boolean isAlive;
    
        public Cell(){
    	this.isAlive = false;
        }
        public void setColor(String hisColor) { color = hisColor; }
    
        public String getColor() { return color; }
    
        /**
         * Determines whether this {@link Cell} is alive or not.
         *
         * @return {@code true} if this {@link Cell} is alive and {@code false} otherwise
         */
    
        public boolean isAlive() {
            return this.isAlive;
        }
    
        /**
         * Determines whether this {@link Cell} is dead or not.
         *
         * @return {@code true} if this {@link Cell} is dead and {@code false} otherwise
         */
    
        public boolean isDead() {
            return !this.isAlive;
        }
    
        /**
         * Sets the state of this {@link Cell} to alive.
         *
         * @param cellState the new state of this {@link Cell}
         */
    
        public void setAlive() {
    	this.isAlive = true;
        }
    
        /**
         * Sets the state of this {@link Cell} to dead.
         *
         * @param cellState the new state of this {@link Cell}
         */
    
        public void setDead() {
    	this.isAlive = false;
        }
    
    
        /**
         * Change the state of this {@link Cell} from ALIVE to DEAD or from DEAD to ALIVE.
         */
    
        public void toggleState() {
    	if(this.isAlive)
    	    this.isAlive = false;
    	else
    	    this.isAlive = true;
        }
    
        public boolean isAliveInNextState(int numberOfAliveNeighbours) {
    	if(isAlive()){
    	    if (numberOfAliveNeighbours == 2 ||  numberOfAliveNeighbours == 3)
    		return true;
    	    else
    		return false;
    	}
    	else{
    	    if (numberOfAliveNeighbours == 3)
    		return true;
    	    else
    		return false;
    	}
        }
    }