コード例 #1
0
ファイル: GameManager.php プロジェクト: h0ke/OftBot
 protected function doRoll()
 {
     $channel = $this->event->getRequest()->getSource();
     $this->current_game->roll();
     $roll = $this->current_game->getCurrentPlayer()->getRoll();
     $this->event->addResponse(Response::notice($channel, '@' . $this->current_game->getCurrentPlayer()->getName() . ' rolled: ' . join(', ', $roll) . '.'));
     if (count($roll) == 1) {
         $this->event->addResponse(Response::notice($channel, 'There\'s only one die; keeping it.'));
         $this->doKeep(array($roll[0]));
     } else {
         $message = '@' . $this->current_game->getCurrentPlayer()->getName() . ', What would you like to keep?  ';
         if (count($this->current_game->getCurrentPlayer()->getKept()) == 0) {
             $message .= 'For example, type \'@oftbot keep 666614\'.';
         } else {
             $message .= 'You\'ve already kept ' . join(', ', $this->current_game->getCurrentPlayer()->getKept()) . ', ';
             if ($this->current_game->getCurrentPlayer()->calculateScoreFromKept() > 0) {
                 $message .= 'and your score is ' . $this->current_game->getCurrentPlayer()->calculateScoreFromKept() . '.';
             } else {
                 $message .= 'and you have not yet qualified.';
             }
         }
         $this->event->addResponse(Response::notice($channel, $message));
     }
 }
コード例 #2
0
ファイル: GameTest.php プロジェクト: h0ke/OftBot
 /**
  * @covers \OftBot\Game::roll
  * @covers \OftBot\Game::keep
  */
 public function testFullTurn()
 {
     $game = new Game('creating_player_name');
     $game->start();
     $player = $game->getCurrentPlayer();
     // First roll
     $game->roll();
     $roll = $player->getRoll();
     $this->assertCount(6, $roll);
     $game->keep(array($roll[0], $roll[1]));
     // Keep the first two die rolled
     $kept = $player->getKept();
     $this->assertCount(2, $kept);
     $this->assertFalse($player->turnIsComplete());
     $this->assertSame(null, $player->getScore());
     // Second roll
     $game->roll();
     $roll = $player->getRoll();
     $this->assertCount(4, $roll);
     $game->keep(array($roll[0]));
     // Keep the first die rolled
     $kept = $player->getKept();
     $this->assertCount(3, $kept);
     $this->assertFalse($player->turnIsComplete());
     $this->assertSame(null, $player->getScore());
     // third roll
     $game->roll();
     $roll = $player->getRoll();
     $this->assertCount(3, $roll);
     $game->keep(array($roll[0], $roll[1], $roll[2]));
     // Keep all 3 die rolled
     $kept = $player->getKept();
     $this->assertCount(6, $kept);
     $this->assertTrue($player->turnIsComplete());
     $this->assertNotSame(null, $player->getScore());
 }