Морской бой. Штриховка

Здравствуйте. Работаю над игрой, морской бой. У меня проблема со штриховкой вокруг корабля. Штриховка происходит, только при уничтожении одинарных и двойных кораблей, а при других нет. Как это поправить? Вот фрагмент, если нужна полностью программа, я скину.

// штриховка для компьютера
  for i := 0 to 11 do    // поле 12 х 12
  for j := 0 to 11 do
  begin
    if map2[i,j] = 3 then // проверка, что в этой клетке подбитый корабель
    begin
    u := false;
      for n := i - 1 to i + 1 do
      for m := j - 1 to j + 1 do
      if (m >= 0) and (n >= 0) and (n <= 11) and (m  <= 11) and (map2[n,m] = 4) then 
         u := true;
      if u = false then
      begin
        for n := i - 1 to i + 1 do
        for m := j - 1 to j + 1 do
          if (n >= 0) and (m >= 0) and (n <= 11) and (m <= 11) and (map2[n,m] = 0)  then
          begin
                map2[n,m] := 2; // штриховка. 
          end;
      end;
    end;

“4” означает целую часть корабля? Когда вызывается данный код, уже точно известно, что корабль полностью уничтожен или может быть только подбит?

Да, 4 означает целую часть корабля. 0 это просто клетка поля, 2 - это штриховка, 3 - подбитый корабль. if map2[i,j] = 3 проверка на то, что он подбит

Вы не ответили, этот код вызывается уже после полного уничтожения корабля или и при подбитии тоже? Код не запускал, но он выглядит так, что, скорее, начнет штриховать лишнее (до полного уничтожения корабля). Эта штриховка для компьютера, чтобы он по этим клеткам уже не стрелял?