Я не могу понять, почему иногда мой код для проверки белых в вдохновителе рассчитывает значение дважды. Я имею в виду, что он подсчитывает значение как в белом, так и в черном. Однако иногда это работает отлично, ошибка не реализуется при каждом нажатии, и я не могу найти причину.Mastermind Java Подсчет «белых»
Вот мой метод сравнения(), который сравнивает мои два массива guess [] для значения, которое игрок вводит и решение [] для случайных значений.
public void comparaison(){
white = 0;
black = 0;
test = new boolean[columns];
for(int x = 0 ; x < test.length ; x++){
test[x] = false;
}
for (int i =0 ; i<columns; i++){
System.out.println(solution[i]);
if (solution[i] == guess[i]){
test[i] = true;
black++;
}else{
for (int j=0;j < columns;j++){
if(!test[j] && j!=i && guess[j] == solution[i]){
white++;
test[j]=true;
break;
}
}
}
}
System.out.println("black"+black);
System.out.println("white"+white);
}
В 2 массивы объявляются и инициализируются прежде, и они заполнены, когда игрок нажмите на кнопку, представляющую цвет (см image). Массив test [] также объявляется ранее.
вам не нужно устанавливать каждый элемент массива булевой ложь. При инициализации булевого массива уже установлено значение false. – Sneh
Не могу увидеть изображения – nickmesi