扑克牌游戏 实现一个简单的扑克牌游戏,可以洗牌、发牌,还有玩家打牌等功能

具体任务如下:
(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)用户自行设计任务要求。
2.教学要求
(1)能理解项目需求,并分解成各个小任务;
(2)能运用C语言知识,设计项目的代码框架、设计扑克牌结构体;
(3)能按易到难,用C语言实现各项任务;
(4)能按实践报告内容和格式要求,编写实践报告;
(5)能按项目答辩要求,完成项目答辩相关工作。
3.重点与难点
(1)重点:游戏规则的设计,如何用C语言结构体对扑克牌进行描述。
(2)难点:在各种游戏规则下,实现对扑克牌的大小比较。

随机生成54张牌,参考:

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

void fun(int a[]){
    int i;
    int j;
    int flag=0;
    int num = 0;
    for(i=0;i<13;i++){
        flag = 1;
        while(flag){
            num = (rand() % 54) +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张牌对应的数字
    */
    int i;
    int a[13];
    fun(a);
    for(i=0;i<13;i++)
        printf("%d\t",a[i]);
       
}