搜尋此網誌

2013年6月16日 星期日

求 JAVA 程式碼註解

 import java.util.Scanner;  
 public class GuessNumber03 {  
      public static void main(String[] args) {  
           int a, b, c, d;// 四位數字a , b , c , d  
           a = (int) (Math.random() * (9)) + 1;// 1~9 , 首位數不為零.  
           b = (int) (Math.random() * (10));// 0~9  
           c = (int) (Math.random() * (10));// 0~9  
           d = (int) (Math.random() * (10));// 0~9  
           String str = String.valueOf(a) + String.valueOf(b) + String.valueOf(c)  
                     + String.valueOf(d);// 把電腦產生的隨機數字 , 組合成字串.  
           String ans = "";// 儲存使用者猜的答案  
           Scanner sc = new Scanner(System.in);// 從命令列讀取輸入的值.  
           boolean check = false;// 預設為沒有猜到答案.  
           System.out.println("請輸入四個數字,數字對且位置正確得A,位置錯誤得B");  
           int count = 0;// 紀錄猜的次數  
           while (++count <= 10) { // 限制猜的次數到10次沒答對自動結束  
                while (!check) {// 如果沒答對 , 則繼續猜  
                     ans = sc.next();// 讀取使用者輸入的數字.  
                     String[] ansTmp = ans.split("");// 把答案abcd,分開存入暫存的字串陣列.  
                     String[] inTmp = str.split("");// 把電腦的答案,分開存入暫存的字串陣列.  
                     int A = 0;  
                     int B = 0;  
                     for (int i = 0; i < ansTmp.length; i++) {// 逐各取出使用者的答案.  
                          for (int j = 0; j < ansTmp.length; j++) {// 逐各取出使用者的答案 ,  
                                                                                 // 拿來和電腦的答案比對.  
                               if (inTmp[j].equals(ansTmp[i]) && i == j)// 假如位置一樣且數字一樣  
                                                                                      // , a++  
                                    A++;  
                               else if (inTmp[j].equals(ansTmp[i]) && i != j)// 有數字但是位置不一樣.b++  
                                    B++;  
                          }  
                     }  
                     System.out.println("判斷結果" + A + "A" + B + "B");  
                     if (A == 4)// 假如4A,  
                          check = true;// 設定猜到答案  
                     if (A == 4 & B == 0)// 假如4A且B等於零 , 則印出,恭喜你,答對ㄌ  
                          System.out.println("恭喜你,答對ㄌ");  
                     break;  
                }  
           }  
           System.out.println("遊戲結束");  
      }  
 }  

沒有留言:

張貼留言