у списку кораблів
shiplist ()//Конструктор списку
{= 0;=firstdown=lastright=lastdown=NULL;
} addshipFirst (int _x, int _y)//додавання першого корабля
{* newship=new ship (_x, _y);=newship;=newship;=newship; ++;
} addshipRight (int _x, int _y)//додавання корабля вправо (комірки)
{* newship=new ship (_x, _y); gt; nextright=newship;=newship; ++;
} addshipDown (int _x, int _y)//додавання першого осередку наступного корабля
{* newship=new ship (_x, _y); gt; nextdown=newship;=newship;=newship; ++;
} delShip (int _x, int _y)//видалення осередку
{* prev=NULL,
* current=first,
* lastdown=first,
* prevup=NULL; (current)//поки не 0
{(current- gt; nextdown)//поки знизу не нуль
{(current- gt; nextright)//поки впоратися не нуль
{((current- gt; x == _x) amp; amp; (current- gt; y == _y))//якщо значення співпали
{(current == first)//якщо перше
{
if (current- gt; nextright)//якщо праворуч щось є
{ gt; nextright- gt; nextdown=current- gt; nextdown;=current- gt; nextright;=first; current; -;=first; true;
}
{= current- gt; nextdown;=first; current; -;=first; true;
} if ((prev == 0) amp; amp; (prevup!=0) amp; amp; (current- gt; nextright!=0))//якщо зліва порожньо і зверху є клітка і праворуч не порожньо
{ gt; nextdown=current- gt; nextright; gt; nextright- gt; nextdown=current- gt; nextdown;=current- gt; nextright; current; -;=lastdown; true;
} if (prev)//якщо попередній не дорівнює 0
{ gt; nextright=current- gt; nextright; current; -;=prev- gt; nextright; true;
}
}//якщо значення не співпали йдемо далі
{= current;=current- gt; nextright;
}
} ((current- gt; x == _x) amp; amp; (current- gt; y == _y))//якщо праворуч 0
{(prev)//якщо зліва не порожньо
{ gt; nextright=0; current; -;=prev; true;
} if ((prev == 0) amp; amp; (prevup!=0) amp; amp; (current- gt; nextright == 0) amp; amp; (current- gt; nextdown!=0))//якщо зліва порожньо і зверху є клітка і праворуч порожньо і знизу не порожньо
{ gt; nextdown=current- gt; nextdown;=current- gt; nextdown; current; -;=lastdown; true;
}=lastdown;=lastdown- gt; nextdown;=current;=0;
} current; -; true;
} false;
}