Exemplo n.º 1
0
 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)));
 }
Exemplo n.º 2
0
 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");
     }
 }
Exemplo n.º 3
0
 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());
 }