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

TUZ_5-01_Определение выигрышной карты

TUZ_5-01_Определение выигрышной карты

TUZ_5-01_Определение выигрышной карты
5.1. Определение выигрышной карты
Среди карточных игр есть игра с четырьмя игроками, в которой каждому игроку сдается одна карта и затем они по очереди вскрывают свои карты.
В игре может назначаться или не назначаться козырная масть: «трефы», «пики», «червы» или «бубны».
Достоинства карт определяются в порядке убывания так: «туз» > «король» > «дама» > «валет» > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 > 2 > 1.
Победитель в игре определяется по следующим правилам:
        1. Если в игре есть козыри, то выигрывает игрок, имеющий козырь с наибольшим достоинством.
        2. Если в игре нет козырей, то выигрывает игрок, имеющий карту с наивысшим достоинством и с мастью,
            совпадающей с мастью карты, которая была вскрыта первой.
Например, если игрокам сданы карты
[(тройка, трефы), (король, пики), (дама, трефы), (валет, червы)] и козырями являются трефы,
то выигрывает игрок с картой (дама, трефы) как обладающий козырной картой наибольшего достоинства.
Другой пример: игрокам сданы карты
[(четверка, бубны), (туз, трефы), (четверка, пики), (король, трефы)] и в игре нет козырей.
В таком случае выигрывает игрок с картой (четверка, бубны), потому что у других игроков
карты другой масти и они не могут побить первую карту.
Ваша задача: написать функцию, которая принимает список карт в раздаче и возвращает выигравшую карту.
В табл. 5.1 показаны ожидаемые результаты для некоторых входных данных.
Таблица 5.1. Некоторые ожидаемые результаты для задачи определения выигрышной карты
Cards, trump Ожидаемый результат
three, clubs
king, spades
queen, clubs
jack, hearts
clubs
queen, clubs
 
four, diamonds
ace, clubs,
four, spades
king, clubs
None
four, diamonds
eight, hearts
three, diamonds
nine, spades
queen, hearts
None
queen, hearts

Алгоритм
Для каждой масти – пики (spades), червы (hearts), бубны (diamonds) и трефы (clubs) –
рограмма сохраняет соответствующие ранги и сортирует их в соответствии с правилами,
используя алгоритм пузырьковой сортировки.
На следующем этапе программа выбирает карту с самым высоким рангом на основе следующих критериев:
если козырная карта указана на входе, то выбирается первая козырная карта с самым высоким рангом.
Если козырная карта не указана, то выбирается первая карта с самым вы- соким рангом.


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