版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第基于C++實(shí)現(xiàn)擲雙骰游戲的示例代碼在最流行的博彩游戲中有一種名為擲雙骰(craps)的骰子游戲,這種游戲在世界各地的娛樂場所和大街小巷非常受歡迎。游戲的規(guī)則很簡單:
玩家擲兩個(gè)骰子。每個(gè)骰子有六面,分別含有1、2、3、4、5和6個(gè)點(diǎn)。擲完骰子后,計(jì)算兩個(gè)朝上的面的點(diǎn)數(shù)之和。
1、如果首次投擲的點(diǎn)數(shù)總和是7或者11,那么玩家贏;
2、如果首次投擲的點(diǎn)數(shù)只和事2、3或者12(稱為craps),那么玩家輸(即莊家贏);
3、如果首次投擲的點(diǎn)數(shù)只和事4、5、6、7、8、9或者10,那么這個(gè)和就成為玩家的目標(biāo)點(diǎn)數(shù)。要想贏的話,玩家必須連續(xù)的擲骰子直到點(diǎn)數(shù)與這個(gè)目標(biāo)點(diǎn)數(shù)相同為止,即得到了點(diǎn)數(shù)。但在得到點(diǎn)數(shù)前,如果擲到的是7,就會(huì)輸?shù)簟?/p>
#includeiostream
#includecstdlib
#includectime
usingnamespacestd;
unsignedintrollDice();
intmain(){
enumStatus{CONTINUE,WON,LOST};//這個(gè)就是自定義一個(gè)變量類型,就類似于int,double這種,即這里的說白了就是設(shè)置一個(gè)枚舉類變量類
//而這個(gè)類的關(guān)鍵字就是Status,以這個(gè)類型定義的變量只能取枚舉內(nèi)的幾個(gè)值,而這幾個(gè)值又對應(yīng)了數(shù)字。
srand(static_castunsignedint(time(0)));
unsignedintmyPoint=0;
StatusgameStatus=CONTINUE;
unsignedintsumOfDice=rollDice();
switch(sumOfDice){
case7:
case11:
gameStatus=WON;
break;
case2:
case3:
case12:
gameStatus=LOST;
break;
default:
gameStatus=CONTINUE;
myPoint=sumOfDice;
cout"Pointis"myPointendl;
break;
while(gameStatus==CONTINUE){
sumOfDice=rollDice();
if(sumOfDice==myPoint)
gameStatus=WON;
elseif(sumOfDice==7)
gameStatus=LOST;
if(gameStatus==WON)
cout"Playerwins"endl;
else
cout"Playerlose"endl;
unsignedintrollDice(){
unsignedintdie1=1+rand()%6;
unsignedintdie2=1+rand()%6;
unsignedintsum=die1+die2;
cout"Playerrolled:"die1"+"die2
"="sumendl;
returnsum;
這個(gè)是我拿來當(dāng)作筆記的,主要是為了記住這么個(gè)問題,當(dāng)我要想循環(huán)的實(shí)現(xiàn)博彩游戲并且統(tǒng)計(jì)輸贏的時(shí)候,會(huì)自然而然的想到在外部套一個(gè)for循環(huán)去執(zhí)行,但是這樣就會(huì)涉及到一個(gè)問題,即隨機(jī)數(shù)的生成,按照我最開始的理解是隨著循環(huán)的進(jìn)行,給srand提供的seed不同(也就是實(shí)參time(0))就會(huì)在每次循環(huán)都產(chǎn)生不同的隨機(jī)序列。即代碼如下
#includeiostream
#includecstdlib
#includectime
usingnamespacestd;
unsignedintrollDice();
intmain(){
intwinNum=0;
intloseNum=0;
enumStatus{CONTINUE,WON,LOST};//這個(gè)就是自定義一個(gè)變量類型,就類似于int,double這種,即這里的說白了就是設(shè)置一個(gè)枚舉類變量類
//而這個(gè)類的關(guān)鍵字就是Status,以這個(gè)類型定義的變量只能取枚舉內(nèi)的幾個(gè)值,而這幾個(gè)值又對應(yīng)了數(shù)字。
for(inti=0;i100000;++i){
srand(static_castunsignedint(time(0)));
unsignedintmyPoint=0;
StatusgameStatus=CONTINUE;
unsignedintsumOfDice=rollDice();
switch(sumOfDice){
case7:
case11:
gameStatus=WON;
break;
case2:
case3:
case12:
gameStatus=LOST;
break;
default:
gameStatus=CONTINUE;
myPoint=sumOfDice;
//cout"Pointis"myPointendl;
break;
while(gameStatus==CONTINUE){
sumOfDice=rollDice();
if(sumOfDice==myPoint)
gameStatus=WON;
elseif(sumOfDice==7)
gameStatus=LOST;
if(gameStatus==WON){
//cout"Playerwins"endl;
winNum++;
else{
//cout"Playerlose"endl;
loseNum++;
cout"WIN:"winNumendl;
cout"LOSE:"loseNumendl;
unsignedintrollDice(){
unsignedintdie1=1+rand()%6;
unsignedintdie2=1+rand()%6;
unsignedintsum=die1+die2;
//cout"Playerrolled:"die1"+"die2
//"="sumendl;
returnsum;
然而統(tǒng)計(jì)運(yùn)行結(jié)果是:
WIN:0
LOSE:100000
也就是說一旦第一次是輸了,那么就一直都是輸?shù)?,為什么?/p>
原因在于程序運(yùn)行太快,而time(0)提供的時(shí)間戳是以秒為單位提供的,而程序1s內(nèi)就執(zhí)行完了,自然就提供的seed是一樣的,那么rand的序列也是一樣,所以就一直是贏或者輸,那么我要是非要它不一直贏或者輸了?可以這樣,將循環(huán)次數(shù)設(shè)置得更大,讓程序1s內(nèi)運(yùn)行不完,不就可以提供不同的時(shí)間戳了?而事實(shí)是這樣也是可行的,如圖,是我設(shè)置1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026貴州中醫(yī)藥大學(xué)博士后招聘備考題庫及1套完整答案詳解
- 2026貴州醫(yī)科大學(xué)附屬白云醫(yī)院養(yǎng)老護(hù)理員招聘8人備考題庫及答案詳解(奪冠系列)
- 寶寶皮膚護(hù)理與預(yù)防濕疹
- 2025 小學(xué)一年級道德與法治上冊獨(dú)自在家不害怕課件
- 2026年工地安全管理標(biāo)準(zhǔn)化建設(shè)
- 遠(yuǎn)程會(huì)診護(hù)理的經(jīng)濟(jì)效益
- 職業(yè)醫(yī)學(xué)與工程學(xué)的聯(lián)合防護(hù)模式
- 臨潭事業(yè)編招聘2022年考試模擬試題及答案解析42
- 職業(yè)健康素養(yǎng)對醫(yī)療員工組織承諾的預(yù)測作用
- 職業(yè)健康檔案電子化傳輸過程中的加密技術(shù)應(yīng)用
- 骨密度檢測的臨床意義
- 鉆探原始班報(bào)表試行版
- 腸菌移植治療炎癥性腸病專家共識(shí)(2025)解讀
- T/CPPC 1032-2021建筑生產(chǎn)資源分供商評價(jià)規(guī)范
- 機(jī)耕合同協(xié)議書范本簡單
- 送車免責(zé)合同協(xié)議書模板
- 外科學(xué)重癥監(jiān)測治療與復(fù)蘇
- 瓊脂糖-纖維素復(fù)合分離介質(zhì)
- 早產(chǎn)兒家庭參與式護(hù)理
- 2025年招商引資項(xiàng)目可行性研究報(bào)告范文
- 常見的鹽(第1課時(shí))-九年級化學(xué)人教版(2024)下冊
評論
0/150
提交評論