概括
就是个模拟抓牛牛(不知道就别知道了)的代码,无聊搞的,戒赌用。
11为J,12为Q,13为K,14为小王,15为大王。
本体
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{srand((unsigned)time(NULL));
printf("牛牛机\n");
int i,n,ren,die;
printf("输入玩家人数\n");
scanf("%d",&ren);
printf("输入需要牌叠数\n");
scanf("%d",&die);
struct p
{int zhi;
int shu;}; //结构体数值和数量
int sum=54*die;
p yi,er,san,si,wu,liu,qi,ba,jiu,shi,j,q,k,xiaow,daw;
p pai[]={yi,er,san,si,wu,liu,qi,ba,jiu,shi,j,q,k,xiaow,daw};
for(i=0;i<15;i++)
{pai[i].zhi=i+1;pai[i].shu=4*die;
if(i>=13)
pai[i].shu=1*die;//赋值牌的数值和数量
};
for(n=0;n<ren;n++)
{if(sum<(ren-n-1)*5||sum<5)
{printf("牌将不足,请重启程序以继续游戏");
break;
}
int s[5];
for(i=0;i<5;i++)
{
int a;
a=rand();
a=a%14; //我的回合,抽卡
while(pai[a].shu==0) //抽完一种牌了,重抽
{a=rand();
a=a%14;
};
s[i]=pai[a].zhi;
pai[a].shu--;
sum--;
};
printf("玩家%-4d: ",n+1);
for(i=0;i<5;i++)
{
printf("%-4d ",s[i]);
if(i==4)printf("\n"); //输出
};
};
return 0;
}
预览
抛砖引玉
笨人纯新手,只能做到这种程度,待改进内容如下:
1.无法算出牛的大小
2.牌库空了无法自动填充重新开始
3.只能运行一次
4.数字和J,Q,K,大王,小王还没用char表示
5.没有花色