猜數字遊戲(加了點註釋,方便本身理解)

原做者博客地址:https://my.oschina.net/u/3823949/blog/1795895java

import javax.swing.Icon;

//JOptionPane 顯示包含文本、按鈕等的標準對話框,它是用來編寫圖形用戶界面的一個類
import javax.swing.JOptionPane;

public class CNumber {
    public static void main(String[] args) {
        Icon icon = null;
        boolean bl = false;
        int put = 0;
        int c = (int) (((Math.random())*100)+1);  //獲取一個1-100的隨機數
        System.out.println("你獲取的隨機數是:"+c);  //打印你的隨機數字

        //方法原型:JOptionPane.showInputDialog(null, text, title,value)
        //JOptionPane.showInputDialog方法返回用戶輸入的字符串。
        //顯示在輸入對話框中的標題、消息及圖標等由傳遞給該方法的參數肯定
        // 參數text是要在輸入對話框中顯示的字符串
        // 參數title是要在輸入對話框的標題欄中顯示的字符串
        // 參數value爲要顯示的圖標,值爲JOptionPane類常量。
        // 第1個參數的值爲null表示對話框顯示在屏幕中央。
        //具體可參考 https://blog.csdn.net/changjiale110/article/details/78867779
        String str1  = (String) JOptionPane.showInputDialog(null,"請輸入你的猜想數字(1-100):\n","猜數字遊戲",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入"); //第一次輸入你的猜想數字
        if(str1==null){
            JOptionPane.showMessageDialog(null, "你已經取消了本次遊戲"); //若是你點取消那麼本次遊戲結束
        }else{
            bl = num(str1);  //判斷是輸入的是否是數字或者是整數
            if(true==bl){      //若是是數字的話進入與隨機數比較的程序
                System.out.println("你輸入的數字是:"+str1);  //打印你輸入的數字

                //調用Integer類中的靜態方法valueOf(String)
                //valueOf方法將傳入的參數String轉化爲int型值
                //返回該值,若是String並非純粹由數字構成即沒法轉化爲數字,則拋出NumberFormatException..
                put = Integer.valueOf(str1);
                for(int i = 4;i > 0;i--){    //i是你能夠猜想的次數
                    if(put==c){
                        JOptionPane.showMessageDialog(null, "恭喜你猜對了,正確答案是:"+c+"。");  //若是你猜對了就直接結束循環
                        break;
                    }else if(put>c){  //若是輸大了就讓你再次重新輸入
                        str1  = (String) JOptionPane.showInputDialog(null,"你的輸入過大。你還有"+i+"次機會,請從新輸入:\n","猜數字遊戲",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入");
                        if(str1==null){
                            JOptionPane.showMessageDialog(null, "你已經取消了本次輸入");
                            break;
                        }else{
                            bl =num(str1);
                            if(true==bl){
                                put = Integer.valueOf(str1);
                            }else{
                                JOptionPane.showMessageDialog(null, "你的輸入不正確,請從新輸入");
                            }
                        }
                    }else if(put<c){  //若是你輸小了也讓你重新輸入
                        str1  = (String) JOptionPane.showInputDialog(null,"你的輸入太小。你還有"+i+"次機會,請從新輸入:\n","猜數字遊戲",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入");
                        if(str1==null){
                            JOptionPane.showMessageDialog(null, "你已經取消了本次輸入");
                            break;
                        }else{
                            bl =num(str1);
                            if(true==bl){
                                put = Integer.valueOf(str1);
                            }else{
                                JOptionPane.showMessageDialog(null, "你的輸入不正確,請從新輸入");
                            }
                        }
                    }
                }
            }else if(bl==false){   //這個是你第一次若是填寫的不是數字的話也會結束本次遊戲
                JOptionPane.showMessageDialog(null, "請您下次按要求填寫。本次遊戲結束");

            }
            if(true==bl && c!=put){  //若是你i次都沒猜對,那麼就直接告訴你這個數十什麼
                JOptionPane.showMessageDialog(null, "很遺憾你沒能猜對,這個數字是:"+c+".");
            }
        }
    }

    public  static boolean num(String value){  //一個靜態方法,判斷你輸入的是否是數字
        try {
            //Integer.parseInt(String)就是將String字符類型數據轉換爲Integer整型數據。
            //Integer.parseInt(String)遇到一些不能被轉換爲整型的字符時,會拋出異常。
            Integer.parseInt(value);
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}
相關文章
相關標籤/搜索