满意答案
#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 *);/*双方各发两张牌*/
void Bet_f(int *,int *);/*接受下注的数目*/
void Print_f(int ,int ,int ,int );/*打印结果*/
void Rules_f();/*显示游戏规则*/
void Results_f(int ,int ,int ,int *,int *,int *,int *);/*统计结果(输赢平)*/
void Hit_f2(int * npTotal,int a);
int nnn;
int main()
{
int nPlayer=0,nCpu=0,nWin=0,nLose=0,nDraw=0,nPlayerTurns=0,nCpuTurns=0,nMoney=0,nBet;
/* nPlayer——玩家手中全部牌的点数和,nPlayerTurns——玩家手中牌的数量*/
char chAnswer;
char mmm;
int a;
system("cls");/* 执行系统命令“清屏” */
Rules_f();
printf("WOULD YOU LIKE TO PLAY?n");
scanf("%c",&chAnswer);
if((chAnswer=='y')||(chAnswer=='Y'))
{
printf("tttI WILL LET YOU START WITH $100n");
nMoney=100;
printf("ttt");
Pause_f();
}
else
{
return(0);
}
do
{
system("cls");
if(nMoney<0)
{
printf("Your broken");
return(0);
}
Bet_f(&nBet,&nMoney);/*接受下注的数目*/
Deal_f(&nPlayer,&nCpu,&nPlayerTurns,&nCpuTurns);/*双方各发两张牌*/
printf("tttWould you want to cheat? yes or no?");
scanf("%c",&mmm);
if((mmm=='y')||(mmm=='Y'))
{
printf("%d",nnn);
printf("tttwhich card do you want?");
scanf("%d",&a);
}
system("cls");
do
{
printf("tttWould You Like To Hit or Stay :");/*询问玩家是否接着要牌*/
scanf(" %c",&chAnswer);
if((chAnswer=='h')||(chAnswer=='H'))
{
nPlayerTurns++;/*计算总牌数*/
if(nPlayerTurns>5)/*看是否允许再要牌*/
{
printf("tttYou Can't Have more than 5 cards");
}
}
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("tttThe Dealer Takes A Card");
Hit_f(&nCpu);/*为计算机发一张牌*/
}
printf("nn");
printf("tttThe Dealer Has A Total: %dn", nCpu);/*显示总点数*/
printf("tttYou Have A Total Of: %dn", 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("tttt");
return(0);
}
void Rules_f() /*这个函数显示游戏规则*/
{
printf("tt WELCOME TO ISAAC SHAFFERS BLACK JACK GAMEn");
printf("ttt HERE ARE SOME SIMPLE RULESn");
printf("ttt1:You Can only have a max of 5 cards.n");
printf("ttt2:If you bust you automatically lose.n");
printf("ttt3:If you win you win double what you bet");
printf("ttt4:The Dealer stops at or after 16.n");
printf("tttt");
getchar();
}
void Bet_f(int* npBet,int* npMoney) /*该函数接受玩家下注,并计算赌资的总数*/
{
system("cls");
printf("tttYOU HAVE:$%dn",*npMoney);
printf("tttHow Much Do You Wish To Bet:");
scanf("%d",npBet);
if(*npBet<0)
{
*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("ntttDEALING HANDn");
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("tttYOU HAVE a total of:%dn",*npPlayer);
printf("[%d]", nPlayerCard1);
printf("[%d]",nPlayerCard2);
printf("n");
printf("tttThe DEALER HAS A %d SHOWING",nCpuCard1);
printf("n");
printf("[*][%d]",nCpuCard1);
nnn=nCpuCard2;
}
void Hit_f(int * npTotal) /* 发一张牌,返回点数之和*/
{
int nCard;
nCard=Random_f(13,1);
if(nCard>=10)
{
nCard=10;
}
* npTotal=* npTotal+nCard;
printf("tttThe card is a :%dn", nCard);
printf("tttTotal is :%dn", * npTotal);
}
void Results_f(int nPlayer,int nCpu,int nBet,int * npMoney,int * npDraw,int
* npWin,int * npLose)/*统计结果(输赢平及输赢平的局数)*/
{
if(nCpu==nPlayer)
{
printf("tttIT WAS A DRAW HOUSE WINSn");
++* npDraw;
}
if(nPlayer>21)
{
printf("tttYou Bustn");
++* npLose;
}
else
{
if(nCpu
{
printf("ntttYOU WIN");
*npMoney=*npMoney+(nBet*2);
++* npWin;
}
}
if(nCpu>21)
{
printf("tttDealer Bustn");
if(nPlayer<=21)
{
printf("ntttYOU WIN");
++* npWin;
*npMoney=*npMoney+(nBet*2);
}
}
else
{
if(nCpu>nPlayer)
{
printf("tttYOU LOSEn");
++* npLose;
}
}
}
void Replay_f(char *chpAns) /*询问是否重开一局*/
{
printf("nttWould You Like To Play This Game Again:");
scanf("%c",chpAns);
}
void Print_f(int nWins,int nLose,int nDraw,int nMoney)
{
printf("ttttWINS:%dn", nWins);
printf("ttttLOSE:%dn", nLose);
printf("ttttDRAWS:%dn",nDraw);
printf("ttttMONEY:%dn",nMoney);
}
void Wait_f(int nMilli)
{
int nStart1,nStart2;
for(nStart1=0;nStart1
for(nStart2=0;nStart2
{;}
}
void Pause_f()
{
printf("Press Any Key To Continue");
getchar();
}
int Random_f(long lBigNumber, long lSmallNumber) /*选择两个参数之间的随机数*/
{
int nRan;
srand((unsigned)time(NULL));
nRan=rand()%(lBigNumber-(lSmallNumber-1))+lSmallNumber;
return(nRan);
}
void Hit_f2(int * npTotal,int a) /* 发一张牌,返回点数之和*/
{
int nCard;
nCard=a;
if(nCard>=10)
{
nCard=10;
}
* npTotal=* npTotal+nCard;
printf("tttThe card is a :%dn", nCard);
printf("tttTotal is :%dn", * npTotal);
}
00分享举报
本文发布于:2024-02-08 19:58:35,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170739369168593.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |