C語言實現(xiàn)猜數(shù)字小游戲的示例代碼
一、猜數(shù)字小游戲
使用循環(huán)語句、分支語句和函數(shù)實現(xiàn),游戲內(nèi)容為輸入0~100之間的數(shù)字,根據(jù)提示信息判斷自己猜的數(shù)字和隨機生成的數(shù)字哪個大哪個小,并根據(jù)提示信息輸入合適的數(shù)字以便更快的通過游戲。
1.演示效果

2.完整代碼
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void menu()//菜單
{
printf("************************\n");
printf("**歡迎來到猜數(shù)字小游戲**\n");
printf("**** 1.開始游戲 *****\n");
printf("**** 2.結(jié)束游戲 *****\n");
printf("************************\n");
}
void game()
{
int ret = rand() % 100 + 1;//生成0~100之間的隨機數(shù)
int guess = 0;
int i = 0;
while (guess != ret)//當(dāng)猜的數(shù)字和rand隨機生成的數(shù)字相同時,循環(huán)終止
{
printf("請輸入你要猜的數(shù)字(0~100):");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了!\n");
}
else if (guess < ret) {
printf("猜小了!\n");
}
else
{
printf("恭喜你,猜對了!\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));//生成不同的數(shù)用來初始化rand的初始值
int input = 0;
do {
menu();//菜單函數(shù)
printf("請選擇>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();//調(diào)用game()函數(shù)
break;
case 2:
printf("游戲結(jié)束!");
break;
default:
printf("選擇錯誤,請重新選擇!\n");
break;
}
} while (input != 2);
return 0;
}
二、代碼解析
1.游戲主體函數(shù)
void game()
{
int ret = rand() % 100 + 1;//生成0~100之間的隨機數(shù)
int guess = 0;
int i = 0;
while (guess != ret)//當(dāng)猜的數(shù)字和rand隨機生成的數(shù)字相同時,循環(huán)終止
{
printf("請輸入你要猜的數(shù)字(0~100):");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了!\n");
}
else if (guess < ret) {
printf("猜小了!\n");
}
else
{
printf("恭喜你,猜對了!\n");
break;
}
}
}
在C語言中,rand函數(shù)可以用來產(chǎn)生隨機數(shù),但并不是真正意義上的隨機數(shù),它是返回介于0~RAND_MAX之間的偽隨機整數(shù),但是在系統(tǒng)正常使用的情況下,產(chǎn)生的偽隨機整數(shù)是固定的。為了初始化的值不同,C語言提供了srand函數(shù)。
2.菜單函數(shù)
void menu()//菜單
{
printf("************************\n");
printf("**歡迎來到猜數(shù)字小游戲**\n");
printf("**** 1.開始游戲 *****\n");
printf("**** 2.結(jié)束游戲 *****\n");
printf("************************\n");
}
3.頭文件以及主函數(shù)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
srand((unsigned int)time(NULL));//生成不同的數(shù)用來初始化rand的初始值
int input = 0;
do {
menu();//菜單函數(shù)
printf("請選擇>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();//調(diào)用game()函數(shù)
break;
case 2:
printf("游戲結(jié)束!");
break;
default:
printf("選擇錯誤,請重新選擇!\n");
break;
}
} while (input != 2);
return 0;
}
srand((unsigned int)time(NULL))中調(diào)用srand函數(shù)需要頭文件<stdlib.h>,同時使用系統(tǒng)時間來初始化需要包含頭文件<time.h>,srand函數(shù)一般使用時間戳,采用系統(tǒng)時間來初始化,使用time函數(shù)來獲得系統(tǒng)時間,然后將time_t型數(shù)據(jù)轉(zhuǎn)化為(unsigned)型再傳給srand函數(shù)。這樣使用rand時,每次產(chǎn)生的隨機數(shù)都不相同。
以上就是C語言實現(xiàn)猜數(shù)字小游戲的示例代碼的詳細內(nèi)容,更多關(guān)于C語言猜數(shù)字游戲的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解析內(nèi)存對齊 Data alignment: Straighten up and fly right的詳解
對于所有直接操作內(nèi)存的程序員來說,數(shù)據(jù)對齊都是很重要的問題.數(shù)據(jù)對齊對你的程序的表現(xiàn)甚至能否正常運行都會產(chǎn)生影響2013-05-05
C++中四種對象生存期和作用域以及static的用法總結(jié)分析
以下是對C++中四種對象生存期和作用域以及static的用法進行了詳細的介紹,需要的朋友可以過來參考下2013-09-09

