public static function flagWaterAroundShip(Cell $cell) { $processor = new PathProcessor($cell->getCoordinate()); $battlefield = $cell->getBattlefield(); $cells = $processor->getAdjacentCells($cell->getBattlefield(), 4, CellModel::FLAG_SHIP); $cells[$cell->getCoordinate()] = $cell; foreach ($cells as $cell) { foreach ($processor->reset($cell->getCoordinate())->getAdjacentCells($battlefield, 1, 0, CellModel::FLAG_SHIP) as $waterCell) { CellModel::switchPhase($waterCell, CellModel::FLAG_SKIP); } } }
/** * @see PathProcessor::reset * @test */ public function reset() { $processor = new PathProcessor('B2'); $processor->setPath(PathProcessor::PATH_DOWN)->calculateNextCoordinate(); $processor->reset('B3'); $this->assertEquals($processor->getCurrentCoordinate(), 'B3'); $this->assertEquals($processor->getCurrentCoordinate(), $processor->getOriginCoordinate()); }