Quick actions

cmd+k|ctrl+k

Navigation

Languages

4

Snippet info

Language

C

Visibility

public

Author

danylo-zaychenko-525i

Created

2023-04-16T14:56:01.70224Z

Updated

2023-04-16T15:04:27.827011Z


#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] = { 'C','D','H','S' };

	srand(time(0));
	
	
	//основний цикл який генерує 24 карти (по 6 для  4 гравців) і перевіряє на наявність пари
	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==1)
					printf("\nВ руцi %d гравця є пара\n", i / 6 + 1);
				else {
					printf("\nВ руцi %d гравця немає пари\n", i / 6 + 1);
				}
			}
			//перехiд до наступної карти
			i++;
		}
	}




}
INFO