コード例 #1
0
ファイル: Game.php プロジェクト: basia-horwath/tic-tac-toe
 /**
  * @throws GameException
  */
 public function moveCurrentPlayer()
 {
     $player = $this->getCurrentPlayer();
     list($column, $row) = $player->getMove($this);
     $this->checkMove($column, $row);
     $this->board->markField($column, $row, $this->currentPlayerMark);
 }
コード例 #2
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);
 }
コード例 #3
0
 /**
  * @dataProvider columnDataProvider
  */
 public function test_it_returns_true_for_board_with_completed_column_when_checking_for_completed_sequence($column)
 {
     $this->board->markField($column, Board::ROW_1, 'X');
     $this->board->markField($column, Board::ROW_2, 'X');
     $this->board->markField($column, Board::ROW_3, 'X');
     $this->assertTrue($this->board->hasFullSequenceMarked('X'));
 }