Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Некорректное получение данных


Автор: Emiliya 6.11.2017, 17:47
При генерации лабиринта (стенки определяются через  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;
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)