Example #1
0
 /**
  * Applies game of life rules for next generation
  *
  * @param  string $member
  * @return boolean
  */
 public function willLive($member)
 {
     if (!$this->neighborhood->isAlive($member)) {
         return $this->neighborhood->countNeighbors($member) == 3;
     } else {
         $neighbors = $this->neighborhood->countNeighbors($member);
         return $neighbors > 1 && $neighbors < 4;
     }
 }
Example #2
0
 public function it_decides_alive_member_live_with_3_neighbors(\Neighborhood $neighborhood)
 {
     $member = '2,4';
     $neighborhood->isAlive($member)->willReturn(true);
     $neighborhood->countNeighbors($member)->willReturn(3);
     $this->willLive($member)->shouldBe(true);
 }