Quick actions

cmd+k|ctrl+k

Navigation

Languages

Задача 4

Snippet info

Language

C

Visibility

public

Author

a.m.razghildieieva

Created

2025-05-15T09:50:58.090012Z

Updated

2025-05-15T09:50:58.090012Z

#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;
}
INFO