Доброго времени суток, не могу найти ошибку в программе. Программа в каждом случае выдаёт 0.
Суть задания: программа получает аргументы командной строки n и trials и моделирует случайные блуждания без самопересечений на сетке NxN. Результат вычислений - процент блужданий закончившихся тупиком.public class selfAvoidingWalk{
public static void main(String[] args){
int n = Integer.parseInt(args[0]);
int trials = Integer.parseInt(args[1]);
int deadEnds = 0;
for (int t = 0; t < trials; t++){
boolean[][] a = new boolean[n][n];
int x = n/2;
int y = n/2;
while ((x > 0) && (x < (n-1)) && (y > 0) && (y > (n-1))){
a[x][y] = true;
if (a[x-1][y] && a[x+1][y] && a[x][y-1] && a[x][y+1]){
deadEnds++;
break;
}
double r = Math.random();
if (r < 0.25){
if (!a[x+1][y]) x++;
}
else if (r < 0.50){
if (!a[x-1][y]) x--;
}
else if (r < 0.75){
if (!a[x][y+1]) y++;
}
else if (r < 1.00){
if (!a[x][y-1]) y--;
}
}
}
//System.out.println(deadEnds);
System.out.println(100*deadEnds/trials + "% dead ends");
}
}