public function testBattleshipAddingAfterShoot() { $this->setExpectedException(\Model\Battlefield\Exception\Exception::class); $battlefield = new Battlefield(5, 5); $battlefield->shoot(new Point(0, 0)); $battlefield->addBattleship(new Placer(new Destroyer(), new Point(0, 0), new Point(0, 3))); }
public function testBattleShipFreePoint() { $field = new Battlefield(10, 10); $battleShip = new Battleship(); $placer = new Placer($battleShip, new Point(0, 0), new Point(0, 4)); $field->addBattleship($placer); $validPoints = [new Point(5, 0), new Point(6, 0)]; $invalidPoints = [new Point(0, 0), new Point(0, 1), new Point(0, 2), new Point(0, 3), new Point(0, 4)]; foreach ($validPoints as $validPoint) { $this->assertTrue($field->isPointFree($validPoint), "Point [{$validPoint->getX()}, {$validPoint->getY()}] should be valid"); } foreach ($invalidPoints as $invalidPoint) { $this->assertFalse($field->isPointFree($invalidPoint), "Point [{$invalidPoint->getX()}, {$invalidPoint->getY()}] should be invalid"); } }
public function testGetLastShotStatusSink() { $battlefield = new Battlefield(10, 10); $visualizer = new Visualizer($battlefield); $placer = new Placer(new \Model\Battleship\Destroyer(), new Point(0, 0), new Point(3, 0)); $battlefield->addBattleship($placer); $battlefield->shoot(new Point(1, 1)); $this->assertSame('miss', $visualizer->getLastShotStatus()); $battlefield->shoot(new Point(0, 0)); $this->assertSame('hit', $visualizer->getLastShotStatus()); $battlefield->shoot(new Point(1, 0)); $battlefield->shoot(new Point(2, 0)); $battlefield->shoot(new Point(3, 0)); $this->assertSame('sunk', $visualizer->getLastShotStatus()); }