コード例 #1
0
 public function test_it_returns_first_found_winning_move_when_mutliple_winning_moves_exist()
 {
     $boardState = new Board();
     $boardState->markField(Board::COL_1, Board::ROW_1, 'X');
     $boardState->markField(Board::COL_1, Board::ROW_2, 'X');
     $boardState->markField(Board::COL_2, Board::ROW_2, 'O');
     $boardState->markField(Board::COL_2, Board::ROW_3, 'O');
     $boardState->markField(Board::COL_3, Board::ROW_1, 'X');
     $boardState->markField(Board::COL_3, Board::ROW_2, 'O');
     $game = $this->createMockGame('X', 'O', $boardState);
     list($col, $row) = $this->miniMaxStrategy->getMove($game);
     $this->assertEquals(Board::COL_1, $col);
     $this->assertEquals(Board::ROW_3, $row);
 }
コード例 #2
0
 public function test_it_returns_correct_board_coordinates_when_retrieving_coordinates_by_random()
 {
     for ($i = 0; $i < 10; ++$i) {
         list($column, $row) = $this->board->getRandomCoordinates();
         $this->assertTrue(in_array($column, $this->board->getColumnIndices()));
         $this->assertTrue(in_array($row, $this->board->getRowIndices()));
     }
 }
コード例 #3
0
 /**
  * @param string $playerMark
  * @param Board  $boardState
  * @return bool
  */
 private function playerScores($playerMark, Board $boardState)
 {
     return $boardState->hasFullSequenceMarked($playerMark);
 }
コード例 #4
0
ファイル: Game.php プロジェクト: basia-horwath/tic-tac-toe
 /**
  * @return array (column, row)
  */
 public function getRandomBoardCoordinates()
 {
     return $this->board->getRandomCoordinates();
 }