/** * @return TournamentInitializator */ private function createTournamentEvent() : TournamentInitializator { $frequency = '25 20 * * * *'; $timeBegin = "+1minute"; $tournamentName = "Create new tournament"; $timeBase = 180000; return (new TournamentInitializator())->setFrequency($frequency)->setTournamentName($tournamentName)->setGameParams((new GameParams())->setTimeBase($timeBase))->setTimeBegin($timeBegin)->setTournamentParams(TournamentParamsFactory::create(TournamentType::ROUND_ROBIN())); }
/** * @param TournamentContainer $tournamentContainer */ public function onTournamentFinish(TournamentContainer $tournamentContainer) { $tournament = $tournamentContainer->getTournament(); if ($tournament->getTournamentParams()->getType() != TournamentType::ROUND_ROBIN()) { return; } $this->container->get("core.service.tournament_table.factory")->create($tournament->getTournamentParams()->getType())->mixTournamentTable($tournament); $this->container->get("immortalchessnet.service.publish")->publishNewPost(new Post($this->container->getParameter("app_immortalchess.forum_playzone"), self::THREAD_FOR_TOURNAMENT_RESULTS, $this->container->getParameter("app_immortalchess.post_username_for_calls"), $this->container->getParameter("app_immortalchess.post_userid_for_calls"), "Турнир #{$tournament->getName()} завершен", $this->container->get("templating")->render("Post/tournamenttable_round_robin.html.twig", ["tournament" => $tournament]))); }
/** * @param TournamentType $type * @return TournamentTableInterface */ public function create(TournamentType $type) { switch ($type) { case TournamentType::ROUND_ROBIN(): return new TournamentTableRoundRobin(); case TournamentType::SWITZ(): return new TournamentTableSwitz(); default: throw new TournamentIncorrectTypeException(); } }
/** * @param Tournament $tournament * @return TournamentDrawInterface * @throws TournamentIncorrectTypeException */ public function create(Tournament $tournament) : TournamentDrawInterface { switch ($tournament->getTournamentParams()->getType()) { case TournamentType::ROUND_ROBIN(): return $this->container->get("core.service.round_robin"); case TournamentType::SWITZ(): return $this->container->get("core.service.swiss"); default: throw new TournamentIncorrectTypeException(); } }
/** * @param string $frequency * @param string $timeBegin * @param string $tournamentName * @param int $timeBase * @param int $timeIncrement * @param bool $private * @param array|string $players * @param int $gamesVsOpponent */ public function createTournamentEvent(string $frequency, string $timeBegin, string $tournamentName, int $timeBase, int $timeIncrement = 0, bool $private = false, string $players = '', int $gamesVsOpponent = 2) { $this->container->get("core.handler.event")->initEventAndSave((new TournamentInitializator())->setFrequency($frequency)->setPlayerIds(empty($players) ? [] : explode(',', $players))->setTournamentName($tournamentName)->setPrivate($private)->setGameParams((new GameParams())->setTimeBase($timeBase)->setTimeIncrement($timeIncrement))->setTimeBegin($timeBegin)->setTournamentParams(TournamentParamsFactory::create(TournamentType::ROUND_ROBIN())->setGamesVsOpponent($gamesVsOpponent)), "core.service.event.tournament.create"); }
/** * @return TournamentType */ public function getType() : TournamentType { return TournamentType::ROUND_ROBIN(); }