Цитата Сообщение от SMT
пока не (ХодилиВлево и ХодилиВправо и ХодилиВверх и ХодилиВниз)
{
дистанция = 2+random(4);
выбрать_напр:
напр = random(4);
switch (напр) {
case 0:
если (ХодилиВлево) goto выбрать_напр;
for i=1 to дистанция
{
если (A[x-2,y]!=#FF или A[x-1,y]!=#FF или
A[x-2,y-1]!=#FF или A[x-1,y-1]!=#FF или
A[x-2,y+1]!=#FF или A[x-1,y+1]!=#FF)
{
ХодилиВлево = да;
goto выбрать_напр;
}
иначе
{
x=x-1; A[x,y] = 0;
дистанция=дистанция-1;
если (дистанция == 0) break; // внутренний for (;
}
}
break;
Странная запись. SMT, перепроверь, плз, куда ведут все Break внутри большого Switch. М/б, некоторые из них Continue. А то выходит, что цикл

пока не (ХодилиВлево и ХодилиВправо и ХодилиВверх и ХодилиВниз)

всегда выполняется только 1 раз. Тогда смысл этого цикла?