C语言编写单机斗地主源代码
时间: 2024-04-20 19:23:44 浏览: 80
以下是一个简单的C语言单机斗地主的示例源代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义牌型和牌面
enum Suit {
SPADE, // 黑桃
HEART, // 红心
CLUB, // 梅花
DIAMOND // 方块
};
enum Rank {
THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN,
JACK, QUEEN, KING, ACE, TWO, SMALL_JOKER, BIG_JOKER
};
struct Card {
enum Suit suit;
enum Rank rank;
};
// 初始化一副牌
void initDeck(struct Card* deck) {
int i, j, count = 0;
for (i = 0; i < 4; i++) {
for (j = 0; j < 13; j++) {
deck[count].suit = i;
deck[count].rank = j;
count++;
}
}
deck[52].suit = SPADE;
deck[52].rank = SMALL_JOKER;
deck[53].suit = SPADE;
deck[53].rank = BIG_JOKER;
}
// 洗牌
void shuffleDeck(struct Card* deck) {
int i, j;
struct Card temp;
for (i = 0; i < 54; i++) {
j = rand() % 54;
temp = deck[i];
deck[i] = deck[j];
deck[j] = temp;
}
}
// 打印一张牌
void printCard(struct Card card) {
char* suits[] = {"♠", "♥", "♣", "♦"};
char* ranks[] = {"3", "4", "5", "6", "7", "8", "9", "10",
"J", "Q", "K", "A", "2", "小王", "大王"};
printf("%s%s ", suits[card.suit], ranks[card.rank]);
}
// 打印一副牌
void printDeck(struct Card* deck, int size) {
int i;
for (i = 0; i < size; i++) {
printCard(deck[i]);
}
printf("\n");
***
阅读全文
相关推荐











