Моя первая программа на Java. Не знаю, как правильно описать проблему, поэтому не могу найти ответ в интернете.
Суть вопроса такова:
В цикле поочередно присваивается значение хода игрока nominal1 и nominal2. Когда оба хода определяются слушателями на кнопках все функционирует адекватно. Когда же на nominal2, вместо слушателя устанавливается случайное число, то в цикле на nominal1 устанавливается все время ноль и выполняется только присваивание значения на nominal2.
while(true) {
gameField.inform = "Игрок 1 выберите цвет хода в нижней части окна";
gameField.setInform(gameField.inform);
do{
nominal1 = field.controlPanel(); // слушатели на кнопках передают число
}while (nominal1 == nominal2); // число хода игроков должны быть разными
field.boardUpdate(nominal1, 1);//игровое поле обновляется согласно новым данным
gameField.setField(field.board, field.size);// новое поле отображается на экран
if(gamer.win(1, field.size, field.board)) break;// проверка на конец игры
gameField.inform = "Игрок 2 выберите цвет хода в нижней части окна";
gameField.setInform(gameField.inform);
do{
nominal2 = random.nextInt(6) + 1;// игрок компьютер - выбирает случайное число
}while (nominal2 == nominal1);// число хода игроков должны быть разными
field.boardUpdate(nominal2, 2);//игровое поле обновляется согласно новым данным
gameField.setField(field.board, field.size);// новое поле отображается на экран
if(gamer.win(2, field.size, field.board)) break;// проверка на конец игры
}
И класс в котором определяются слушатели:
//Создание панели кнопок
public int controlPanel(){
for (int i = 0; i < 6; i++) {
controlBut[i] = new Cell();
controlBut[i].status = 0;// кнопка ничейная
controlBut[i].nominal = i + 1;// цифровое значение кнопки
controlBut[i].button.setBackground(Cell.setColor(i + 1));// установка цвета кнопки согласно значения
controlBut[i].button.setText(Integer.toString(i + 1));//надпись на конпке цифрового значения
// Слушатель нажатия на кнопку
controlBut[i].button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String butName = e.getActionCommand();
color = Integer.parseInt(butName);// присваивает значения нажатой кнопки
//System.out.println(butName);
}
});
}
return color;
}
Продвижение своими сайтами как стратегия роста и независимости