C语言21点纸牌游戏系统详细设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言21点纸牌游戏系统详细设计

主函数

键盘输

产生随机

键盘输输入H 输出

统计

选择是否

图2.1 进入游戏后的游戏说明及规则

2.2开始游戏

图2.2 选择下注数目,然后随机发牌,只能见庄家一张牌,可以选择查看庄家隐藏的牌,此为游戏高级模式,开启后可选择想要的牌2.3作弊模式

图2.4在作弊模式下取胜,可以接着要牌,但玩家的牌最多不能超过5张,取胜后会统计结果,询问是否继续游戏2.5非作弊模式

图2.5 此情况为非作弊模式,不能见庄家的牌,只能知道结果,输掉游戏后统计结果,询问是否继续

2.6退出游戏

图2.6此为退出游戏,输入后自动关闭窗口

3.源程序:

#include

#include

#include

#include

void Wait_f(int);

void Pause_f();/*暂停,按任意键继续*/

int Random_f(long ,long );/*返回两个参数之间的随机数*/ void Replay_f(char *);/*询问是否重开一局*/

void Hit_f(int *);/*发一张牌*/

void Deal_f(int *,int *,int *,int *);/*双方各发两张牌*/

nCpuTurns=0,nMoney=0,nBet;

/* nPlayer--玩家手中全部牌的点数和,nPlayerTurns--玩家手中牌的数量 char chAnswer;

char mmm;

int a;

system("cls");/* 执行系统命令"清屏" */

Rules_f();

printf("确认是否开始游戏:");

scanf("%c",&chAnswer);

if((chAnswer=='y')||(chAnswer=='Y'))

{

nMoney=100;

printf("\t\t\t");

Pause_f();

}

else

{

return(0);

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

{

if((nPlayerTurns<6)&&(chAnswer=='h')) {

printf("\n");

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");

printf("\t\t\t\t");

return(0);

}

void Rules_f() /*这个函数显示游戏规则*/

{

printf("欢迎来到21点纸牌游戏\n");

printf("这里有一些简单的规则:\n");

printf("1:你的几张牌中只能有一个最大的牌。\n");

printf("2:如果你破产将输掉游戏。\n");

printf("3:如果你赢得游戏将获得你下注两倍的钱。\n");

printf("4:庄家点数等于或大于16时游戏停止。\n");

printf("5:您将获得100元初始基金!\n");

printf("提示:游戏中“是”输入“y ”,“否”输入“n

printf("PS:请按Enter键继续游戏!\n");

{

*npBet=*npBet*(-1);

}

*npMoney=*npMoney-*npBet;

}

void Deal_f(int* npPlayer,int*npCpu,int*npPlayeReturns,int *npCpuReturns) /*该函数是给计算机与玩家各发两张牌*/

{

int nPlayerCard1,nPlayerCard2,nCpuCard1,nCpuCard2;

*npPlayeReturns=2;

*npCpuReturns=2;

nPlayerCard1=Random_f(13,1);

printf("\nDEALING HAND\n");

getchar();

{

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);

相关文档
最新文档