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;
    }
}