public boolean iterate() {
        
        for(i=0;i<w;i++) for(j=0;j<h;j++) cells[i][j].setDestiny();
        boolean temp = true;
        for(i=0;i<w;i++) for(j=0;j<h;j++) if(cells[i][j].getDestiny() != cells[i][j].getStatus()) temp = false;
        if(temp || this.checkForCycles()) return true;
        for(i=0;i<w;i++) for(j=0;j<h;j++) cells[i][j].setStatus(cells[i][j].getDestiny());
        
        return false;
    }