CODE:
function MoveTrue(int t1, int t2)
{
Kx = t1; Ky = t2; //Конечная точка пути
int i, j, x, y;
int findZ; // метка нашли путь или нет
Nh = 1; // Номер хода
i31:
i =0; i30: if (i<28)
{
j = 0; j30: if (j<28)
{
V[i][j] = Pole[i][j] * -1; // Переносим в временный массив основное поле
j++; goto j30;
}
i++; goto i30;
}
V[Xr][Yr] = 1; //позиция игрока на карте
move10:
findZ = 0;
x =0; x10: if (x<28)
{
y = 0; y10:
if (y<28)
{
if (V[x][y] == Nh)
{
i =0; i40: if (i<4)
{
if ((x + dx[i] < 0) || (x + dx[i] == 28)) { i++; goto i40; }
if ((y + dy[i] < 0) || (y + dy[i] == 28)) { i++; goto i40; }
if (V[x + dx[i]][y + dy[i]] == 0 )
{
findZ = 1;
V[x + dx[i]][y + dy[i]] = Nh + 1;
if ((x + dx[i]) == Kx)
{
if ((y + dy[i]) == Ky)
{
// messagebox("Find Move");
return 1;
}
}
}
i++; goto i40;
}
}
y++; goto y10;
}
x++; goto x10;
}
Nh++;
if (findZ == 1) goto move10;
//messagebox("MoveTrue 000");
return 0;
}
{
Kx = t1; Ky = t2; //Конечная точка пути
int i, j, x, y;
int findZ; // метка нашли путь или нет
Nh = 1; // Номер хода
i31:
i =0; i30: if (i<28)
{
j = 0; j30: if (j<28)
{
V[i][j] = Pole[i][j] * -1; // Переносим в временный массив основное поле
j++; goto j30;
}
i++; goto i30;
}
V[Xr][Yr] = 1; //позиция игрока на карте
move10:
findZ = 0;
x =0; x10: if (x<28)
{
y = 0; y10:
if (y<28)
{
if (V[x][y] == Nh)
{
i =0; i40: if (i<4)
{
if ((x + dx[i] < 0) || (x + dx[i] == 28)) { i++; goto i40; }
if ((y + dy[i] < 0) || (y + dy[i] == 28)) { i++; goto i40; }
if (V[x + dx[i]][y + dy[i]] == 0 )
{
findZ = 1;
V[x + dx[i]][y + dy[i]] = Nh + 1;
if ((x + dx[i]) == Kx)
{
if ((y + dy[i]) == Ky)
{
// messagebox("Find Move");
return 1;
}
}
}
i++; goto i40;
}
}
y++; goto y10;
}
x++; goto x10;
}
Nh++;
if (findZ == 1) goto move10;
//messagebox("MoveTrue 000");
return 0;
}