您好,登錄后才能下訂單哦!
C語言實現猜數字游戲的兩種方法分別是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
猜數字小游戲是我們大多數人學習C語言時都會了解到的一個有趣的C語言小游戲,下面我將詳細介紹該游戲的實現和編程邏輯。并用二分法速通該小游戲。玩小游戲的同時,也能對C語言控制語句有更好的認識。
游戲內容
顧名思義,該程序讓系統隨機生成一個0-100的整數,讓玩家來猜,玩家猜數字后,系統給予玩家回饋并且統計玩家猜的次數,直到玩家猜對為止。
游戲方法
1、生成游戲菜單 1. play(進入游戲) 0. exit (退出游戲)
2、使用循環語句,構建游戲框架,使玩家可以進行多次游戲,直到猜對為止。
3、設計游戲具體思路,使系統生成一個隨機數,讓玩家輸入一個數字,然后兩個數字對比,根據系統反饋信息,逐漸鎖定目標。
(1) void menu()
(2)效果顯示
int main()函數
使用 do--while() 循環,玩家進行多次猜數。用switch語句,控制玩游戲還是,退出游戲。
有時程序需要一個規定范圍內的隨機數。要將隨機數的范圍限制在 1 和某個最大值 max 之間的整數,可以使用以下公式:
number = rand() % max + 1;
例如,要生成 1-10 的隨機數來代表骰子的點數,則可以使用以下語句:
dice = rand() % 610+ 1;
游戲效果演示 :
如果使用二分法進行猜100以內的任何一個隨機數,最多七次就可以正確猜對該隨機數。
二分法又可以被稱為二分查找,它描述了在有序集合中搜索特定值的過程。廣義的二分查找是將問題的規模盡可能的縮小到原有的一半。
程序通過二分法不斷縮小猜測范圍, 直到猜中n
例如n = 93
程序第一次猜測50, 判斷數值太小
第二次猜測75,判斷數值太小
第三次猜測87,判斷數值太小
第四次次猜測93, ringht如果93不對,我們還能繼續根據反饋縮小范圍,最多七次就可以猜對答案
代碼附上:
#include <stdio.h> #include <stdlib.h> #include <time.h>//time系統時間頭文件 void menu()//創建游戲菜單 { printf("**************\n"); printf("****1.play****\n"); printf("****0.exit****\n"); printf("**************\n"); } void playgame() { int magic=rand()%100+1;//隨機一個1-100的整數 int guess; int counter=0;//計數器,初始為0 while(1) { do{ printf("請猜一個數字:");//提示用戶進行猜數字游戲,輸入一個整數 scanf("%d",&guess); counter++; if(guess>magic)//根據比較結果,提示用戶高了,低了,或是猜對了. printf("太大了!\n"); else if(guess<magic) printf("太小了!\n"); else printf("right!\n"); }while(guess!=magic); printf("您一共猜了%d次,你真是太棒了!\n",counter); } } int main() { int input=0; srand((unsigned int)time(0));//time(0)得到的是時間戳,對應頭文件#include <time.h> do{ menu(); scanf("%d",&input); switch(input) { case 1: playgame(); break; case 0: exit(0); break; default: printf("輸入錯誤!\n"); } }while(input); return 0; }
看完上述內容,你們掌握C語言實現猜數字游戲的兩種方法分別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。