/** * We expect every player to win against drunk player * @dataProvider getData * @param string $name */ public function testWinAgainstDrunkPlayer($name) { if ($name == 'drunk') { return; // we do not want drunk to player to play against himself } $player = PlayerRegistry::getDefaultPlayers()->get($name); $utility = new TableHelper(); $game = new Game($utility->createTable()); $game->addPlayer($player); $game->addPlayer(new DrunkPlayer(), PlayerInterface::SYMBOL_O); $this->assertEquals(PlayerInterface::SYMBOL_X, $game->autoPlay()); }
/** * Auto play game * @return string */ public function autoPlay() { while ($this->getWinner() === null) { $this->getTurn(); $helper = new TableHelper($this->table); if (count($helper->getPossibleMoves()) == null) { return $this->getWinner(); } } return $this->getWinner(); }
/** * @dataProvider getTestGetPossibleMovesData() * @param array $table * @param array $expected */ public function testGetPossibleMoves($table, $expected) { $utility = new TableHelper($table); $actual = $utility->getPossibleMoves(); sort($actual); sort($expected); $this->assertEquals($actual, $expected); }