Quick actions

cmd+k|ctrl+k

Navigation

Languages

lab3_task4

Snippet info

Language

C

Visibility

public

Author

danylo-zaychenko-525i

Created

2023-04-05T09:11:39.482645Z

Updated

2023-04-05T09:13:05.687146Z

/**
* @file main.c
* @author Зайченко Д.І., гр. 515i
* @date 04 квітня 2023
* @brief Лабораторна робота No 3
*
* Використання масивів. Завдання 4
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SUIT_NUM 4
#define RANK_NUM 13
#define PLAYERS 4
#define CARDS_NUMBER 6


int main() {
	int cards_poll[PLAYERS][CARDS_NUMBER];
	int check[SUIT_NUM][RANK_NUM];
	int rank, suit,trump,trump_number, * card_poll = &cards_poll[0][0];
	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));
	//генерація і виведення козирної масті
	trump = rand() % 4;
	printf("trump = %c", suit_code[trump]);
	//цикл в якому генеруються карти та підраховується кількість коризів
	for (card_poll = &cards_poll[0][0]; card_poll- &cards_poll[0][0] < PLAYERS*CARDS_NUMBER; ) {
	
		//генерація рангу та масті карти
		rank = (rand() % 13);
		suit = (rand() % 4);
		//перевірка на повторення карти
		if (check[suit][rank] != 1) {
			check[suit][rank] = 1;
			//виведення руки гравця та скидання кількості козирів
			if ((card_poll - &cards_poll[0][0]) % 6 == 0) {
				
				trump_number = 0;
				printf("\nPlayer %d hand =", (card_poll - &cards_poll[0][0]) / 6 + 1);
			}
			//кількість козирів в руці +1
			if (suit == trump)
				trump_number++;
			//виведення карти
			printf(" %c%c ",rank_code[rank],suit_code[suit]);
			//виведення кількості козирів
			if (((card_poll - &cards_poll[0][0])+1 ) % 6 == 0) 
				printf("\nNumber of trumps in player %d hand = %d\n", (card_poll - &cards_poll[0][0]) / 6 + 1, trump_number);
			//генерація наступної карти
			card_poll++;
		}

	}
	
	


}
INFO