#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#define SUIT_NUM 4
#define RANK_NUM 13
#define CARDS_NUMBER 6
#define PLAYERS 4
int main() {
setlocale(LC_ALL, "Ukr");
int poll[PLAYERS][CARDS_NUMBER];
int check[SUIT_NUM][RANK_NUM];
int check_pairs[RANK_NUM] = { 0 };
int rank, suit;
const char rank_code[RANK_NUM] = { '2','3','4','5','6','7','8','9','t','j','q','k','a' };
const char suit_code[SUIT_NUM] = { '\x03','\x04','\x05','\x06' };
srand(time(0));
//основний цикл
for (int i = 0; i < PLAYERS * CARDS_NUMBER; ) {
int pair = 0;
//генерацiя рангу та мастi карти
rank = (rand() % 13);
suit = (rand() % 4);
//перевiрка на повторення карти
if (check[suit][rank] != 1) {
check[suit][rank] = 1;
//виведення номеру гравця
if (i % 6 == 0) {
pair = 0;
for (int j = 0; j < RANK_NUM; j++)
check_pairs[i] = 0;
printf("\nРука %d гравця: ", i / 6 + 1);
}
check_pairs[rank]++;
//перевiрка на наявнiсть пари
if (check_pairs[rank] > 1 && pair!=1)
pair=1;
//виведення карти
printf(" %c%c ", rank_code[rank], suit_code[suit]);
//виведення iнформацiї про наявнiсть пари в руцi гравця
if ((i+1) % 6 == 0) {
if (pair)
printf("\nВ руцi %d гравця є пара\n", i / 6 + 1);
else {
printf("\nВ руцi %d гравця немає пари\n", i / 6 + 1);
}
}
//перехiд до наступної карти
i++;
}
}
}