Exemple #1
0
 private function lose(Player $player) : bool
 {
     if ($player->equals(Player::X())) {
         return $this->win(Player::O());
     }
     return $this->win(Player::X());
 }
Exemple #2
0
 public function testExceptionWhenNoMovesLeft()
 {
     $O = Player::O();
     $state = new GameState();
     // OXX
     // XOO
     // XOX
     $state->fillField(2, 0);
     // X
     $state->fillField(0, 0);
     // O
     $state->fillField(0, 2);
     // X
     $state->fillField(1, 1);
     // O
     $state->fillField(0, 1);
     // X
     $state->fillField(2, 1);
     // O
     $state->fillField(2, 2);
     // X
     $state->fillField(1, 2);
     // O
     $state->fillField(1, 0);
     // X
     $engine = new Engine($O);
     $this->expectException(RuntimeException::class);
     $engine->decide($state);
 }