При генерации лабиринта (стенки определяются через 0 и 1) значения стенок горизонтальных и вертикальных записывается в переменных, запись горизонтальных стенок записывается правильно, а вертикальных нет (так где есть стена, значение 0, а должна быть 1), запись в переменные проводится одинаково Код | ArrayList <Integer> k1 = new <Integer> ArrayList ();//вертикальные стенки ArrayList <Integer> k2 = new <Integer> ArrayList ();//горизонтальные стенки for (int cr_l = 0; cr_l < e; cr_l++) { for (int i = 0; i < c; i++){ if(cr_l == 0)a1[i] = 0; d.clearRect(13 * i + 3, 13 * cr_l + 3, 10, 10); k[i] = 0; if(b1[i] == 1)b1[i] = a1[i] = 0; if(a1[i] == 0)a1[i] = q++; } for (int i = 0; i < c; i++) { k[i] = Integer.parseInt((Integer.toString((int) Math.floor(2 * Math.random())))); b1[i] = Integer.parseInt((Integer.toString((int) Math.floor(2 * Math.random())))); if ((0 == k[i] || cr_l == e - 1) && i != c - 1 && a1[i + 1] != a1[i]) { int l = a1[i + 1]; for (int j = 0; j < c; j++) if(a1[j] == l)a1[j] = a1[i]; d.clearRect(13 * i + 3, 13 * cr_l + 3, 15, 10); } if((cr_l != e - 1) && (0 == b1[i]))d.clearRect(13 * i + 3, 13 * cr_l + 3, 10, 15); k1.add(ds+i, k[i]); } ds = ds + 25; for (int i = 0; i < c; i++) { int p = 0; int l = 0; for (int j = 0; j < c; j++) { if(a1[i] == a1[j] && 0 == b1[j]){p++;}else{l++;} if(p == 0) { b1[i] = 0; d.clearRect(13 * i + 3, 13 * cr_l + 3, 10, 15); } } k2.add(fg+i, b1[i]); } fg = fg + 25; }
|
|