0
点赞
收藏
分享

微信扫一扫

C语言:斗地主发牌器

胡桑_b06e 2022-02-09 阅读 57

思想:

一副扑克牌共有54张,大小王各一张,每个花色各13张,花色共有4种,黑桃、红桃、方块、梅花,13*4+2=52+2=54,对就是这样,没错啦。玩斗地主会有3人参与,先从整副牌中拿出3张分给叫地主的人,然后将牌平均分为3份,即农民每人各17张牌,地主21张牌。分析完之后,我们就开始写代码啦,此次编写代码采用函数的形式,因为这样便于阅读和维护。

实现步骤:

我们先是有54张空白的牌,然后再按顺序给他们写上数,这便叫作初始化。玩斗地主的时候,系统分给我们的牌是随机的,我们无法掌控牌好坏,只能听天由命,这就需要将牌打乱,即混牌。混牌的实质就是随机将两张牌交换位置,想要乱一点就多交换几次呗。系统将打乱后的牌分给我们,我们就能看到手中的牌了,这就是显示。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int cards[54];//产生54张空白牌
void init();
void mix();
void show();
int main(){
srand(time(0));//随机初始化
//初始化
init();
//混牌
mix();
//显示
show();
return 0;
}
void init(){
int i;
for(i=0;i<54;i++){
cards[i]=i;
}
}
void mix(){
int i;
for(i=0;i<30;i++){
int a=rand()%54;//随机产生一个0~53的数
int b=rand()%54;
int t=cards[a];
cards[a]=cards[b];
cards[b]=t;
}
}
void show(){
	int i;
	char styles[4][8]={"黑桃","红桃","方块","梅花"};
	char number[13][4]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
	for(i=0;i<54;i++){
	if(cards[i]==52){
		printf("小王 ");
	}else if(cards[i]==53){
		printf("大王 ");
	}else{
		printf("%s%s ",styles[cards[i]/13],number[cards[i]%13]);
	}
	if((i+1)%17==0){
		printf("\n");}
	}
}
举报

相关推荐

0 条评论