Ниже приведен код, который я сейчас использую для воссоздания игры-угадывания Java под названием Fermi в Eclipse Window Builder. В основном у меня будет три случайных, но различных целых числа в диапазоне от 0 до 9, а затем пользователь введет три целых числа, чтобы угадать ответ. Если число было угадано правильно, и оно в правильном месте, это Ферми. Если это правильный номер, но он не в том месте, это пико. И если предполагаемое число не совпадает ни с одним из чисел, это нано.
public void generateNum() {
num1 = (int) ((Math.random() * ((max - min) + 1)) + min);
//System.out.println(num1);
num2 = (int) ((Math.random() * ((max - min) + 1)) + min);
while (num1 == num2) {
num2 = (int) ((Math.random() * ((max - min) + 1)) + min);
}
//System.out.println(num2);
num3 = (int) ((Math.random() * ((max - min) + 1)) + min);
while ((num3 == num1) || (num3 == num2)) {
num3 = (int) ((Math.random() * ((max - min) + 1)) + min);
}
//System.out.println(num3);
}
public String giveHints(int guess1, int guess2, int guess3) {
// hint 1
if (guess1 == num1) {
hint1 = " fermi";
}
if ((guess1 == num2) && (guess2 != num2)) {
hint1 = " pico";
}
else if ((guess1 == num3) && (guess3 != num3)) {
hint1 = " pico";
}
else if ((guess3 == num3) && (guess1 == num3)) {
hint1 = " nano";
}
if ((guess1 != num1) && (guess1 != num2) && (guess1 != num3)) {
hint1 = " nano";
}
else if ((guess1 == num2) && (guess2 == num2)) {
hint1 = " nano";
}
// hint 2
if (guess2 == num2) {
hint2 = " fermi";
}
if ((guess2 == num1) && (guess1 != num1)) {
hint2 = " pico";
}
else if ((guess2 == num3) && (guess3 != num3)){
hint2 = " pico";
}
else if ((guess2 == num1) && (guess1 == num1)) {
hint2 = " nano";
}
else if ((guess3 == num3) && (guess2 == num3)) {
hint2 = " nano";
}
if ((guess2 != num1) && (guess2 != num2) && (guess2 != num3)) {
hint2 = " nano";
}
// hint 3
if (guess3 == num3) {
hint3 = " fermi";
}
if ((guess3 == num1) && (guess1 != num1)) {
hint3 = " pico";
}
else if ((guess3 == num1) && (guess1 == num1)) {
hint3 = " nano";
}
else if ((guess3 == num2) && (guess2 == num2)) {
hint3 = " nano";
}
else if ((guess3 == num2) && (guess2 != num2)) {
hint3 = " pico";
}
if ((guess3 != num1) && (guess3 != num2) && (guess3 != num3)) {
hint3 = " nano";
}
return "\n" + guess1 + " " + guess2 + " " + guess3 + " -" + hint1 + hint2 + hint3;
}
Однако фермис, пико и нано, составляющие подсказку, НЕ должны быть в том же порядке, что и их соответствующие вошли догадки. Например, если пользователь угадывает 1,2,3 и получает подсказку Fermi, Nano, Nano, это не означает, что 1 находится в правильном положении (Fermi). Это означает только то, что одно из введенных чисел (1, 2 или 3) находится в правильном положении.
Я не совсем уверен, как я смогу выполнить sh эту работу над тем, что У меня есть сейчас, и любые советы или простые предложения будут оценены.