Para obtener más bondad de MtG: Magic: The Gathering Combat with Habilities
Premisa:
En Magic: the Gathering, lanzas hechizos pagando su costo de maná tocando tierras por la cantidad requerida. Estas tierras pueden producir uno de los cinco colores que son:
- Blanco (W)
- Azul (U)
- Negro (B)
- Rojo (R)
- Verde (G)
El costo se compone de dos partes: un número que es el requisito de maná genérico y una serie de símbolos que representan el requisito de maná de color. El número es el costo de maná genérico y puede usar cualquier color de maná para satisfacerlo, por ejemplo, (3)
se puede pagar WGG
. Los símbolos son un requisito 1: 1 de un color específico. por ejemplo WWUBR
, requeriría 2 maná blanco, 1 azul, 1 negro y 1 rojo. La parte genérica siempre vendrá antes que la parte coloreada. Como recordatorio, (0)
es un costo válido y debe ser manejado.
Puede tener costos que sean completamente genéricos, o completamente coloreados, o ambos. Por ejemplo, la siguiente carta tiene un costo de 4BB y se paga con 4 de cualquier maná de color y 2 de maná negro:
Las tierras en este desafío producirán cada una un maná. Sin embargo, consideraremos tierras que pueden producir múltiples colores pero que solo producen 1 maná. Por ejemplo G
, producirá un maná verde, WG
puede producir 1 blanco o 1 verde.
Entrada:
Se le darán dos entradas, el costo de una tarjeta y una lista de tierras.
El costo de la tarjeta puede ser una cadena o una tupla que contiene un número y una cadena para la parte coloreada. Si no hay una parte genérica, puede rellenar la cadena / tupla con un 0.
La lista de tierras será una lista de cadenas donde cada una es lo que puede producir una tierra determinada. Esta lista puede estar vacía (no tienes tierras). También puede tomar esto como una lista de entradas usando la lógica de máscara de bits, pero publique su esquema si lo hace. El orden también depende de usted si es importante, de lo contrario se supondrá en WUBRG
orden.
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
Salida:
Un truthy
valor si puede pagar con éxito el costo dado sus tierras y un falsey
valor si no puede.
Reglas:
- Se le garantizará una entrada válida
- Se supondrá que Mana siempre estará en el orden "WUBRG". Si desea un orden diferente, indíquelo en su respuesta.
- Los colores siempre se agruparán en el costo, por ejemplo, "WWUBBRG"
- La entrada utilizará todas las mayúsculas o todas las minúsculas, a su elección.
- Deberías poder manejar expresiones regulares
127[WUBRG]{127}
y 254 tierras. - Lagunas estándar prohibidas
- Este es el código de golf , la respuesta más corta por idioma gana
Ejemplos:
"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