コード例 #1
0
ファイル: WinRate.php プロジェクト: scandesignsdk/scangammon
 private function addResult(Player $player, array $result, array &$matches)
 {
     if ($result['p1'] == $player->getId()) {
         $this->setMatch($matches, $result, 'p2', Game::P1WINNER);
     } else {
         $this->setMatch($matches, $result, 'p1', Game::P2WINNER);
     }
 }
コード例 #2
0
ファイル: AllGames.php プロジェクト: scandesignsdk/scangammon
 public function set(Player $player, Stats $stats)
 {
     $builder = $this->gameRepository->findByPlayer($player->getId());
     $builder->setMaxResults(50);
     $builder->orderBy('game.date', 'DESC');
     $results = $builder->getQuery()->getResult();
     $stats->setGames($results);
 }
コード例 #3
0
ファイル: Lost.php プロジェクト: scandesignsdk/scangammon
 public function set(Player $player, Stats $stats)
 {
     $builder = $this->gameRepository->findLostGamesByPlayer($player->getId());
     $builder->select($builder->expr()->count('game.id'));
     $value = $builder->getQuery()->getSingleScalarResult();
     if ($value == 0) {
         $stat = new Stat('Total lost', $value, 0);
     } else {
         $stat = new Stat('Total lost', $value, $value / $this->totalGames($player) * 100);
     }
     $stats->addStat($stat);
 }
コード例 #4
0
 public function set(Player $player, Stats $stats)
 {
     $builder = $this->gameRepository->findByPlayer($player->getId());
     $builder->select('COUNT(game.id)');
     $builder->andWhere($builder->expr()->eq('game.wintype', Game::WINTYPE_BACKGAMMON));
     $result = $builder->getQuery()->getSingleScalarResult();
     if ($result == 0) {
         $stat = new Stat('Total backgammons', $result, 0);
     } else {
         $stat = new Stat('Total backgammons', $result, round($result / $this->totalGames($player) * 100, 2));
     }
     $stats->addStat($stat);
 }
コード例 #5
0
ファイル: PlayerController.php プロジェクト: C3-TKO/smash-api
 /**
  * Creates all possible team combination with the new player
  *
  * @param EntityManager $em
  * @param Player $newPlayer
  */
 private function createTeamsForNewPlayer(EntityManager $em, Player $newPlayer)
 {
     $players = $em->getRepository('AppBundle:Player')->findAll();
     foreach ($players as $existingPlayer) {
         if ($existingPlayer->getId() === $newPlayer->getId()) {
             continue;
         }
         $team = new Team();
         $team->setPlayerA($existingPlayer);
         $team->setPlayerB($newPlayer);
         $em->persist($team);
     }
     $em->flush();
 }
コード例 #6
0
 /**
  * @param Player $player
  * @return array
  */
 public function getGamesPrDay(Player $player)
 {
     $rsm = new ResultSetMapping();
     $rsm->addScalarResult('counter', 'counter', 'integer');
     $rsm->addScalarResult('date', 'date', 'datetime');
     $sql = 'SELECT COUNT(*) as counter, date FROM game WHERE player1_id = :p1 OR player2_id = :p2 GROUP BY DAY(date)';
     $nq = $this->_em->createNativeQuery($sql, $rsm);
     $nq->setCacheable(true);
     $nq->setResultCacheLifetime(30);
     $nq->setResultCacheId(sprintf('games_pr_day_%d', $player->getId()));
     $nq->setParameter(':p1', $player->getId(), 'integer');
     $nq->setParameter(':p2', $player->getId(), 'integer');
     return $nq->execute();
 }
コード例 #7
0
 /**
  * @param Player $player
  * @return int
  */
 protected function totalGames(Player $player)
 {
     $builder = $this->gameRepository->findByPlayer($player->getId());
     $builder->select('COUNT(game.id)');
     return $builder->getQuery()->getSingleScalarResult();
 }
コード例 #8
0
ファイル: Team.php プロジェクト: C3-TKO/smash-api
 /**
  * @Serializer\VirtualProperty()
  * @Serializer\SerializedName("id_player_b")
  */
 public function getIdPlayerB()
 {
     return $this->playerB->getId();
 }