程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 游戲-一道關於C語言的題目求幫助!

游戲-一道關於C語言的題目求幫助!

編輯:編程解疑
一道關於C語言的題目求幫助!

1. 電腦隨機產生1000—9999之間的數字(包括1000、9999);
提示:用rand函數,該函數在stdlib.h庫中,並保證多次運行產生不同的隨機數
2. 玩家每輪有七次猜數的機會,如果七次都沒有猜到,則失敗,判為0分;
3. 玩家每輪可以請求幫助,提問關於產生數字的信息,扣分細則如下;
4. 游戲以百分制形式,初始分為100,最後得分最多為贏家。
 幫助內容及扣分細則:
. 判斷你所猜的數中各位數字對應位置正誤情況,以R表正確,E表錯誤。若隨機數是2537,而猜的數是1234,則輸出EERE,代表猜的數第3位正確,第1,2,4位錯誤。
——扣當前分數的1/10
. 判斷你所猜的數中正確數字是什麼。若隨機數是2537,而猜的數是1234,則輸出有兩個數字正確,它們是2,3。 ——扣當前分數的1/10

最佳回答:


我用java寫了一個希望樓主可以參考一下 而寫分數的計算可能有點偏差,樓主可以改一改分數的計算方法 互勉
public static void main(String[] args) {

    int random_number=(int)(Math.random()*(9999-1000+1)+1000);//定義一個隨機數
    String data=String.valueOf(random_number); //將隨機數轉化為 String類型 是一個字符串類型
    int number=7;//定義一個游戲的次數
    int score=100;//游戲的初始分數為100
    while(number>0){    //第一次游戲開始 會循環7次           
    System.out.println(random_number); //這次輸出隨機數 方便測試     
    System.out.println("請輸入數字");//提醒玩家輸入數字
    Scanner s = new Scanner(System.in);//java中的接收用戶輸入的類
    String str="";      //定義一個用於接收用戶輸入的字符串的str
    String position=""; //記錄下玩家正確位置的數字
    str=s.next();       //接收用戶輸入的數字
    while(!str.matches("^\\d{4}$")){  //這裡用正則表達式驗證用戶是否輸入正確的數據,不能讓玩家輸入除了數字以外的符號
        System.out.println("輸入格式有誤,請重新輸入 \n"); //如果玩家輸錯了 就提示
        str=s.next();           //重新接收玩家的輸入的數字
    }   
    String results="";          //定義一個結果用於反饋用戶輸入正確與否
    for(int i=0;i<str.length();i++){
        if(data.charAt(i)==str.charAt(i)){  //比較玩家輸入的數字與隨機數之間是否相等
            results+="R";           //相等則正確 輸出一個R
            int j=i+1;              //因為數字位置從0開始的 因此要加1
            position+=""+j;         //記錄下數字正確的位置
        }else{
            results+="E";           
        }       
    }
    if(results.contains("E")){  //如果結果中村E 則有錯誤 應在分數中扣10分
        System.out.println("猜測中存在錯誤,結果為"+results);
        score=score-10;
        System.out.println("正確的位置有"+position+","+"分數:"+score);                                      
    }else{
        System.out.println("恭喜猜對全部數字,游戲結束");
        System.out.println(score);//如果玩家都輸入正確就跳出循環,並顯示最後分數
        break;
    }       
    number--;
    System.out.println("你還有"+number+"次機會");
    if(number==0){
        System.out.println("沒有猜對,游戲結束!");
    }

}

}

gegeda123
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved