import java.util.Scanner;
import java.util.Random;
public class GuessHarder {
public static void main(String[] args) {
Random generator = new Random();
Scanner reader = new Scanner(System.in);
String higher = "higher", lower = "lower", correct = "correct", input;
int guess, random, random2 = 1, random3 = 100, randomLast, cntr = 1;
random = generator.nextInt(100) + 1;
randomLast = random;
System.out.println("Is your number: " + random);
System.out.println("Input if number should be higher, lower, or correct: ");
input = reader.next();
while (!input.equals("correct")){
if (input.equals("lower")){
randomLast = random2;
random2 = generator.nextInt(100) + 1;
if ((random2 < random) && (random2 < randomLast)){
random = random2;
cntr += 1;
System.out.println("Is your number: " + random);
System.out.println("Input if number should be higher, lower, or correct: ");
input = reader.next();
} else {
input = lower;
}
} else if (input.equals("higher")){
randomLast = random3;
random3 = generator.nextInt(100) + 1;
if ((random3 > random) && (random3 > randomLast)){
random = random3;
cntr += 1;
System.out.println("Is your number: " + random);
System.out.println("Input if number should be higher, lower, or correct: ");
input = reader.next();
} else {
input = higher;
}
}
}
System.out.println("Computer took " + cntr + " amount of tries to guess your number");
}
}
當我輸入更高或更低,它會給我的數字高於或低於前一個數字,但它不會記得以前的數字。 爲了清楚的例子是:猜測遊戲程序。用戶認爲號碼,電腦試圖猜出它
「是您的號碼:65
輸入,如果數量應該是更高,更低或更正:
更高
是您的號碼:96
輸入數字應該更高,更低或正確:
下
是您的號碼:59
輸入,如果數量應該是更高,更低或正確的:」
由過去的輸入範圍應該是65-96,而是它只是做0-96,所以我得到59這樣的數字,不應該在範圍內。 我應該改變什麼來設置它來記住範圍的最後兩個輸入而不是最後一個。
最簡單的解決方案是記住當前已知的上限和下限。所以你從'int upperBound = 100'和'lower bound = 0'開始。通過用戶輸入,您可以將相應的邊界設置爲最後給定的值。 – Tarlen 2014-09-21 20:38:30