3.猜数字游戏
猜數(shù)字游戲:隨機生成1~100的數(shù),讓用戶去猜。當猜的數(shù)比隨機數(shù)大時,提示“猜大了”;當才的數(shù)比隨機數(shù)小時,提示“猜小了”;猜的數(shù)與隨機數(shù)相同時,提示“猜對了”。
?
1.整體框架
首先,在開始時要有一個菜單,菜單欄中打印出選項:1.paly、0.exit。
然后,玩家輸入選項,當輸入1時,開始游戲;輸入0時,結(jié)束游戲;出去其他數(shù)時,重新輸入。并且將游戲設置成可以循環(huán)玩的,玩完一次后,可以接著玩。
#include<stdio.h>void menu() {printf("******************\n");printf("***** 1.paly *****\n");printf("***** 0.exit *****\n");printf("******************\n"); }int main() {int input = 0;srand((unsigned int)time(NULL));//用srand修飾randdo{menu();printf("請選擇(1/0):>");scanf("%d", &input);switch (input){case 0:printf("退出游戲\n");break;case 1:printf("開始游戲,請猜數(shù)字(1~100)\n");game();//游戲break;default:printf("輸入錯誤,請重新輸入\n");}} while (input);return 0; }2.游戲部分
當整體框架寫完成后,運行測試一下。測試成功,開始寫游戲部分game()代碼。
游戲部分的設計主要為:系統(tǒng)生成一個數(shù)字——玩家輸入——判斷——猜錯了——提示——重新輸入——判斷——猜對了(或是次數(shù)用盡了)
因為整個過程需要不斷的輸入、判斷,所以需要用到while循環(huán)。(注意:生成隨機數(shù)部分不能放進while循環(huán)中,否則每循環(huán)一次,都將生成新的隨機數(shù))
void game() {int num = rand() % 100 + 1;//生成1~100的隨機數(shù)int guess = 0;int count = 6;while (count--)//6次機會;后置++,先使用再++{printf("請輸入:>\n");scanf("%d", &guess);if (guess > num){printf("猜大了\n");}else if (guess < num){printf("猜小了\n");}else{printf("猜對了\n");Sleep(500);//停止運行500毫秒system("cls");//清空屏幕.......break;}}printf("對不起,機會已用完\n");Sleep(500);//停止運行500毫秒system("cls");//清空屏幕 }(1)當使用rand()函數(shù)時創(chuàng)建隨機值時,會發(fā)現(xiàn)每次的隨機值都一樣,利用MSDN,查詢可知:
這時需要在主函數(shù)用srand修飾一下rand的函數(shù),利用時間time,來生成一個隨機數(shù)。
srand((unsigned int)time(NULL)),這里(unsigned int)將time的返回值強制類型轉(zhuǎn)換,轉(zhuǎn)成換無符號整型,然后給time傳一個空指針(NULL)即可。使用rand需要包含頭文件<stdlib.h>,使用time需要包含<time.h>。
(2)int num = rand() % 100 + 1,當隨機數(shù)%100時,其范圍是0~99,所以需要再+1。
(3)while (count--),這里指定有count次機會,后置--表示為先使用,再--,當count=0時結(jié)束循環(huán)。
(4)sleep(a)為停止運行a毫秒,system("cls")為清空屏幕,需包含頭文件<windows.h>。
整體代碼如下:
//猜數(shù)字游戲#include<stdio.h> #include<stdlib.h> #include<time.h> #include <windows.h>void menu() {printf("******************\n");printf("***** 1.paly *****\n");printf("***** 0.exit *****\n");printf("******************\n"); }void game() {int num = rand() % 100 + 1;//生成1~100的隨機數(shù)int guess = 0;int count = 6;while (count--)//6次機會;后置++,先使用再++{printf("請輸入:>\n");scanf("%d", &guess);if (guess > num){printf("猜大了\n");}else if (guess < num){printf("猜小了\n");}else{printf("猜對了\n");Sleep(500);//停止運行500毫秒system("cls");//清空屏幕.......break;}}printf("對不起,機會已用完\n");Sleep(500);//停止運行500毫秒system("cls");//清空屏幕 }int main() {int input = 0;srand((unsigned int)time(NULL));//用srand修飾randdo{menu();printf("請選擇(1/0):>");scanf("%d", &input);switch (input){case 0:printf("退出游戲\n");break;case 1:printf("開始游戲,請猜數(shù)字(1~100)\n");game();//游戲break;default:printf("輸入錯誤,請重新輸入\n");}} while (input);return 0; }如果想將我們制作的游戲發(fā)給同學試玩,將VS中debug改成release,測試并保存,到項目保存的地方找到release文件。?
X86為32位,推薦保存X64,將X64發(fā)給同學可正常運行。
?點擊release——將其中的exe文件發(fā)給同學即可。
總結(jié)
- 上一篇: unll是什么意思_javascript
- 下一篇: failed creating java