一个扑克牌游戏的模拟
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个扑克牌游戏的模拟相关的知识,希望对你有一定的参考价值。
每人8张牌,每次抽两张,三个玩家和庄家依次比较,
对子比非对子大,对王最大,依次KQJ 10 9 8```2 A
非对子时,求和,只考虑个位数
分步骤模拟容易不清楚,同时庞杂的变量再次证明可读性多么重要
#include<stdio.h> #include<stdlib.h> #include<time.h> #define JU 100000 #define QIAN 5000 int main() { int ju,win=0,sum=0,lose=0; srand(time(NULL));//以时间为种子 for(ju=1; ju<=JU; ju++) {//局数 int b[54]= {14,14, 1,2,3,4,5,6,7,8,9,10,11,12,13, 1,2,3,4,5,6,7,8,9,10,11,12,13, 1,2,3,4,5,6,7,8,9,10,11,12,13, 1,2,3,4,5,6,7,8,9,10,11,12,13, };//初始化牌 int player[4][8]= {0}; //初始化玩家 int playering[4][2]= {0}; //初始化玩家要比较的牌 int money[4]= {QIAN,QIAN,QIAN,QIAN}; // 初始化钱 int flag=0,i,j,k,num,m,ci,p1,p2,x,temp,num1,num2; for(ci=0; flag==0; ci++) {//次数,直至一个玩家输光 for(j=0; j<=53; j++) {//洗牌 x=rand()%54; temp=b[x]; b[x]=b[j]; b[j]=temp; } for(j=0; j<=3; j++) { //发牌 for(k=0; k<=7; k++) { player[j][k]=b[j*8+k]; } } for(j=0; j<=3; j++) { //每次玩牌的内部的轮数 for(k=0; k<=3; k++) { //抽出两张牌放在比较区 playering[k][0]=player[k][8-2*j-1]; playering[k][1]=player[k][8-2*j-2]; } for(k=1; k<=3; k++) { if(playering[k][0]==playering[k][2]&&playering[0][0]==playering[0][1]) { //庄家和玩家都是对 if(playering[0][0]>=playering[k][0]) { money[0]+=10; money[k]-=10; } else { money[0]-=10; money[k]+=10; } } else if(playering[k][0]==playering[k][1]) { money[0]-=10; money[k]+=10; } else if(playering[0][0]==playering[0][1]) { money[0]+=10; money[k]-=10; } else { if(playering[0][0]>10)//初始化jqk小王大王 playering[0][0]=1; if(playering[0][1]>10) playering[0][1]=1; if(playering[k][0]>10) playering[k][0]=1; if(playering[k][1]>10) playering[k][1]=1; p1= playering[0][0]+playering[0][1]; if(p1>10) p1%=10; p2= playering[k][0]+playering[k][1]; if(p2>10) p2%=10; if(p1>p2) { money[0]+=10; money[k]-=10; } else { money[0]-=10; money[k]+=10; } } } } for(j=0; j<=3; j++) { //判断是否钱为零 if(money[j]<=0) { flag=1; } } } // printf("第%d局,庄家:%d,玩家1:%d,玩家2:%d,玩家3:%d\n",ju,money[0],money[1],money[2],money[3]); if(money[0]>QIAN) win++; if(money[0]<=0) lose++; sum+=money[0]; } printf("%d\n",win); printf("%d\n",lose); printf("%d",sum/JU); }
以上是关于一个扑克牌游戏的模拟的主要内容,如果未能解决你的问题,请参考以下文章