Skip to content
Snippets Groups Projects
WireWorldAutomaton.java 913 B
Newer Older
  • Learn to ignore specific revisions
  • Guyslain's avatar
    Guyslain committed
    package model.automata;
    
    import model.CellularAutomaton;
    
    import java.util.Random;
    
    import static model.automata.WireWorldState.WIRE;
    
    public class WireWorldAutomaton implements CellularAutomaton<WireWorldState> {
    
        private final int numberOfColumns;
        private final int numberOfRows;
    
        public WireWorldAutomaton(int numberOfColumns, int numberOfRows) {
            this.numberOfColumns = numberOfColumns;
            this.numberOfRows = numberOfRows;
        }
    
        @Override
        public int numberOfColumns() {
            return numberOfColumns;
        }
    
        @Override
        public int numberOfRows() {
            return numberOfRows;
        }
    
        @Override
        public WireWorldState defaultState() {
            return WireWorldState.DEAD;
        }
    
        @Override
        public WireWorldState randomState(Random generator) {
            int r = generator.nextInt(10);
            return r < 3 ? WireWorldState.WIRE: WireWorldState.DEAD;
        }
    }