Рассдача карт - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include<stdio.h>
#include<locale.h>
#include<time.h>
#include<stdlib.h>
#define NUM_SUITS 4
#define NUM_RANKS 13
int main()
{
    int in_hand[NUM_SUITS][NUM_RANKS] = { 0 };
    int num_cards = 1, rank, suit;
    const char rank_code[] = { '2','3','4','5','6','7','8','9','10','J','Q','K','A' };
    const char suit_code[] = { '\x03','\x04','\x05','\x06' };
    setlocale(LC_CTYPE, "rus");
    //Инициализация генератора случайных чисел
    srand(time(0));
    printf("Ваши карты   / n");
    while (num_cards <= 24)
    {
        suit = rand() % NUM_SUITS;// Случайная Масть 
        rank = rand() % NUM_RANKS;// Случайный ранг
        
            if(!in_hand[suit][rank])
            {
                if (num_cards <= 6)//Выдача карт 1 игроку 
                {
                    if (num_cards == 1)
                    {
                        printf("Первый игрок ");
                    }
                    printf("&c&c", rank_code[rank], suit_code[suit]);
                    if (num_cards == 6) {
                        printf("/n");
                    }
                }
                if (num_cards >= 7&& num_cards <= 12  )//Выдача карт 2 игроку 
                {
                    if (num_cards == 7)
                    {
                        printf(" Второй игрок ");
                    }
                    printf("&c&c", rank_code[rank], suit_code[suit]);
                    if (num_cards == 12) {
                        printf("/n");
                    }
                }
                if (num_cards <= 13&&num_cards <= 18)//Выдача карт 3 игроку 
                {
                    if (num_cards ==13 )
                    {
                        printf("3 игрок ");
                    }
                    printf("&c&c", rank_code[rank], suit_code[suit]);
                    if (num_cards == 18) {
                        printf("/n");
                    }
                }
                if (num_cards > 18)//Выдача карт 4 игроку 
                {
                    if (num_cards == 19)
                    {
                        printf("4 игрок ");
                    }
                    printf("&c&c", rank_code[rank], suit_code[suit]);
                    if (num_cards == 24) {
                        printf("/n");
                    }
                }
                in_hand[suit][rank] = 1;
                num_cards++;
        }
    }
    printf("\n");
    return 0;
}
Программа сдает по 6 карт четырем игрокам и подсчитывает количество последовательностей из двух карт одного ранга у каждого игрока. Вопервых проблемы с расдачей не генирирует в руки и как сделать так что бы условие выполнялось

Решение задачи: «Рассдача карт»

textual
Листинг программы
printf("&c", 'h')

Объяснение кода листинга программы

В данном коде выполняется печать символа 'h' с использованием кода ASCII. Вот список действий:

  1. printf - функция вывода информации на экран.
  2. &c - строка-шаблон, которую заменит printf.
  3. 'h' - символ, который будет выведен на экран.
  4. h - символ, который будет выведен на экран. В итоге, на экран будет выведен символ 'h'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы