Esempio n. 1
0
 /**
  * Player tries an answer
  *
  * @param  PlayerId $playerId
  * @param  Answer $move
  * @return GameResult
  */
 private function playAnswer(PlayerId $playerId, Answer $move)
 {
     if ($errorEvent = $this->ensurePlayerCanPlay($playerId)) {
         $this->apply($errorEvent);
         return $errorEvent;
     }
     try {
         return $this->currentPlayerProposeAnswer($move->getText());
     } catch (HangmanException $e) {
         $event = new HangmanPlayerProposedInvalidAnswerEvent($this->getId(), $playerId, $move);
         $this->apply($event);
         return $event;
     }
 }