自动发牌,有52张牌,分给4人。使用数组方法设计一个程序完成自动发牌的工作。要求:黑桃用S表示,红桃用H表示,方块用D表示,梅花用C表示,C语言代码
时间: 2024-03-06 18:48:29 浏览: 78
java实现斗地主发牌系统
以下是C语言代码实现自动发牌,将52张牌发给4个人:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
char *cards[52] = {"S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "S10", "SJ", "SQ", "SK",
"H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "HJ", "HQ", "HK",
"D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "DJ", "DQ", "DK",
"C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", "CJ", "CQ", "CK"};
char *players[4][13] = {0};
int i, j, k, l;
srand((unsigned int)time(NULL)); // 随机数种子
// 发牌
for (i = 0; i < 52; i++) {
j = rand() % (52 - i) + i; // 从剩下的牌中随机选一张
for (k = 0; k < 4; k++) {
if (players[k][l] == NULL) {
players[k][l] = cards[j];
break;
}
}
l++;
}
// 输出每个人的牌
for (i = 0; i < 4; i++) {
printf("Player %d: ", i + 1);
for (j = 0; j < 13; j++) {
printf("%s ", players[i][j]);
}
printf("\n");
}
return 0;
}
```
以上代码通过使用数组来存储52张牌和4个玩家的牌,使用随机数来实现自动发牌。最终输出每个玩家的牌。
阅读全文