1. Главная
  2. Библиотека
  3. Программирование
  4. Надо написать часть программы, которая умеет играть в к...
Разбор задачи

Надо написать часть программы, которая умеет играть в карты. Карты в колоде из 52 карт можно хранить в виде структуры Масти кодируются как 'с' (сlubls - крести), 's' (spades - пики), 'h' (hearts - червы) и 'd' (diamond - бубны). Достоинство кодируется как

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Надо написать часть программы, которая умеет играть в карты. Карты в колоде из 52 карт можно хранить в виде структуры Масти кодируются как 'с' (сlubls - крести), 's' (spades - пики), 'h' (hearts - червы) и 'd' (diamond - бубны). Достоинство кодируется как

Условие:

Надо написать часть программы, которая умеет играть в карты. Карты в колоде из 52 карт можно хранить в виде структуры
```
struct Card {
char rank; // достоинство
char suit; // масть
};
```


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

hand - указатель на массив карт, последняя карта в котором имеет достоинство 0 (именно 0 , а не '0', это ложная карта, используется только для обозначения конца масси Функция возвращает 1, если в руке есть 5 карт одной масти, иначе возвращает 0. Например.

Решение:

  1. Объявляем четыре переменные-счетчика для каждой масти: clubs (крести – 'c'), spades (пики – 's'), hearts (червы – 'h') и diamonds (бубны – 'd'). Каждый счетчик инициализируем нулем.

  2. Далее организуем цикл, который проходит по массиву карт. В качестве условия выхода из цикла проверяем, что значение достоинства (rank) не равно 0 (это специальный маркер конца массива).

  3. Для каждой карты анализируем её масть. С помощью конструкции switch (или if-else) увеличиваем соответствующий счетчик на
    1.

  4. После пр...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой подход наиболее эффективен для определения наличия флеша (пяти карт одной масти) в руке, представленной массивом структур Card?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет