#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TOTAL_CARDS 52
#define PLAYERS 3
#define CARDS_PER_PLAYER 6
const char* suits[] = { "(H)", "(D)", "(C)", "(S)" }; // Hearts, Diamonds, Clubs, Spades ♥ ♦ ♣ ♠
const char* ranks[] = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "В", "Д", "К", "Т" };
typedef struct {
int suit;
int rank;
} Card;
void createDeck(Card* deck) {
int index = 0;
for (int s = 0; s < 4; s++) {
for (int r = 0; r < 13; r++) {
deck[index].suit = s;
deck[index].rank = r;
index++;
}
}
}
void shuffleDeck(Card* deck) {
for (int i = 0; i < TOTAL_CARDS; i++) {
int j = rand() % TOTAL_CARDS;
Card temp = deck[i];
deck[i] = deck[j];
deck[j] = temp;
}
}
void printCard(const Card* card) {
printf("%s%s ", ranks[card->rank], suits[card->suit]);
}
int isBigCard(int rank) {
// Валет (9), Дама (10), Король (11), Туз (12)
return rank >= 9;
}
int main() {
setlocale(LC_CTYPE, "ukr");
srand(time(NULL));
Card deck[TOTAL_CARDS];
createDeck(deck);
shuffleDeck(deck);
int trumpSuit = rand() % 4;
printf("Козирна масть: %s\n\n", suits[trumpSuit]);
Card players[PLAYERS][CARDS_PER_PLAYER];
int cardIndex = 0;
for (int p = 0; p < PLAYERS; p++) {
for (int c = 0; c < CARDS_PER_PLAYER; c++) {
players[p][c] = deck[cardIndex++];
}
}
for (int p = 0; p < PLAYERS; p++) {
printf("Гравець %d: ", p + 1);
int bigNonTrump = 0;
for (int c = 0; c < CARDS_PER_PLAYER; c++) {
Card card = players[p][c];
printCard(&card);
if (isBigCard(card.rank) && card.suit != trumpSuit) {
bigNonTrump++;
}
}
printf("\nВеликi не козирнi карти: %d\n\n", bigNonTrump);
}
return 0;
}