亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

直到某輪的和數等于點數則取勝,若在此前出現和數為7則為負。

直到某輪的和數等于點數則取勝,若在此前出現和數為7則為負。

PHP
滄海一幻覺 2023-03-05 19:15:25
題目:游戲規則:每個骰子有6個面,點數分別為1,2,3,4,5,6。游戲者在程序開始時輸入一個無符號整數,作為產生隨機數的種子。 每次投兩次骰子,第一輪如果和數為7或11則為勝,游戲結束;和數為2,3,或12則為負,游戲結束;和數為其他值則將此值作為自己的點數,繼續第二輪,第三輪··· #include<iostream> #include<cstdlib> //這個是不是rolldice函數的文件 using namespace std; int rolldice(void); int main() { int gamestatus,sum,mypoint; unsigned seed; cout<<"Please enter an unsigned integer:"; cin>>seed; srand(seed); sum=rolldice(); switch(sum) { case 7: case 11: gamestatus=1; break; case 2: case 3: case 12: gamestatus=2; break; default: gamestatus=0; mypoint=sum; cout<<"point is "<<mypoint<<endl; break; } while(gamestatus==0) { sum=rolldice(); if(sum==mypoint) gamestatus=1; else if(sum==7) gamestatus=2; } if(gamestatus==1) cout<<"player is win\n"; else cout<<"player is loses\n"; } int rolldice(void) { int die1,die2,worksum; die1=1+rand()%6; //這里為什么要這么寫?? die2=1+rand()%6; worksum=die1+die2; cout<<"player rolled "<<die1<<'+'<<die2<<'='<<worksum<<endl; return worksum; }
查看完整描述

1 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

關于你這里的rand的問題,解釋如下:
int
rand()函數,隨機產生一整數
  rand()%MAX
產生[0,MAX)的整數
 
a+rand()%(b-a+1)
產生[a,b]之間的整數
下面是代碼:
/*
每個骰子有六面,這些面包含1,2,3,4,5,6個點,每次擲兩枚骰子,然后計算點數之和。
如果第一次的和味7或11,則游戲者獲勝。
2,3或12,則輸。
4,5,6,8,9,10
則繼續,
并將這個和作為游戲者獲勝所需要的點數,直到賺到該點數是算游戲者勝。如果7次仍未,則輸
*/
#include
<iostream>
#include
<cstdlib>
#include
<ctime>
#include
<cassert>
#include
"Random.H"
using
namespace
std;
#define
MIN
1
#define
SIDE
6
#define
WIN
21
int
dice::getP(void)
{
srand(time(NULL));
int
p1
=
MIN+rand()%SIDE;
int
p2
=
MIN+rand()%SIDE;
cout
<<
"\n
p1
=
"
<<
p1
<<
",
p2="
<<
p2
<<
endl;
return
(p1+p2);
}
int
rule::judge(int
p)
{
assert(
(p>=2)
&&
(p<=12)
)
int
ret;
if(
p==7
||
p
==
11)
{
ret
=
1
//
win
when
first
time
}
else
if
(p==2||p==3||p==4)
{
ret
=
-1
//
lost
when
first
time
}
else
{
ret
=
0;
}
return
ret;
}
int
boy::play(void)
{
rule
r;
dice
d;
int
ret;
while(
(++time)<=7
)
{
int
p1
=
d.getP();
int
ret1
=
r.judge(p1);
if(time
==
1)
{
if(
(ret1==1)
)
{
cout
<<
"
Congratulations,
You
Win!"
<<
endl;
return
1;
}
else
if
((ret1
==
-1))
{
cout
<<
"My
God,
You
Lost"
<<
endl;
return
-1;
}
}
total_
+=
p1;
if(total==WIN)
{
cout
<<
"
Congratulations,
You
Win!"
<<
endl;
return
1;
}
}
return
-1;
}

 


查看完整回答
反對 回復 2023-03-08
  • 1 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號