Example #1
0
 /**
  * Method creates a new game.
  *
  * @ApiDoc(
  *  resource=true,
  *  output={
  *      "class"="Hangman\Bundle\ApiBundle\Entity\Game"
  *  },
  *  statusCodes={
  *      201="The new game is created.",
  *      500="Application error."
  *  }
  * )
  */
 public function createAction(Request $request)
 {
     $view = $this->view("", 201);
     $repository = $this->getDoctrine()->getRepository('HangmanApiBundle:Word');
     $word = $repository->createQueryBuilder('q')->addSelect('RAND() as HIDDEN rand')->addOrderBy('rand')->setMaxResults(1)->getQuery()->getOneOrNullResult();
     $game = new Game();
     $game->setTriesLeft(11);
     $game->setWord($word->getWord());
     $game->setStatus(Game::STATUS_BUSY);
     $em = $this->getDoctrine()->getManager();
     $em->persist($game);
     $em->flush();
     $view->setData(array("game" => $game));
     return $this->handleView($view);
 }
Example #2
0
 /**
  * Create a new game
  */
 public function create()
 {
     $game = new Game();
     $randomWord = $this->getEntityManager()->getRepository('HangmanApiBundle:Word')->getRandomWord();
     $game->setWord($randomWord);
     $game->setTriesLeft(11);
     $game->setStatus('busy');
     $guess = json_encode(array());
     $game->setCharactersGuessed($guess);
     $em = $this->getEntityManager();
     $em->persist($game);
     $em->flush();
     return $game;
 }
Example #3
0
 public function testCorrectLetter()
 {
     $game = new Game();
     $game->setWord($this->word);
     $this->assertEquals($this->word, $game->getWord());
     $game->addCharacterGuessed("t");
     $this->assertEquals(1, count($game->getCharactersGuessed()));
     $game->addCharacterGuessed("e");
     $this->assertEquals(2, count($game->getCharactersGuessed()));
     $game->addCharacterGuessed("s");
     $this->assertEquals(3, count($game->getCharactersGuessed()));
     $this->assertEquals($game->getWord(), $game->getHiddenWord());
 }