Входные данные:
Во-первых,
массив из трех карт, представляющих карты, сыгранные каждым игроком, отформатированные как
[JD][TH][9S]
представляющий
Jack of Diamonds, 10 of Hearts, and Nine of Spades.
Поскольку вы всегда сидите напротив своего напарника в Euchre, второй элемент представляет игру вашего напарника. Здесь TH
.
Во-вторых,
A Single Char, String и т. Д., Представляющие костюм козыря, отформатированный как
S, D, C, H
представляющий
Spades, Diamonds, Clubs, Hearts
В-третьих, массив из четырех карт, представляющих вашу руку, отформатированный как
[KD][JC][QH][AS]
представляющий
King of Diamonds, Jack of Clubs, Queen of Hearts, Ace of Spades
Задача:
Учитывая три входа, выведите наилучшую возможную карту для добавления к сыгранным картам так, чтобы она соответствовала следующим критериям:
- Он берет руку, если может, если не выдает наименее ценную карту
- Он берет руку, если может, но не одолеет вашего товарища по команде, если это неизбежно.
- Если он может взять руку, он использует наименее ценную карту. (Если у вас есть туз и дама, которая может выиграть руку, вы играете дама).
- Любые игры должны следовать примеру, как того требуют правила внизу.
Формат вывода как [JD]
Форматирование
A - Ace
K - King
Q - Queen
J - Jack
T - Ten
9 - Nine
H - Hearts
D - Diamonds
S - Spades
C - Clubs
TH, 9D, JD, QH, AD, 9C, TC
Примеры
В: [QD][KD][9C]
, "C"
,[AH][JH][QH][9H]
Вне: 9H
Причина: поскольку козыри являются козырными, 9C выигрывает, мы не можем взять руку, поэтому мы должны сбросить самую низкую карту, здесь 9H
В: [QD][KD][AD]
, "H"
,[AH][JH][QH][9H]
Вне: 9H
Причина: Поскольку Сердца козыри, туз Алмазов в настоящее время выигрывает руку, мы можем превзойти руку, поэтому мы должны использовать нашу низшую карту, здесь 9H
В: [QD][KD][TD]
, "D"
,[AD][JH][QH][9D]
Вне: 9D
Причина: Как алмазы козырь , и мы в настоящее время выигрыш руки, мы должны играть 9D , потому что наш партнер в настоящее время завоевывает руку, поэтому мы хотим , чтобы играть 9D
надAD
В: [QH][KH][JH]
, "D"
,[AD][JD][QH][9D]
Вне: QH
Причина: поскольку Алмазы козыри, наши оппоненты побеждают с левым Бауэром. JH
У нас есть правый бауэр, но мы не можем его превзойти, потому что QH вел, и мы должны последовать его примеру,QH
В: [QH][KH][JH]
, "D"
,[AD][JD][QC][9D]
Вне: JD
Причина: поскольку Алмазы козыри, наши противники побеждают с левой Боуэром. JH
У нас есть правильная беседка, и, так как у нас ее нет, Diamonds
мы можем победить его с помощьюJD
Сильные стороны Euchre Card
Если червы козыри
JH
JD
AH
KH
QH
TH
9H
Смотрите правила Euchre, если вы не знакомы с силой различных карт в Euchre
Так как это Code-Golf, выигрывает самый короткий код!
Удачи и получайте удовольствие!
источник
9D
результатом приводит к тому, что сердца являются козырями (хотя я не думаю, что это влияет на этот результат).Ответы:
Perl -
557 532 511 490 482 384363Как это устроено
Попробуйте онлайн!
Сначала он читает args и находит костюм левого Бауэра (домкрат того же цвета, что и Трамп) с поиском хеша:
Затем он объединяет все карты в одну строку и выполняет некоторые замены, заставляя карты естественно сортироваться в правильном порядке для euchre:
В конце этого блока строка карт разделяется на скобки, что создает массив всех карт, где:
индекс 0 = ведущая карта противника
индекс 1 = карточка товарища по команде
индекс 2 = карта другого противника
индексы 3-6 представляют руку
Главная масть анализируется с первой карты, но масть меняется на '0', чтобы представлять козырь, если козырь был проведен:
Наилучшая играемая карта определяется путем сортировки первых трех карт и получения первой карты:
Играбельные карты найдены. Если какие-либо карты в руке соответствуют масти, то остаются только эти карты. В противном случае все карты считаются играбельными:
Карта одноразового использования определяется путем возврата последней карты в отсортированном массиве играбельных карт:
Наименьшая «выигрышная» карта, которая может выиграть трюк, определяется путем добавления самой высокой карты в игре к массиву играемых карт, сортировки массива и повторения по ней до тех пор, пока не будет найдена самая высокая карта в игре. «Выигрышная» карта - это карта предыдущей итерации:
Затем оценивается правильная игра. Карта одноразового использования выбирается, если выполняется одно из следующих условий:
В противном случае возвращается «выигрышная» карта:
источник