如何写一个扑克牌游戏的代码

实现一个简单的扑克牌游戏,可以洗牌、发牌,还有玩家打牌等功能,具体任务如下:
(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]);
       
}