C课程设计点纸牌游戏程序文档格式.docx
- 文档编号:8604152
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:13
- 大小:39.96KB
C课程设计点纸牌游戏程序文档格式.docx
《C课程设计点纸牌游戏程序文档格式.docx》由会员分享,可在线阅读,更多相关《C课程设计点纸牌游戏程序文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
ans);
//是否进行新一轮的游戏voidclean();
//清屏
voidwait(int);
voidpause();
intGetInt(int,int);
intrandom(long,long);
private:
intplayerturns,cputurns,money;
intwin,lose,draw,bet;
floatplayer,cpu;
charanswer[7];
chardaan[7];
//voidGame:
:
wait(intmilli)
clock_tstart;
start=clock();
while((clock()-start)<
milli)
J
}
//=========================================================voidGame:
pause()
cout<
<
"
PressAnyKeyToContinue"
endl;
getch();
//=========================================================intGame:
GetInt(intL=0,intH=100)
intent;
PleaseEnterANumberBetween"
L<
and"
H<
cin>
>
ent;
while((ent<
L)||(ent>
H))
Error"
Valuemustbebetween"
"
return(ent);
//==========================================================
intGame:
random(longhi,longlo)//随机抽牌
intran;
srand((unsigned)time(NULL));
ran=rand()%(hi-(lo-1))+lo;
return(ran);
//=============================================================voidGame:
rules()
\t\t\t*********欢迎使用21点游戏软件*********"
cout<
游戏规则:
※①:
每轮游戏你最多只可以有5张牌。
※②:
如果你的点数超过21将输掉这轮游戏。
※③:
高级玩家可以看下一张牌。
※④:
胜利者将得到2倍的注金。
※⑤:
庄家牌点数不会小于16点。
\t\t\t"
pause();
//
voidGame:
BET()//下注
system("
cls"
//cout<
\t\t\tcout<
\t\t\tcin>
bet;
if(bet<
=0){cout<
exit(0);
执行系统命令cls你的资本:
$"
money<
你想下多少赌注?
:
对不起,输入有误"
}if(money-bet<
0)
对不起,你没有那么多钱!
("
//seesifyourbroke
exit(0);
money-=bet;
deal()//发前两张牌
intplayercard1,playercard2,cpucard1,cpucard2;
floatccard1,ccard2,pcard2,pcard1;
playerturns=2;
//开始给玩家发两张牌
cputurns=2;
//庄家也发两张牌
playercard1=random(13,1);
//在1到13中找出一个随机数
\n\t\t\t正在洗牌,请稍候"
wait(500);
playercard2=random(13,1);
["
playercard1<
]"
playercard2<
if(playercard1>
10)//大于十的牌点数全部置为0.5{
pcard1=0.5,player=pcard1,playercard1=0;
if(playercard2>
pcard2=0.5,player+=pcard2,playercard2=0;
}player+=playercard1+playercard2;
//总点数cout<
\t\t\t你现在的点数为:
player<
cpucard1=random(13,1);
//调用函数
wait(350);
为正面牌!
cpucard2=random(13,1);
\t\t\t庄家有一张"
cpucard1<
[*]"
["
if(cpucard1>
ccard1=0.5,cpu=ccard1,cpucard1=0;
if(cpucard2>
10)//大于十的牌点数全部置为0.5
ccard2=0.5,cpu+=ccard2,cpucard2=0;
}
cpu+=cpucard1+cpucard2;
//总的点数cout<
run(Game&
c2)//进行异常处理
charans;
do{
intm=0;
//执行系统命令cls
c2.clean();
//进行新的一轮游戏!
c2.check();
//检验是否爆庄
c2.BET();
//进行下注
c2.deal();
//洗牌do{
if(playerturns==5)cout<
已达最大牌数,不能再要牌了,请按任意键看你
的总的点数!
try{//开始捕获异常处理
\t\t\t你愿意继续吗?
(hit愿意,stay否):
m=0;
//可以没有的!
但把下面的if语句改一下就必须有了cout<
flush;
//刷新流cin>
ans;
cin.ignore(20,'
\n'
//把输入行中的其余字符取空,以便后面的输入从新一轮开始
if((ans=='
h'
)||(ans=='
H'
s'
S'
))break;
elsethrowans;
//产生异常事件
catch(char)//开始处理异常机制
你的输入有误!
:
(请重新输入"
m=1;
}catch(...){
m=2;
}}while(m!
=0);
if((ans=='
))
{playerturns++;
if(playerturns>
5)
{cout<
\t\t\t你不能多于5张牌!
}}if((playerturns<
6)&
&
(ans=='
c2.hit1();
}while((ans=='
));
for(;
(cpu<
16)&
(cputurns<
6);
cputurns++)
\t\t\t庄家得到一张牌!
c2.hit2();
//callshitfunction
\t\t\t庄家的点数为:
cpu<
//显示庄家的总点数
\t\t\t你的点数为:
//显示玩家的总点数
c2.results();
//看你是否赢了
c2.replay(ans);
}while((ans=='
y'
Y'
hit1()//取下一张并把它加入总和
intcard=0,copycard=0,bet1=0;
floatcards=0;
card=random(13,1);
copycard=card;
charans,s1[100];
如果您是普通玩家请按n."
如果您是高级玩家或超级玩家请按y."
cin>
label1:
if(ans=='
||ans=='
){
以便
//把输入行中的其余字符取空,后面的输入从新一路轮开始
请输入特别玩家的6位密码:
cin.getline(s1,7);
//提取密码if(!
strcmp(s1,answer))
\t\t\t这张牌是:
copycard<
是否加注(yorn)?
\n"
if(ans=='
)
你的现金还有$"
你要加多少注?
(你也可以不加)
bet1;
if(money-bet1<
你没有足够的赌注
}money=money-bet1;
你的总点数
bet+=bet1;
\t\t\t
为:
else
现在计算机的总牌点
您的总牌点为:
下张牌面
您想要什么牌?
请输入牌点数:
您要的牌为
牌点总数
总的牌面是:
player<
//输
对不起,你输入的密码错误!
不能看牌
是否再次输入密码(yesorno)?
if(cards==0.5)
player-=cards;
elseplayer-=copycard;
\t\t\t你的总点数为:
else{
if(strcmp(s1,daan)==0)
为:
endl;
floatcard;
card=(float)random(13,1);
if(card>
10)card=0.5;
是:
T<
card<
card;
player=player+card;
//
出总点数
)gotolabel1;
\t\t\t总点数是:
}else{
10){
cards=0.5,card=0;
player+=cards+card;
\t\t\t总点数为:
hit2()//确保庄家不会爆庄并且点数大于16
intcard=0,copycard=0;
floatcards=0;
card=random(13,1);
//调用函数copycard=card;
这张牌是:
if(card>
10)
{cards=0.5,card=0;
cpu=cpu+cards+card;
if(cpu>
21){
if(cards==0)cpu-=copycard;
//当card小于10但总数大于21时执行
elsecpu-=cards;
//当card大于10且点数大于21时执行
if(cpu<
16)//确保庄家点数大于等于16
cpu=16;
\t\t\t总点数是:
results()//找出赢家
{if(cpu==player)
\t\t\t点数一样,你们平了!
draw++;
money+=bet;
if(player>
21)
\t\t\t啊哦,你爆了!
lose++;
{if(cpu<
player)
\n\t\t\t恭喜你,你赢了!
)"
money=money+(bet*2);
win++;
\t\t\t恭喜你,庄家爆了!
if(player<
)"
\t\t\t不好意思,你输了!
GameGame:
operator=(Game&
d)//保留上一轮的一些数据
Gamet;
t.win+=d.win,t.lose+=d.lose,t.draw=+d.draw,t.playerturns=0,t.cputurns=0,t.money+=d.money,t.player=0,t.cpu=0;
returnt;
clean()//清零
win=this->
win,lose=this->
lose,draw=this->
draw,playerturns=0,cputurns=0,money=this->
money,
bet=0,player=0,cpu=0;
replay(char&
ans)//是否继续游戏
\n\t\t\t你是否想继续游戏(yesorno)?
check()
if(money<
=0)//检查钱的多少
对不起,你输光了,你不能玩了!
//seesifyourbroke}
print()//
打印最后结果
赢:
win<
负:
lose<
平:
draw<
余额:
谢谢使用"
你输的真惨啊!
intmain()
Gamec2;
//执行系统命令cls
c2.rules();
\t\t\t游戏可以开始了吗?
(yesorno):
if((ans=='
))//看你是否想要进行游戏
设定起始赌金
\t\t\t你现在拥有的赌本为$100!
////cout<
//刷新流
//pause();
else//如果否退出游戏
{return(0);
c2.run(c2);
//进行游戏c2.print();
//输出最后结果cout<
\t\t\t\t"
return(0);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 纸牌 游戏 程序