Für mehr MtG-Güte: Magie: Der Sammelkampf mit Fähigkeiten
Prämisse:
In Magic: the Gathering zauberst du Zauber, indem du ihre Manakosten bezahlst, indem du Land für den erforderlichen Betrag tippst. Diese Länder können eine der fünf Farben erzeugen, die sind:
- Weiß (W)
- Blau (U)
- Schwarz (B)
- Rot (R)
- Grün (G)
Die Kosten setzen sich aus zwei Teilen zusammen: einer Zahl, die die allgemeine Manaanforderung darstellt, und einer Reihe von Symbolen, die die farbige Manaanforderung darstellen. Die Zahl gibt die generischen Manakosten an und kann jede Manafarbe verwenden, um sie zu befriedigen, z. B. (3)
kann mit bezahlt werden WGG
. Die Symbole sind eine 1: 1-Anforderung einer bestimmten Farbe. zB WWUBR
würde 2 weißes Mana, 1 blaues, 1 schwarzes und 1 rotes erfordern. Der generische Teil steht immer vor dem farbigen Teil. Zur Erinnerung, (0)
ist eine gültige Kosten und muss behandelt werden.
Sie können Kosten haben, die ganz allgemein oder ganz farbig sind oder beides. Zum Beispiel kostet die folgende Karte 4BB und wird mit 4 farbigen Manas und 2 schwarzen Manas bezahlt:
Länder in dieser Herausforderung produzieren jeweils ein Mana. Wir werden jedoch Länder betrachten, die mehrere Farben erzeugen können, aber dennoch nur 1 Mana liefern. ZB G
erzeugt ein grünes Mana, WG
kann entweder 1 Weiß oder 1 Grün produzieren.
Eingang:
Sie erhalten zwei Eingaben, die Kosten einer Karte und eine Liste der Länder.
Die Kosten der Karte können entweder eine Zeichenfolge oder ein Tupel sein, das eine Zahl und eine Zeichenfolge für den farbigen Teil enthält. Wenn es keinen generischen Teil gibt, können Sie den String / das Tupel mit einer 0 auffüllen.
Die Landliste ist eine Liste von Zeichenfolgen, in denen jede einzelne das ist, was ein bestimmtes Land produzieren kann. Diese Liste kann leer sein (Sie haben kein Land). Sie können dies auch als Liste von Ints mithilfe der Bitmaskenlogik verwenden, aber wenn Sie dies tun, veröffentlichen Sie Ihr Schema. Die Bestellung liegt auch bei Ihnen, wenn es darauf ankommt, andernfalls wird sie in der richtigen WUBRG
Reihenfolge angenommen .
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
Ausgabe:
Ein truthy
Wert, wenn Sie die Kosten für Ihr Land erfolgreich bezahlen können, und ein falsey
Wert, wenn Sie dies nicht können.
Regeln:
- Ihnen wird eine gültige Eingabe garantiert
- Mana wird immer in der Reihenfolge "WUBRG" angenommen. Wenn Sie eine andere Reihenfolge wünschen, geben Sie dies in Ihrer Antwort an.
- Farben werden immer in den Kosten gruppiert, zB "WWUBBRG"
- Bei der Eingabe werden entweder Großbuchstaben oder Kleinbuchstaben Ihrer Wahl verwendet.
- Sie sollten in der Lage sein, mit Regex
127[WUBRG]{127}
und 254 Ländern umzugehen . - Standardlücken verboten
- Dies ist Code-Golf , die kürzeste Antwort pro Sprache gewinnt
Beispiele:
"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