close

說明:其實我的下界值、上界值可以直接裝在陣列裡,指是這樣不易解讀程式碼功能,所以我刻意用上下界值來表示

public class GuessNumber {
    static int cnt=0;
    public static int ComputerGuess(int lower,int upper) /*讓電腦猜一個數字,輸入上下界值,輸出範圍內的隨機數字*/
    {
        int gus=0;
        
        gus = fun.Rand(lower,upper);
        cnt++;
        if(cnt>1)
        System.out.println("*AI: The"+cnt+" times, I guess "+gus+"*");
        else
        System.out.println("*AI: The"+cnt+" time, I guess "+gus+"*");
        
        return gus;
    }

    public static int CheckAnswer()  /*檢察電腦猜的答案,和玩家想的答案是否一樣,給玩家輸入0、1、2來表示 電腦猜的比我小、達對了、電腦猜的比我大*/
    {
        int Ipt = 0;boolean fg = true;

        Ipt = fun.InputNum("System: Enter 1 is correct, 2 is bigger than my answer, 0 is smaller than my answer: ","");

        do
        {
            fg = true;
            if(Ipt==1){System.out.println("Me: Bingo!!You win~ You total guess "+cnt+" time(s)");}
            else if(Ipt==2){System.out.println("*Me: Guess smaller~*");}  /*這是劇情:告訴電腦要猜小一點喔*/
            else if(Ipt==0){System.out.println("*Me: Guess bigger~*");}  /*這是劇情:告訴電腦要猜大一點喔*/
            else{fg = false;System.out.println("System: Only Enter 1,2 or 0");} /*這是防呆裝置,我少做防文字輸入的部份,可以用try-catch製作*/
        }while(fg == false);

        return Ipt;
    }

    public static int[] Reguess(int checkans,int gus,int lower,int upper)  /*當電腦猜錯時,將上下界值範圍更改成電腦剛剛猜的數字,用矩陣可以多輸出*/
    {
        int[] range = null;
        range = new int[2];

        if(checkans==2){
            upper = gus-1;
        }
        else{lower=gus+1;}

        range[0]= lower;
        range[1]= upper;

        return range;
    }

    public static void main(String[] args) {
        int[] range = null;
        range = new int[2];
        int lower=0, upper=999,gus=0,checkans=0;
        boolean fg=true;

        System.out.println("System: Plz think a 3-digi number from 0 to 999"); /*本次遊戲設定範圍是0~999之間的數字*/
        do{
            fg=true;
            gus = ComputerGuess(lower,upper);
            checkans = CheckAnswer();
            if(checkans==1){fg=true;}
            else{
                fg=false;
                range = Reguess(checkans,gus,lower,upper);
                lower = range[0];
                upper = range[1];
            }
        }while(fg==false);
    }
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Kuihao 的頭像
    Kuihao

    溫暖午後的金針田__孕育有趣的創新

    Kuihao 發表在 痞客邦 留言(0) 人氣()