用c语言设计一个模拟发牌游戏
时间: 2024-05-14 22:18:55 浏览: 80
以下是一个简单的模拟发牌游戏的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DECK_SIZE 52
#define HAND_SIZE 5
// 定义扑克牌结构体
typedef struct {
int rank; // 牌面大小
int suit; // 花色
} Card;
// 定义花色常量
const char* suits[] = {"Spades", "Hearts", "Diamonds", "Clubs"};
// 定义牌面大小常量
const char* ranks[] = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
// 初始化扑克牌
void init_deck(Card deck[]) {
for (int i = 0; i < DECK_SIZE; i++) {
deck[i].rank = i % 13;
deck[i].suit = i / 13;
}
}
// 洗牌
void shuffle_deck(Card deck[]) {
srand(time(NULL)); // 设置随机数种子
for (int i = 0; i < DECK_SIZE; i++) {
int j = rand() % DECK_SIZE;
Card temp = deck[i];
deck[i] = deck[j];
deck[j] = temp;
}
}
// 输出一张扑克牌
void print_card(Card card) {
printf("%s of %s\n", ranks[card.rank], suits[card.suit]);
}
// 输出一手牌
void print_hand(Card hand[]) {
for (int i = 0; i < HAND_SIZE; i++) {
print_card(hand[i]);
}
}
int main() {
Card deck[DECK_SIZE];
init_deck(deck);
shuffle_deck(deck);
Card hand[HAND_SIZE];
for (int i = 0; i < HAND_SIZE; i++) {
hand[i] = deck[i];
}
printf("Your hand:\n");
print_hand(hand);
return 0;
}
```
该代码定义了一个 `Card` 结构体来表示一张扑克牌,然后使用常量数组分别定义了花色和牌面大小。在 `init_deck` 函数中初始化整副扑克牌,而 `shuffle_deck` 函数使用随机数洗牌。`print_card` 和 `print_hand` 函数用于输出一张扑克牌和一手牌。在 `main` 函数中,先初始化并洗牌,然后从整副牌中取出前 5 张作为一手牌,并输出。
阅读全文
相关推荐


















