我試圖做一個簡單的猜測遊戲,其中計算機應該猜測我選擇的0和100之間的數字。嘗試運行它,如果數字太低,請按1,然後按2如果數字太高。猜測遊戲 - 如何記住猜測範圍
1.如果我選擇50和計算機猜測41,我按1,因爲數量太少41和100之間
2.然後電腦的猜測,說70,我按2,因爲它太高
3.now問題是,下一個計算機應該70和41之間被猜測(先前猜測的數),但它71與0之間的猜測,因此它跳上跳下極端
4之間的所有時間。我不知道如何讓它記住範圍即。此前猜測的數
System.out.print("Enter a number: ");
Scanner input = new Scanner(System.in);
int num=input.nextInt();
int ans=0;
Random rand = new Random();
int guess=rand.nextInt(100);
while(guess!=num) {
System.out.print("Is it " + guess + " ? ");
ans=input.nextInt();
if (ans==1) {
guess=rand.nextInt(100-guess+1)+guess;
}
else if (ans==2) {
guess=rand.nextInt(100-guess+1)+0;
}
}
System.out.print("Computer guessed: " + guess);
輸出看起來像這樣:
輸入一個數字:50
它是55? 2
是26嗎? 1
是35嗎? 1
是44嗎? 1
它是54嗎? 2
是31嗎? 1
是39嗎? 1
是87嗎? 2
是0嗎? 1
是11嗎? 1
是97嗎? 2
非常感謝。我已經使用了這個解決方案,因爲它更簡單並且也是完整的。 – djoomla 2014-10-18 13:01:13
@djoomla - 不用客氣,但現在我發現,這是不正確的alghoritm,因爲rand.nextInt中的最大值是「exlusive」,現在它被糾正了。 – libik 2014-10-18 16:49:34