예제 #1
0
 /**
  * @dataProvider fenProvider
  */
 public function testImportExport($fen)
 {
     $game = $this->createGame();
     Forsyth::import($game, $fen);
     $simplifyFen = function ($fen) {
         return substr($fen, 0, strpos($fen, ' '));
     };
     $this->assertEquals($simplifyFen($fen), $simplifyFen(Forsyth::export($game)));
 }
예제 #2
0
 /**
  * Creates a return game for the given player,
  * reverting players colors
  *
  * @param  Player the player who creates the return game
  * @return Player the new player on the new game
  **/
 public function createReturnGame(Player $player)
 {
     $game = $player->getGame();
     $variant = $game->getVariant();
     $nextGame = $this->createGame($variant);
     if (Game::VARIANT_960 == $game->getVariant()) {
         Forsyth::import($nextGame, $game->getInitialFen());
         $nextGame->setInitialFen($game->getInitialFen());
     }
     $nextPlayer = $nextGame->getPlayer($player->getOpponent()->getColor());
     $nextGame->setCreator($nextPlayer);
     if ($game->hasClock()) {
         $nextGame->setClock(clone $game->getClock());
     }
     $nextGame->setIsRated($game->getIsRated());
     $nextGame->getPlayer('white')->setUser($game->getPlayer('black')->getUser());
     $nextGame->getPlayer('black')->setUser($game->getPlayer('white')->getUser());
     $game->setNext($nextGame);
     return $nextPlayer;
 }