C语言21点纸牌游戏系统详细设计Word格式文档下载.docx
- 文档编号:22024988
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:14
- 大小:73.38KB
C语言21点纸牌游戏系统详细设计Word格式文档下载.docx
《C语言21点纸牌游戏系统详细设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言21点纸牌游戏系统详细设计Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
/*双方各发两张牌*/
voidBet_f(int*,int*);
/*接受下注得数目*/
voidPrint_f(int,int,int,int);
/*打印结果*/
void Rules_f();
/*显示游戏规则*/
voidResults_f(int ,int,int,int *,int*,int*,int *);
/*统计结果(输赢平)*/
voidHit_f2(int*npTotal,inta);
intnnn;
intmain()
{
intnPlayer=0,nCpu=0,nWin=0,nLose=0,nDraw=0,nPlayerTurns=0,
nCpuTurns=0,nMoney=0,nBet;
/*nPlayer--玩家手中全部牌得点数与,nPlayerTurns--玩家手中牌得数量*/
charchAnswer;
charmmm;
ﻩﻩinta;
system("
cls”);
/* 执行系统命令"清屏”*/
Rules_f();
printf(”确认就是否开始游戏:
”);
scanf("
%c"
,&chAnswer);
if((chAnswer=='
y’)||(chAnswer==’Y’))
{
nMoney=100;
printf("
\t\t\t"
);
Pause_f();
}
else
{
return(0);
}
do
{
system(”cls”);
if(nMoney<
0)
{
printf("
您没钱了!
\n"
);
ﻩreturn(0);
ﻩ}
Bet_f(&
nBet,&nMoney);
/*接受下注得数目*/
ﻩDeal_f(&nPlayer,&nCpu,&
nPlayerTurns,&
nCpuTurns);
/*双方各发两张牌*/
ﻩprintf(”想瞧庄家牌吗?
");
ﻩscanf(”%c",&mmm);
ﻩif((mmm==’y'
)||(mmm==’Y'))
ﻩ{
ﻩﻩprintf("
%d\n",nnn);
ﻩprintf("您想要哪一张牌?
"
ﻩﻩscanf(”%d”,&a);
ﻩ}
system("cls");
ﻩﻩdo
ﻩ{
printf("
想要继续要牌吗?
(H开启作弊模式)\n”);
/*询问玩家就是否接着要牌*/
ﻩscanf("
%c",&
chAnswer);
if((chAnswer==’h’)||(chAnswer==’H’))
{
ﻩﻩnPlayerTurns++;
/*计算总牌数*/
ﻩﻩif(nPlayerTurns>5)/*瞧就是否允许再要牌*/
ﻩﻩ{
ﻩﻩprintf("
您得牌不能超过5张!
\n");
ﻩﻩ}
ﻩ
if((nPlayerTurns<
6)&&(chAnswer==’h’))
ﻩ{
ﻩprintf("
if((mmm=='y’)||(mmm==’Y'))
Hit_f2(&nPlayer,a);
ﻩﻩelse Hit_f(&nPlayer);
/*为玩家发一张牌*/
ﻩwhile((chAnswer==’h')||(chAnswer==’H'));
for(;
(nCpu〈16)&&(nCpuTurns<6);
nCpuTurns++)/*计算机要牌得条件*/
{
ﻩprintf("\n");
ﻩprintf(”向庄家发一张牌:
\n”);
Hit_f(&nCpu);
/*为计算机发一张牌*/
}
ﻩprintf("
\n\n"
printf(”庄家为:
%d点\n",nCpu);
/*显示总点数*/
printf("
您为:
%d点\n"
nPlayer);
ﻩprintf(”\n"
Results_f(nPlayer,nCpu,nBet,&nMoney,&nDraw,&nWin,&nLose);
/*计算最后得结果(统计输赢平得局数)*/
Replay_f(&chAnswer);
/*询问就是否重开一局*/
}while((chAnswer=='
y’)||(chAnswer==’Y'
));
Print_f(nWin,nLose,nDraw,nMoney);
/*打印最后结果*/
printf("
\n”);
printf("
\t\t\t\t"
return(0);
}
void Rules_f()/*这个函数显示游戏规则*/
printf("
欢迎来到21点纸牌游戏\n”);
ﻩﻩﻩﻩﻩprintf(”这里有一些简单得规则:
ﻩﻩ printf("1:
您得几张牌中只能有一个最大得牌。
\n"
ﻩﻩ printf("
2:
如果您破产将输掉游戏。
ﻩﻩﻩﻩprintf(”3:
如果您赢得游戏将获得您下注两倍得钱。
\n”);
ﻩﻩ printf("
4:
庄家点数等于或大于16时游戏停止.\n");
ﻩﻩ printf(”5:
您将获得100元初始基金!
ﻩﻩﻩ printf(”提示:
游戏中“就是”输入“y ”,“否 ”输入“n”。
\n”);
ﻩ printf("
PS:
请按Enter键继续游戏!
\n");
getchar();
voidBet_f(int*npBet,int*npMoney)/*该函数接受玩家下注,并计算赌资得总数*/
system("
ﻩprintf("您有:
%d元\n”,*npMoney);
ﻩprintf(”您将下注多少钱:
scanf(”%d”,npBet);
if(*npBet〈0)
*npBet=*npBet*(-1);
*npMoney=*npMoney—*npBet;
voidDeal_f(int* npPlayer,int*npCpu,int*npPlayeReturns,int*npCpuReturns)
/*该函数就是给计算机与玩家各发两张牌*/
int nPlayerCard1,nPlayerCard2,nCpuCard1,nCpuCard2;
*npPlayeReturns=2;
*npCpuReturns=2;
nPlayerCard1=Random_f(13,1);
printf(”\nDEALINGHAND\n"
getchar();
Pause_f();
nPlayerCard2=Random_f(13,1);
Pause_f();
nCpuCard1=Random_f(13,1);
Pause_f();
nCpuCard2=Random_f(13,1);
if (nPlayerCard1〉=10)
ﻩnPlayerCard1=10;
if(nPlayerCard2〉=10)
ﻩnPlayerCard2=10;
if(nCpuCard1>=10)
ﻩnCpuCard1=10;
if(nCpuCard2>
=10)
ﻩnCpuCard2=10;
*npPlayer=nPlayerCard1+nPlayerCard2;
*npCpu=nCpuCard1+nCpuCard2;
printf("
您得总点数就是:
%d\n",*npPlayer);
printf("[%d]"
nPlayerCard1);
printf("[%d]",nPlayerCard2);
printf("\n"
printf(”庄家有一张牌为:
%d",nCpuCard1);
printf(”\n”);
[*][%d]\n",nCpuCard1);
nnn=nCpuCard2;
voidHit_f(int * npTotal)/*发一张牌,返回点数之与*/
ﻩintnCard;
ﻩnCard=Random_f(13,1);
ﻩif(nCard>
=10)
ﻩnCard=10;
ﻩ* npTotal=*npTotal+nCard;
printf(”点数就是:
:
%d点\n",nCard);
ﻩprintf("总点数就是:
%d点\n",*npTotal);
voidResults_f(intnPlayer,intnCpu,intnBet,int*npMoney,int* npDraw,int
ﻩﻩﻩ *npWin,int* npLose)/*统计结果(输赢平及输赢平得局数)*/
ﻩif(nCpu==nPlayer)
ﻩprintf(”庄家赢!
\n”);
ﻩﻩ++*npDraw;
ﻩ}
if(nPlayer>
21)
ﻩprintf(”您爆点了!
\n");
++*npLose;
ﻩelse
{
if(nCpu〈nPlayer)
ﻩprintf("恭喜您赢了!
”);
ﻩﻩ*npMoney=*npMoney+(nBet*2);
ﻩﻩﻩ++*npWin;
ﻩﻩ}
if(nCpu〉21)
ﻩﻩprintf("
庄家爆点!
ﻩif(nPlayer<=21)
{
ﻩﻩprintf("恭喜您赢了!
ﻩﻩ++*npWin;
ﻩﻩ*npMoney=*npMoney+(nBet*2);
ﻩ}
ﻩif(nCpu〉nPlayer)
ﻩprintf("
您输了!
\n"
ﻩ++* npLose;
ﻩ}
voidReplay_f(char*chpAns)/*询问就是否重开一局*/
printf("
想要再玩一次吗?
scanf(”%c"
,chpAns);
voidPrint_f(int nWins,int nLose,int nDraw,intnMoney)
printf("赢得:
%d局\n", nWins);
ﻩﻩﻩﻩ printf("
输掉:
%d局\n"
,nLose);
ﻩﻩﻩﻩﻩ printf("平局:
%d局\n"
nDraw);
ﻩﻩﻩﻩﻩprintf(”剩余资金:
%d元\n",nMoney);
void Wait_f(intnMilli)
intnStart1,nStart2;
for(nStart1=0;
nStart1〈nMilli*100;
nStart1++)
for(nStart2=0;
nStart2〈nMilli*100;
nStart2++)
{;
voidPause_f()
{
printf("按任意键继续:
getchar();
intRandom_f(longlBigNumber,longlSmallNumber) /*选择两个参数之间得随机数*/
{
intnRan;
srand((unsigned)time(NULL));
nRan=rand()%(lBigNumber—(lSmallNumber-1))+lSmallNumber;
return(nRan);
}
voidHit_f2(int* npTotal,inta) /*发一张牌,返回点数之与*/
ﻩintnCard;
nCard=a;
if(nCard>
ﻩﻩnCard=10;
*npTotal=*npTotal+nCard;
printf(”这张牌就是:
%d点\n”,nCard);
printf("一共就是:
%d点\n”,*npTotal);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 21 纸牌 游戏 系统 详细 设计