/** * @test */ public function it_shoots_inside_grid() { $grid = Grid::generate(); $grid->shoot(Coords::create(1, 1)); }
/** * @test */ public function it_asks_coords_of_field__right_to_given_coords_with_distance() { $coords = Coords::create(1, 3); $this->assertEquals(Coords::create(3, 3), $coords->right(2)); }
/** * @test */ public function it_sinks_a_ship_in_fields_with_a_ship() { $fields = []; $data = ['startPoint' => ['x' => 1, 'y' => 1], 'endPoint' => ['x' => 1, 'y' => 2], 'hits' => 1]; $ship = Ship::fromArray($data); $field = Field::generate(1, 1); $field->place($ship); $fields[] = $field; $field = Field::generate(1, 2); $field->place($ship); $fields[] = $field; $fieldsClass = Fields::create($fields); $fieldsClass->shoot(Coords::create(1, 1)); $this->assertEquals(true, $fieldsClass->didShipSankAt(Coords::create(1, 1))); $this->assertEquals(true, $fieldsClass->didAllShipsSink()); }