• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Язык СИ, блекджек. Помогите написать код

vyacheslav4157

Ученик
Регистрация
19 Дек 2014
Сообщения
1
Реакции
0
Баллы
0
Язык СИ, блекджек. Помогите написать код

Надо написать часть программы, которая умеет играть в карты. Карты в колоде из 52 карт можно хранить в виде структуры

struct Card
{
char rank; // достоинство
char suit; // масть
};
Масти кодируются как 'c' (clubls - трефы), 's' (spades - пики), 'h' (hearts - червы) и 'd' (diamond - бубны).
Достоинство кодируется как '2', '3', '4', '5', '6', '7', '8', '9', 'T' (ten - десять), 'J' (валет), 'Q' (дама), 'K' (король), 'A' (туз).
В этой нотации дама пик и король бубен записываются как QsKd.
Реализуйте функцию, которая проверяет, четное или нечетное количество очков по правилам игры блекджек в переданной руке.
int check (struct Card * hand);

hand - указатель на массив карт, последняя карта в котором имеет достоинство 0 (именно 0, а не '0', это ложная карта, используется только для обозначения конца массива).
Функция возвращает количество очков в руке по правилам игры блекджек.
Значения очков каждой карты:
от двойки до десятки — соответственно от 2 до 10,
у туза — 1 или 11 (11 пока общая сумма не больше 21, далее 1),
у т. н. картинок (король, дама, валет) — 10.
Функцию main реализовывать НЕ нужно. Проверку корректности аргументов не делать. Структуру описывать не нужно.
Можно использовать существущие две глобальные переменные:
char * const suite = "cshd";
char * const rank = "23456789TJQKA";
Пример использования функции
struct Card [] hand1 = {{'Q', 's'}, {'A','h'}, {'9', 'd'}, {0, 0}};
struct Card * p; // напечатает QsAh9d
for (p=hand; p->rank != 0; p++)
{
printf("%c%c", p->rank, p->suit);
}
printf("\n"); // проверяем
printf("%d\n", check(hand));
 
Назад
Сверху