@Override
    public AbstractState getState(int i, int j) throws ArrayWidthException, ArrayHeightException {
        if (i < 0 || i > this.width - 1) {
            throw new ArrayWidthException(i);
        }
        if (j < 0 || j > this.height - 1) {
            throw new ArrayHeightException(j);
        }
        return this.gameboard.get(j * width + i);
    }