NO 發問時間: 電腦與網際網路程式設計 · 1 0 年前

java新手 while 幾A幾B遊戲 疑問求大大幫忙

老師出了一個題目是 利用while迴圈設計出個 猜數字的幾a幾b遊戲~

電腦隨機抽1~9, 4個數字 不可重複, 然後使用者從鍵盤輸入

之後進行比對 並且輸出幾a幾b 一直到使用者猜到4a為止

我看了很多網站上的範例 多半是+了很多我還沒學到的語法

然後也有do 這個程式可以很單純的用while+if 就做出來嗎?

我的作法是 先宣告4個整數a b c d

然後

while (a==b || a==c || a==d || b==c || b==d || c==d )

{

就繼續擲骰子

}

然後輸出 a b c d

這是我 電腦隨機抽 數字的方式

是不是太無腦了= =?

之後在一個while迴圈

然後使用者輸入 (我用scanner )

String keyin = scan.next():

6541 //例如

我利用

char ax = charAt(0)

char bx =charAt(1)

char cx =charAt(2)

char dx =charAt(3)

取出 6 5 4 1

然後利用 if比對

可是我發現 我利用char取出來的字根本不可以跟 隨機擲骰子的int比較

所以if都不會執行 所以 我的幾a 跟 幾b 都+不上去

我想我的問題有點蠢

希望大大可以幫我解惑

可以的話 因為我還沒有學很深 可以用簡單一點的語法嗎@@?

因為程式碼放在隨身碟 結果放在打工的地方 所以明天再補上

可是禮拜5老師要檢討 希望大大能先幫我解惑 感恩

3 個解答

評分
  • 6 年前

    到下面的網址看看吧

    ▶▶http://candy5660601.pixnet.net/blog

  • 1 0 年前

    無最佳解答

  • 1 0 年前

    讓電腦隨機抽取四個不同的數字你可以用陣列與Math.random這方法來做比如說:

    int[] numArray={0,1,2,3,4,5,6,7,8,9};//數字表

    int[] array = new int[4];//謎腳

    int index;//索引值

    int count = 0;//計算用

    //不重複的亂數取值

    while (count < 4){

    index =(int)(Math.random()*10);

    if (numArray[index] != -1){

    array[count++] = numArray[index];

    numArray[index] = -1 ;

    }

    }

    判斷的話若沒全對要出現幾A幾B的

    用兩組for迴圈來比對答案和玩家所輸入的數字

    aa[]:輸入者所輸入的數字,ans[]:答案

    若位置一樣數字一樣就給個A

    for (int i=0;i<4;i++){

    if (aa[i]==ans[i]){

    numA++;

    }

    }

    若位置不同但有這個數字則給個B

    for (int i=0;i<4;i++){

    for (int j=0;j<4;j++){

    if (aa[j]==ans[i] && i!=j){

    numB++;

    }

    }

    }

    程式碼有點長所以就貼上一小部份

    參考資料: 自己以前寫的
還有問題?馬上發問,尋求解答。