Skip to content
Snippets Groups Projects
Cell.java 1.99 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alexis Nasr's avatar
    Alexis Nasr committed
    /**
     * {@link Cell} instances represent the cells of <i>The Game of Life</i>.
     */
    
    public class Cell {
        private boolean isAlive;
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
        private boolean isBlue;
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
        public Cell() {
            this.isAlive = false;
            this.isBlue = false;
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
    
    
    Alexis Nasr's avatar
    Alexis Nasr committed
        /**
         * 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;
        }
    
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
        public boolean isBlue() {
            return this.isBlue;
        }
    
    
    Alexis Nasr's avatar
    Alexis Nasr committed
        /**
         * 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;
        }
    
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
        public boolean isRed() {
            return !this.isBlue;
        }
    
    
    Alexis Nasr's avatar
    Alexis Nasr committed
        /**
         * Sets the state of this {@link Cell} to alive.
         *
         * @param cellState the new state of this {@link Cell}
         */
    
        public void setAlive() {
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
            this.isAlive = true;
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
        public void setBlue() {
            this.isBlue = true;
        }
    
    
    
    Alexis Nasr's avatar
    Alexis Nasr committed
        /**
         * Sets the state of this {@link Cell} to dead.
         *
         * @param cellState the new state of this {@link Cell}
         */
    
        public void setDead() {
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
            this.isAlive = false;
        }
    
        public void setRed() {
            this.isBlue = false;
    
    Alexis Nasr's avatar
    Alexis Nasr committed
        }
    
    
        /**
         * Change the state of this {@link Cell} from ALIVE to DEAD or from DEAD to ALIVE.
         */
    
        public void toggleState() {
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
            if (this.isAlive)
                this.isAlive = false;
            else
                this.isAlive = true;
    
    Alexis Nasr's avatar
    Alexis Nasr committed
        }
    
        public boolean isAliveInNextState(int numberOfAliveNeighbours) {
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
            if (isAlive()) {
                if (numberOfAliveNeighbours == 2 || numberOfAliveNeighbours == 3)
                    return true;
                else
                    return false;
            } else {
                if (numberOfAliveNeighbours == 3)
                    return true;
                else
                    return false;
            }
    
    HAMADACHE Mohamed's avatar
    ok  
    HAMADACHE Mohamed committed
    }