移動網(wǎng)站開發(fā)教程下載重慶seo報價
目錄
Everyday English
前言
實戰(zhàn)1——猜數(shù)游戲
綜合指標(biāo)
游玩方法
代碼實現(xiàn)
最終代碼
試玩時間?
必勝策略
具體演示
結(jié)尾
Everyday English
All good things come to those who wait.
時間不負(fù)有心人
前言
今天是2024年的第一天,新一年,新氣象,新起點,在這也祝愿大家:
工作順利,身體健康。好好學(xué)習(xí),天天向上!
實戰(zhàn)1——猜數(shù)游戲
綜合指標(biāo)
學(xué)了10天左右,是不是很想做一款小游戲,那么今天它來了!
猜數(shù)游戲是初學(xué)者很好的一個實戰(zhàn)項目,下面是它的全面分析:
編程難度:★★
有趣程度:★★
游戲難度:★★★
編程時間:推薦5min~12min
游玩方法
首先電腦會在1-100中隨機生成一個整數(shù),玩家需在1-100中猜一個數(shù)字,分三種情況討論。
1.玩家猜的數(shù)字>目標(biāo)數(shù)字,電腦說:“大了”
2.玩家猜的數(shù)字<目標(biāo)數(shù)字,電腦說:“小了”
3.玩家猜的數(shù)字=目標(biāo)數(shù)字,電腦說:“恭喜您,猜對啦!”
這時你可能會問:“這么簡單的游戲難度為什么是3顆星呢?”
真相只有一個,那就是:
你只有7次猜的機會!
這下你可能就慌了,啊,100個數(shù)呢!就7次哪夠啊!!!
到底夠不夠呢,我們稍后揭曉。
代碼實現(xiàn)
原神,啟動!Bi----------------
搞錯了,重來!
代碼,啟動!這下對了。
首先,電腦需要隨機生成一個1-100以內(nèi)的整數(shù),我們用key來保存這個隨機整數(shù):
srand(time(NULL));
int key=rand()%100+1;
大家可能還不知道隨機數(shù)是怎么用的,我來教大家一下。程序中的第一行是播隨機數(shù)種子,也稱“播種”,每次生成隨機數(shù)時帶上他就好了。
第二行中的rand就是一個隨機函數(shù),我們想一想一個數(shù)對100取余,結(jié)果只可能是:0,1,2......,99。
可我們想要的是1-100,所以我們可以讓每項都加一即可。
接著我們來分析一下如何實現(xiàn)玩家能猜7次數(shù),這里需要用到我們的for循環(huán)語句:
for(int i=1;i<=7;i++)
{//當(dāng)猜的數(shù)小于key時//當(dāng)猜的數(shù)大于key時//當(dāng)猜的數(shù)等于key時
}
每循環(huán)一次,玩家首先要去猜一個數(shù),我們說的三種情況都可以用簡單的if語句實現(xiàn):?
for(int i=1;i<=7;i++)
{int x;cin>>x;//當(dāng)猜的數(shù)小于key時if(x<key){cout<<"小了"<<endl;} //當(dāng)猜的數(shù)大于key時if(x>key){cout<<"大了"<<endl;} //當(dāng)猜的數(shù)等于key時if(x==key){cout<<"恭喜您,猜對啦!"<<endl;}
}
?最后加上7次內(nèi)沒猜對的提示語,并把代碼拼在一起,得到了以下程序:
#include<bits/stdc++.h>
using namespace std;
int main()
{srand(time(NULL));int key=rand()%100+1;for(int i=1;i<=7;i++){int x;cin>>x;//當(dāng)猜的數(shù)小于key時if(x<key){cout<<"小了"<<endl;} //當(dāng)猜的數(shù)大于key時if(x>key){cout<<"大了"<<endl;} //當(dāng)猜的數(shù)等于key時if(x==key){cout<<"恭喜您,猜對啦!"<<endl;return 0; } }cout<<"7次機會已用完,很遺憾,未猜對!"<<endl;
}
最終代碼
當(dāng)然我們還可以優(yōu)化一下提示語,便得到了最終代碼:
#include<bits/stdc++.h>
using namespace std;
int main()
{cout<<"猜數(shù)游戲(1-100)"<<endl;srand(time(NULL));int key=rand()%100+1;for(int i=1;i<=7;i++){int x;cout<<"請輸入一個數(shù)字:";cin>>x;//當(dāng)猜的數(shù)小于key時if(x<key){cout<<"小了"<<endl;} //當(dāng)猜的數(shù)大于key時if(x>key){cout<<"大了"<<endl;} //當(dāng)猜的數(shù)等于key時if(x==key){cout<<"恭喜您,猜對啦!"<<endl;return 0; } }cout<<"7次機會已用完,很遺憾,未猜對!"<<endl;cout<<"正確數(shù)字是:"<<key<<endl;return 0;
}
試玩時間?
做完程序大家一定要自己玩一玩看看有沒有什么錯誤。
我的運氣有億點點“好”,大家趕緊去試試吧!
必勝策略
悄悄告訴你,這個游戲也有必勝策略哦!
這個策略有個好聽的名字叫——二分法
顧名思義,每次猜區(qū)間的一半,那我們先計算一下,利用二分法第一次該猜幾呢?
對了是50!如果計算機說小了又該猜幾呢?
對了是75!(100-50)÷2+50=75!
注意:除不盡的話四舍五入!
具體演示
?
所以,如果你想有趣一點,加點運氣成分的話,
你可以把猜的次數(shù)調(diào)成6次,或者更少!
結(jié)尾
想不到吧,一個小小的猜數(shù)游戲都被我們玩得那么細(xì),如果你不介意的話,能否給我點一個小小的贊或者評論支持一下呢?
最后認(rèn)識一下,我是愛編程的小芒果,一個愛編程的小學(xué)生,我們2024年見!