主菜單函數(shù):
目前創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、鳳泉網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。#include#include#includevoid menu() //主菜單顯示
{
printf("********************\n");
printf("****** 1.play ****\n");
printf("****** 0.exit ****\n");
printf("********************\n");
}
游戲規(guī)則函數(shù):
程序產(chǎn)生隨機(jī)數(shù),玩家輸入數(shù)據(jù)后判斷大小,一直猜到正確為止。
void game()
{
int random_num = rand() % 100 + 1;
int input;
while(1)
{
printf("猜猜看~\n");
scanf("%d",&input);
if(input< random_num)
{
printf("小了一點(diǎn),往大了猜\n");
}
else if(input >random_num)
{
printf("接近了,有點(diǎn)大\n");
}
else
{
printf("聰明,猜對(duì)了!!!\n");
break;
}
}
}
主函數(shù):
int main()
{
int input;
srand((unsigned int)time(NULL));
do
{
menu();
printf("請(qǐng)選擇:>");
scanf("%d",&input);
if(input == 1)
{
game();
}
else if(input == 0)
{
break;
}
else printf("沒有此選項(xiàng),請(qǐng)重新輸入!\n");
}while(input);
return 0;
}
1.首先介紹一下rand()隨機(jī)函數(shù):
rand()函數(shù)會(huì)返回一個(gè)0~32767之間的隨機(jī)數(shù),頭文件為#include
若直接使用rand(),執(zhí)行程序發(fā)現(xiàn),重新執(zhí)行程序和前一次的結(jié)果相同
即
#include#includeint main()
{
int a = rand();
int b = rand();
int c = rand();
printf("%d\n%d\n%d\n",a,b,c);
return 0;
}
不管執(zhí)行幾次程序,得到的都是一個(gè)結(jié)果:
所以我們要使用srand函數(shù),設(shè)置一個(gè)隨機(jī)數(shù)種子。
srand函數(shù)的參數(shù)為unsigned int類型,無返回類型。
起初,我們將種子設(shè)置為整形常量 --(srand(1)),此時(shí)隨機(jī)數(shù)不會(huì)變。這是因?yàn)橄嗤姆N子會(huì)產(chǎn)生相同的隨機(jī)數(shù)。
那如何產(chǎn)生足夠隨機(jī)的隨機(jī)數(shù)呢?游戲中引用了時(shí)間戳的定義。
【時(shí)間戳是指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù),其每時(shí)每刻都在發(fā)生變化?!?/p>
所以將時(shí)間戳作為種子可以確保隨機(jī)數(shù)的隨機(jī)性。
time(NULL)用來獲取系統(tǒng)的時(shí)間戳,其頭文件為#include
這就產(chǎn)生了如下代碼:
srand((unsigned int)time(NULL));
2.采用do-while循環(huán)語句:無論怎樣,先執(zhí)行一次循環(huán)體,即先顯示主菜單,直到玩家按下'0'退出游戲。
*注意事項(xiàng):如果每次生成隨機(jī)數(shù)都調(diào)用一次srand函數(shù),并且?guī)状握{(diào)用的時(shí)間間隔較短時(shí)產(chǎn)生的隨機(jī)數(shù)大小幾乎相同,甚至相等,使隨機(jī)數(shù)不夠隨機(jī),所以整個(gè)程序只需調(diào)用一次srand函數(shù)即可。這就是為什么srand函數(shù)被main函數(shù)調(diào)用,而不是放在game函數(shù)中。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站欄目:筆記-猜數(shù)字游戲的實(shí)現(xiàn)和隨機(jī)數(shù)的使用-創(chuàng)新互聯(lián)
URL分享:http://www.rwnh.cn/article0/csdpoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、定制網(wǎng)站、外貿(mào)建站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容