Для отримання більшої кількості MtG-доброти: Магія: Збір боротьби зі здібностями
Приміщення:
У Magic: The Gathering, ви кидаєте заклинання, сплачуючи їх ману, натискаючи землі на необхідну суму. Ці землі можуть виробляти один з п'яти кольорів, які:
- Білий (Вт)
- Синій (U)
- Чорний (B)
- Червоний (R)
- Зелений (G)
Вартість складається з двох частин: числа, що є загальною вимогою до мани, і серії символів, що представляють вимогу кольорової мани. Кількість - це загальна вартість мани, і вона може використовувати будь-який колір мани, щоб задовольнити її, наприклад, за неї (3)
можна заплатити WGG
. Символи є вимогою 1: 1 до певного кольору. наприклад WWUBR
, знадобиться 2 білих мани, 1 синій, 1 чорний і 1 червоний. Родова частина завжди буде перед кольоровою частиною. Нагадування (0)
- це дійсна вартість і з нею потрібно звертатися.
Ви можете мати витрати, які є загальними, або повністю кольоровими, або обома. Наприклад, наступна картка має вартість 4BB і оплачується 4 манами будь-якого кольору та 2 чорними манами:
Землі в цьому виклику будуть виробляти одну ману. Однак ми розглянемо землі, які можуть давати кілька кольорів, але все одно дають лише 1 ману. Наприклад, G
дасть зелена мана, WG
може дати 1 білий або 1 зелений.
Вхід:
Вам нададуть два входи, вартість картки та список земель.
Вартість картки може бути або рядком, або кортежем, що містить число та рядок для кольорової частини. Якщо немає загальної частини, можна наклеїти рядок / кортеж 0.
Список земельних ділянок - це список рядків, де кожен із них може створювати дану землю. Цей список може бути порожнім (у вас немає земель). Ви також можете взяти це як список вкладень за допомогою логіки бітових масок, але розмістіть свою схему, якщо це зробити. Замовлення також залежить від вас, якщо це має значення, інакше воно буде прийнято в WUBRG
порядку.
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
Вихід:
truthy
Значення , якщо ви можете успішно оплатити вартість даної ваші земель і falsey
значення , якщо ви не можете.
Правила:
- Вам буде гарантовано дійсне введення
- Мана буде вважатись завжди в порядку "WUBRG". Якщо ви хочете іншого порядку, вкажіть це у своїй відповіді.
- Кольори завжди будуть згруповані у вартості, наприклад, "WWUBBRG"
- Для введення буде використано або всі великі регістри, або всі малі регістри, на ваш вибір.
- Ви повинні мати можливість обробляти регулярні вирази
127[WUBRG]{127}
та 254 землі. - Стандартні лазівки заборонені
- Це є код-гольф, виграє найкоротша відповідь на кожну мову
Приклади:
"0", ("") => 1
"1BB", ("WG","B","B") => 1
"BB", ("WG","B","B") => 1
"WB", ("WG","B","B") => 1
"1UB", ("W","U","B") => 1
"1BB", ("WB","WB","WG") => 1
"1", ("WG","B","B") => 1
"1BB", ("WGR","WB","WB") => 1
"WUBRG", ("W","U","B","R","G") => 1
"1WWUBB", ("W","WG","U","B","B","R") => 1
"10BB", ("WGR","WB","WB","B","B","B","B","B","B","B","B","B") => 1
"R", ("") => 0
"4", ("WG","B","B") => 0
"1BB", ("WG","WB") => 0
"1UB", ("WG","W","UB") => 0
"1UBR", ("W","WG","UBR") => 0
"WUBRG", ("WUBRG") => 0
"1WWUBB", ("W","WG","U","B","B") => 0
"10UU", ("WGR","WB","WB","B","B","B","B","B","B","B","B","B") => 0