c语言编程的扑克游戏?

定义一个结构类型来表示一张卡片,该结构包含三个成员。第一个成员char: values 2,3 ~ K,A代表卡的名称,第二个成员int: values 2~14代表卡的实际大小。第三个成员:指向结构链表的指针。

写一个初始化函数,定义一个52大小的结构数组,成员初始值分别对应卡片,遍历数组并将每个元素的链表指针依次指向下一个元素地址。这产生了一个初始链表。(相当于一盒新牌)

Rand函数用于所有涉及的随机数。把牌洗成四份,就是循环取随机数m=1~n,n随循环递减,初始值为52,直到n变成0。每循环一次,从初始链表开始遍历对应的第m个节点,这个节点与初始链表断开(即上一个节点指针直接指向下一个节点指针)。每取13张形成一个新的链表。这样得到的四个新链表分别代表四个玩家。

最后,打牌就是分别遍历自己的链表,循环取牌比较结构值。(取出的卡片要和链表断开连接,如上,把取出的节点写成独立的函数就可以重复使用)。