fn consider_active(&mut self) {
        for pos in self.active.iter() {
            let num_n = self.count_neighbors(pos[0], pos[1], pos[2], pos[3]);
            if num_n != 2 && num_n != 3 {
                //println!("becomes active: {:?}", pos);
                self.next.remove(pos);
            }
        }
    }
// If a cube is active and exactly 2 or 3 of its neighbors are
// also active, the cube remains active. Otherwise, the cube
// becomes inactive.
If a cube is active and exactly 2 or 3 of its neighbors are
also active, the cube remains active. Otherwise, the cube
becomes inactive.
If a cube is active and exactly 2 or 3 of its neighbors are also active the cube remains active . Otherwise the cube becomes inactive .
fn consider_active(&mut self) {
        for pos in self.active.iter() {
            let num_n = self.count_neighbors(pos[0], pos[1], pos[2], pos[3]);
            if num_n != 2 && num_n != 3 {
                //println!("becomes active: {:?}", pos);
                self.next.remove(pos);
            }
        }
    }
fn consider_active ( & mut self ) { for pos in self . active . iter ( ) { let num_n = self . count_neighbors ( pos [ 0 ] , pos [ 1 ] , pos [ 2 ] , pos [ 3 ] ) ; if num_n != 2 && num_n != 3 { //println!("becomes active: {:?}", pos); self . next . remove ( pos ) ; } } }
If a cube is active and exactly 2 or 3 of its neighbors are
also active, the cube remains active.
If a cube is active and exactly 2 or 3 of its neighbors are also active the cube remains active .
&mut self