/**
  * @param Tournament $tournament
  */
 private function mixGamesForRoundRobin(Tournament $tournament)
 {
     $gamesMap = [];
     foreach ($tournament->getPlayers() as $firstPlayer) {
         foreach ($tournament->getPlayers() as $secondPlayer) {
             if ($firstPlayer == $secondPlayer) {
                 continue;
             }
             $gamesMap[$firstPlayer->getId()][$secondPlayer->getId()] = '';
             $gamesMap[$secondPlayer->getId()][$firstPlayer->getId()] = '';
         }
     }
     foreach ($tournament->getGames() as $tournamentGame) {
         if ($tournamentGame->getGame()->getStatus() != GameStatus::END) {
             continue;
         }
         $playerWhite = $tournamentGame->getPlayerWhite();
         $playerBlack = $tournamentGame->getPlayerBlack();
         $gamesMap[$playerWhite->getId()][$playerBlack->getId()][] = new TournamentGameRoundRobin($tournamentGame->getGame()->getId(), $tournamentGame->getGame()->getResultWhite());
         $gamesMap[$playerBlack->getId()][$playerWhite->getId()][] = new TournamentGameRoundRobin($tournamentGame->getGame()->getId(), $tournamentGame->getGame()->getResultBlack());
     }
     $tournament->setResultsForRoundRobin($gamesMap);
 }
Example #2
0
 /**
  * @param Tournament $tournament
  */
 private function recalculateCoefficients(Tournament $tournament)
 {
     foreach ($tournament->getPlayers() as $tournamentPlayer) {
         $tournamentPlayer->setCoefficient(0)->setPoints(0);
     }
     foreach ($tournament->getGames() as $tournamentGame) {
         $this->updatePoints($tournamentGame->getPlayerWhite(), $tournamentGame->getGame()->getResultWhite());
         $this->updatePoints($tournamentGame->getPlayerBlack(), $tournamentGame->getGame()->getResultBlack());
     }
     foreach ($tournament->getGames() as $tournamentGame) {
         $this->updateCoefficients($tournamentGame->getPlayerWhite(), $tournamentGame->getPlayerBlack(), $tournamentGame->getGame()->getResultWhite());
         $this->updateCoefficients($tournamentGame->getPlayerBlack(), $tournamentGame->getPlayerWhite(), $tournamentGame->getGame()->getResultBlack());
         $this->manager->persist($tournamentGame->getPlayerWhite());
         $this->manager->persist($tournamentGame->getPlayerBlack());
     }
     $this->manager->flush();
 }