У меня проблема с домашним заданием, которую я почти решил, но что-то упустил.Задача «Саймон говорит» - игра памяти, в которой «Саймон» выводит последовательность из 10 символов (R, G, B, Y), и пользователь должен повторить последовательность.Создайте цикл for, который сравнивает две строки, начиная с индекса 0. Для каждого соответствия добавьте одну точку в userScore.При несоответствии выйдите из цикла с помощью оператора break.Предположим, что simonPattern и userPattern всегда имеют одинаковую длину.
Пример: Следующие шаблоны дают userScore 4 балла:
simonPattern: RRGBRYYBGY, userPattern: RRGBBRYBGY
Я должен только посчитать количество совпаденийодин раз пример должен считать совпадающие буквы только один раз.Вот мой код.
String simonPattern;
String userPattern;
int userScore;
int i;
userScore = 0;
simonPattern = scnr.next();
userPattern = scnr.next();
/* Your solution goes here */
for (i=0; i < 10; ++i){
if (simonPattern.charAt(i)==userPattern.charAt(i))
{
userScore+=1;
}
}
System.out.println("userScore: " + userScore);
return;
}
}
Подсчитывает совпадения по позиции, но подсчитывает буквы дважды, поэтому я получаю это сообщение.
Тестирование: RRGBRYYBGY / RRGBBRYBGY Вывод отличается.Смотрите основные моменты ниже.
Ваш вывод userScore: 8 Ожидаемый результат userScore: 4
Есть предложения?