Язык СИ, блекджек. Помогите написать код
Надо написать часть программы, которая умеет играть в карты. Карты в колоде из 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)); |
Часовой пояс GMT +4, время: 14:28. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.