Per ulteriori qualità MTG: Magic: The Gathering Combat with Abilities
Premessa:
In Magic: the Gathering, lanci incantesimi pagando il loro costo di mana toccando terre per l'importo richiesto. Queste terre possono produrre uno dei cinque colori che sono:
- Bianco (W)
- Blu (U)
- Nero (B)
- Rosso (R)
- Verde (G)
Il costo è composto da due parti: un numero che è il requisito di mana generico e una serie di simboli che rappresentano il requisito di mana colorato. Il numero è il costo di mana generico e può utilizzare qualsiasi colore di mana per soddisfarlo, ad esempio (3)
può essere pagato con WGG
. I simboli sono un requisito 1: 1 di un colore specifico. per esempio WWUBR
richiederebbe 2 mana bianchi, 1 blu, 1 nero e 1 rosso. La parte generica verrà sempre prima della parte colorata. Come promemoria, (0)
è un costo valido e deve essere gestito.
Puoi avere costi del tutto generici, completamente colorati o entrambi. Ad esempio, la seguente carta ha un costo di 4BB e viene pagata con 4 di qualsiasi mana colorato e 2 di mana nero:
Le terre in questa sfida produrranno ognuna un mana. Tuttavia, considereremo le terre che possono produrre più colori ma che producono comunque solo 1 mana. Ad esempio G
produrrà un mana verde, WG
può produrre 1 bianco o 1 verde.
Ingresso:
Ti verranno dati due input, il costo di una carta e un elenco di terre.
Il costo della carta può essere una stringa o una tupla contenente un numero e una stringa per la parte colorata. Se non c'è una parte generica, puoi riempire la stringa / tupla con uno 0.
L'elenco delle terre sarà un elenco di stringhe in cui ognuna è ciò che una determinata terra può produrre. Questo elenco può essere vuoto (non hai terre). Puoi anche prenderlo come un elenco di ints usando la logica della maschera di bit ma, se lo fai, pubblica il tuo schema. L'ordine dipende anche da te se è importante, altrimenti verrà assunto in WUBRG
ordine.
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
Produzione:
Un truthy
valore se riesci a pagare con successo il costo dato alle tue terre e un falsey
valore se non puoi.
Regole:
- Ti verrà garantito un input valido
- Si presume che Mana sia sempre nell'ordine "WUBRG". Se vuoi un ordine diverso, dichiaralo nella tua risposta.
- I colori saranno sempre raggruppati nel costo, ad esempio "WWUBBRG"
- Input utilizzerà tutte le lettere maiuscole o tutte minuscole, a scelta.
- Dovresti essere in grado di gestire regex
127[WUBRG]{127}
e 254 terre. - Scappatoie standard vietate
- Questo è code-golf , la risposta più breve per lingua vince
Esempi:
"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