private void process() {
        boolean[][] ncells = new boolean[cheight][cwidth];
        for (int y = 0; y < cheight; y++) {
            for (int x = 0; x < cwidth; x++) {
                int nei = neighbours(x, y);
                if (nei < 3) {
                    unset(ncells, x, y);
                } else {
                    if (is(x, y) == 1) {
                        set(ncells, x, y);
                    } else {
                        if (nei > 5) {
                            set(ncells, x, y);
                        }
                    }
                }
            }
        }
        cells = ncells;
    }