实现一个简单的扑克牌游戏,可以洗牌、发牌,还有玩家打牌等功能,具体任务如下:
(1)一副扑克52张牌(去掉大小王),分别是A、2、3、4、5、6、7、8、9、10、J、Q、K,每种4张(不考虑花色);
(2)由电脑随机洗牌,并分成4份(4个电脑玩家),并设计出一个对弈函数,每家调用该函数实现自动出牌;出牌后,若所有下家都没有牌出,则当前这一家可以选择出其它牌。
(3)一次出牌可以是1张、2张一样、3张一样或者4张一样,下家所出的牌,需要大于上家出的牌,从小到大的顺序为:2、3、4、5、6、7、8、9、10、J、Q、K、A,若上家出2张一样的,那下家也要出2张一样的,而且比它大的牌;
(4)增加其它规则,如:允许连对,例如2张J和2张Q可以一起出牌,同样3张或4张也可以连对一起出牌,也可以几个连对一起出牌;
(5)扑克牌增加花色(黑桃、红桃、梅花、方块)和大小王,实现其它扑克牌玩法;
(6)用户自行设计任务要求。
电脑随机洗牌,发牌参考:
#include<stdio.h>
#include<stdlib.h>
void fun(int a[]){
int i;
int j;
int flag=0;
int num = 0;
for(i=0;i<52;i++){
flag = 1;
while(flag){
num = (rand() % 52) +1;
for(j=0;j<i;j++){
if(num == a[j]){
break;
}
}
if(j==i){
flag=0;
a[i] = num;
}
}
}
}
void main()
{
/*
假设1~54分别代表54张牌对应的数字,黑桃(1~13),红桃(14~26),梅花(27~39),方块(40~52)
*/
int i;
int a[52];
fun(a);
for(i=0;i<52;i++)
printf("%d\t",a[i]);
}