Мені подобаються виклики в карткові ігри, тому я зробив цю для італійської карткової гри Scopa. Моя сім'я грає в цю гру споконвіку. Він має дуже цікаву систему підрахунку балів, яка повинна приємно грати в гольф. Я опублікую відповідь в R, щоб почати веселощі, що я впевнений, що люди покращаться.
Завдання: визначити кількість очок, набраних у раунді Scopa, з урахуванням карт, які гравець захопив під час раунду як вхід.
У колоді Scopa 40 карт. Якщо ви використовуєте міжнародну колоду, ви видалите 8s, 9s та 10s, залишаючи A, 2,3,4,5,6,7, Q, J, K у кожному костюмі. 1 Є два гравці або товариства, і після кожного раунду всі карти в кінцевому підсумку захоплюються одним або іншим з двох гравців. Оцінка рахується наступним чином (більше інформації тут ):
- Гравець з найбільшою кількістю карт набирає 1 бал.
- Гравець з найбільшою кількістю алмазів (або монет, якщо використовує італійську колоду) набирає 1 бал.
- Гравець із 7 діамантами (або монетами), відомим як сет-белло або прекрасна сімка, набирає 1 бал.
- Гравець з найвищими рівнями отримує 1 бал. Оцінка гравця за пер'єєра - це сума балів картки найвищої вартості, яку гравець взяв у кожному костюмі (див. Таблицю нижче). Якщо у вас немає хоча б однієї картки в кожному костюмі, ви програєте за замовчуванням, навіть якщо ваш рахунок перевищить бал вашого опонента. У надзвичайно рідкісному випадку, коли жоден гравець не має принаймні по одній картці у кожному костюмі, гравець із вищим рівнем першості отримує бал. 2
Таблиця балів примірії
| Rank | Value |
| ----- | ----- |
| 7 | 21 |
| 6 | 18 |
| A | 16 |
| 5 | 15 |
| 4 | 14 |
| 3 | 13 |
| 2 | 12 |
| Q,J,K | 10 |
Таким чином, гравець може набрати максимум 4 очки в раунді. 3 Якщо є краватка, яка можлива для карт, діамантів чи примірії , ніхто не забиває балів.
Важливо усвідомити, що оскільки кожна картка повинна бути захоплена одним із двох гравців, ви можете зробити висновки, які картки повинен був взяти інший гравець, навіть якщо ви знаєте лише, які картки взяв один гравець. Вам потрібно буде це зробити, щоб правильно забити оцінити праймері .
Правила виклику
Вхідні дані
Ваш код повинен приймати як вхідні картки, захоплені одним гравцем під час раунду Scopa.
Введення має бути в рядковому форматі, в якому один символ представляє ранг кожної картки, а один символ - її масть. Це видаляє потенційну лазівку проходженнябалів праймера безпосередньо як вхід. Конверсія карт звань primiera оцінки повинні бути зроблені в програмі. Однак ви можете використовувати один рядок, розділений пробілами чи комами, масив рядків або будь-який інший формат. Наприклад, якщо ви вирішили кодувати ранги як76A5432QJK
і підходить, якDCHS
ви могли використовувати входи, такі як['7D', '6H', 'QD', 'JS']
або'7D,6H,QD,JS'
.
Вихідні дані
Ціле число від 0 до 4, що представляє рахунок гравця.
Перемога
Найкоротша відповідь у байтах виграє!
Тестові справи
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "7C", "6C", "4C", "3C", "2C", "7H", "4H", "2H", "5S", "3S", "QS", "JS", "KS"]
Оцінки 4 : 1 бал за> 20 карток, 1 бал за> 5 алмазів, 1 бал за 7 алмазів і 1 бал за 78 балів у примірії (7,7,7,5, де у суперника 7,6,5, К для 64)
["3D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "QC", "4H", "7S"]
Оцінки 0 : <= 20 карт, <5 алмазів, не 7 алмазів, і лише 69 в примірії (7,7,4,3, де у суперника 7,7,6, K на 70)
[7D", "6D", "AD", "5D", "4D", "3D", "2D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "7H", "6H", "AH", "5H", "4H", "3H", "2H"]
Оцінки 3 : 1 бал за> 20 карток, 1 бал за> 5 алмазів, 1 бал за 7 алмазів. Primiera буде 63 (7,7,7) і противник може тільки набрати 51 (7, Q, Q, Q) , але так як ця рука не має лопат вона втрачає точку за замовчуванням.
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH", "QS"]
Оцінки 3 : <= 20 карток, 1 бал за> 5 алмазів, 1 бал за 7 алмазів. Primiera тільки бали 51 (7, Q, Q, Q) , і противник може набрати 63 (7,7,7) , але так як рука опонента не має алмазів ця рука виграє primiera точку за замовчуванням.
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "7C", "7H"]
Оцінки 3 : <= 20 карток, 1 бал за> 5 алмазів, 1 бал за 7 алмазів. Незважаючи на те, що ця рука не має лопат, вона все одно виграє праймері на результат від 63 до 57 (7,7,7 проти 7,6,6), оскільки рука суперника не має алмазів.
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH"]
Оцінки 2 : <= 20 карток, 1 бал за> 5 алмазів, 1 бал за 7 алмазів. У цієї руки немає лопат, а в руці суперника немає діамантів. Суперник виграє пер'єра з рахунком від 63 до 41 (7,7,7 проти 7, Q, Q).
[]
(порожній масив)
Оцінки 0
1: Принаймні, в нашій родині Джек випереджає королеву в Скопі, але це не має значення для цілей озброєння.
2: Я граю в цю гру з дитинства і ніколи не бачив, щоб це сталося, але ваш код краще міг би впоратися з цим випадком!
3: Є бонусні бали за "зачистки", набрані під час раунду, які я ігнорую з метою цього виклику.