Статья Автор: Лебедев Дмитрий

TUZ_5-03 Получение сокращенного представления карт в раздаче в игре «Контрактный бридж»

TUZ_5-03 Получение сокращенного представления карт в раздаче в игре «Контрактный бридж»

TUZ_5-03 Получение сокращенного представления карт в раздаче в игре «Контрактный бридж»
5.3. Получение сокращенного представления карт в раздаче в игре «Контрактный бридж»
В игре «Контрактный бридж» (или просто бридж) каждому игроку раздается по тринадцать карт.
Достоинства этих карт можно сократить для создания более понятного визуального представления.
Цель состоит в том, чтобы найти соответствующие сокращения для каждого достоинства, причем порядок карт всегда следующий:
пики (spades), червы (hearts), буб- ны (diamonds) и трефы (clubs).
Для обозначения достоинств используются следующие символы:
«A» обозначает туза (от англ. «ace» – «туз»), «K» – короля (от англ. «king» – «король»),
«Q» – даму (от англ. «queen» – «королева», или «дама»), «J» – валета (от англ. «jack» – «валет»),
и числа обозначают все остальные достоинства.
Ваша задача: написать функцию, которая принимает список из тринадцати карт и возвращает
его сокращенную форму в порядке «AQKJx», где «x» представляет числа, причем числа не требуется упорядочивать по их величине,
а если карты какой-то масти отсутствуют в раздаче, то в соответствующую позицию должен быть помещен знак «–».
В табл. 5.3 показаны ожидаемые результаты для некоторых входных данных.
Таблица 5.3. Некоторые ожидаемые результаты для задачи получения сокращенной формы представления карт в игре «Контрактный бридж»
Cards  Ожидаемый_результат
three, clubs
ten, spades
jack, hearts
five, hearts
jack, clubs
two, diamonds
eight, hearts
eight, clubs
three, spades
ace, hearts
jack, spades
king, diamonds
six, hearts
Jxx AJxxx Kx Jxx

Алгоритм
Алгоритм сначала кодирует достоинства карт каждой масти в виде числовых значений,
где тузу присваивается наименьшее значение (0), а числовому достоинству «х»
(независимо от его фактической величины) – самое высокое значение (4).
Затем вызывается алгоритм пузырьковой сортировки,
чтобы отсортировать карты каждой масти в порядке возрастания их закодированного значения.
И в заключение закодированные значения заменяются соответствующими сокращенными именами карт:
«A» для туза, «K» для «короля» и т. д.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать