Pour plus de bonté MtG: Magic: The Gathering Combat with Abilities
Prémisse:
Dans Magic: the Gathering, vous lancez des sorts en payant leur coût de mana en engageant des terrains pour le montant requis. Ces terres peuvent produire l'une des cinq couleurs qui sont:
- Blanc (W)
- Bleu (U)
- Noir (B)
- Rouge (R)
- Vert (G)
Le coût est composé de deux parties: un nombre qui correspond à l'exigence de mana générique et une série de symboles représentant l'exigence de mana coloré. Le nombre est le coût de mana générique et peut utiliser n'importe quelle couleur de mana pour le satisfaire, par exemple (3)
peut être payé avec WGG
. Les symboles sont une exigence 1: 1 d'une couleur spécifique. Par exemple, WWUBR
il faudrait 2 manas blancs, 1 bleu, 1 noir et 1 rouge. La partie générique précédera toujours la partie colorée. Pour rappel, (0)
est un coût valable et doit être traité.
Vous pouvez avoir des coûts entièrement génériques, entièrement colorés ou les deux. Par exemple, la carte suivante a un coût de 4BB et est payée avec 4 mana de n'importe quelle couleur et 2 mana noir:
Les terrains de ce défi produiront chacun un mana. Cependant, nous considérerons les terrains qui peuvent produire plusieurs couleurs mais qui ne donnent toujours qu'un mana. Par exemple G
, produira un mana vert, WG
peut produire 1 blanc ou 1 vert.
Contribution:
Vous recevrez deux entrées, le coût d'une carte et une liste de terrains.
Le coût de la carte peut être soit une chaîne, soit un tuple contenant un nombre et une chaîne pour la partie colorée. S'il n'y a pas de partie générique, vous pouvez remplir la chaîne / tuple avec un 0.
La liste des terres sera une liste de chaînes où chacune correspond à ce qu'une terre donnée peut produire. Cette liste peut être vide (vous n'avez pas de terrain). Vous pouvez également prendre cela comme une liste d'entiers utilisant une logique de masque de bits, mais publier votre schéma si vous le faites. L'ordre dépend également de vous si cela est important, sinon il sera supposé dans l' WUBRG
ordre.
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
Production:
Une truthy
valeur si vous pouvez payer avec succès le coût étant donné vos terres et une falsey
valeur si vous ne le pouvez pas.
Règles:
- Vous aurez la garantie d'une entrée valide
- Le mana sera supposé être toujours dans l'ordre "WUBRG". Si vous souhaitez un ordre différent, indiquez-le dans votre réponse.
- Les couleurs seront toujours regroupées dans le coût, par exemple "WWUBBRG"
- L'entrée utilisera tout en majuscules ou en minuscules, selon votre choix.
- Vous devriez être capable de gérer des regex
127[WUBRG]{127}
et 254 terrains. - Failles standard interdites
- Ceci est le code-golf , la réponse la plus courte par langue gagne
Exemples:
"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