Хорошо, поэтому я довольно много делаю ускоренный курс по созданию java-приложения и у меня возникла проблема с выполнением действия.Программа представляет собой головоломку «15 головоломок», в которой вы скользите по одной фигуре за раз и пытаетесь привести все числа в порядок, поэтому я допускаю опцию режима «Авто», которая решает игровое поле для пользователя после нажатия.Так что мой код читает решение из текстового файла, который работает нормально, но ни один из квадратов (JButtons) не двигается, когда я нажимаю кнопку авто.Поэтому я не уверен, что я просто не понимаю действия или даже процесс полностью или нет.Вот мой код, я могу предоставить больше, если это необходимо.
if (e.getSource() == ctrButtons[0]) {
System.out.println("Auto Mode started\n");
Scanner s = null;
try {
s = new Scanner(new BufferedReader(new FileReader("move_list.txt")));
int count = 0;
while (s.hasNext()) {
//Cycle through to move in move_list
if (count != 18) {
s.next();
count+=1;
}
else {
int cur_move = Integer.parseInt(s.next());
count = 0;
/*Use cur_move to move blank space accordingly
*UP------------3
*LEFT----------2
*RIGHT---------1
*DOWN----------0
*/
int zero_index = -1;
for (int j=0; j<jbnButtons.length; j++) {
if (Integer.parseInt(jbnButtons[j].getText()) == 0) {
zero_index = j;
break;
}
}
Point zero = jbnButtons[zero_index].getLocation();
//Check if move is up
if (cur_move == 3) {
Point next = jbnButtons[zero_index-4].getLocation();
jbnButtons[zero_index].setLocation(next);
jbnButtons[zero_index-4].setLocation(zero);
}
//Check if move is left
else if (cur_move == 2) {
Point next = jbnButtons[zero_index-1].getLocation();
jbnButtons[zero_index].setLocation(next);
jbnButtons[zero_index-1].setLocation(zero);
}
//Check if move is right
else if (cur_move == 1) {
Point next = jbnButtons[zero_index+1].getLocation();
jbnButtons[zero_index].setLocation(next);
jbnButtons[zero_index+1].setLocation(zero);
}
//Check if move is down
else {
System.out.println("Current move = 0");
Point next = jbnButtons[zero_index+4].getLocation();
jbnButtons[zero_index].setLocation(next);
jbnButtons[zero_index+4].setLocation(zero);
}
}
}
}
Таким образом, мой код выполняется, когда я нажимаю кнопку «Авто», и я печатаю вывод на экран, чтобы увидеть, зацикливается ли он черезКод, который был, просто ни одна из кнопок не перемещается каждый раз по циклу.Есть идеи ??