Untuk kebaikan MtG lainnya: Sihir: The Gathering Combat with Abilities
Tempat:
Di Magic: the Gathering, Anda menggunakan mantra dengan membayar biaya mana dengan mengetuk tanah untuk jumlah yang diperlukan. Tanah ini dapat menghasilkan salah satu dari lima warna yaitu:
- Putih (w)
- Biru (u)
- Hitam (B)
- Merah (r)
- Hijau (g)
Biaya terdiri dari dua bagian: angka yang merupakan persyaratan mana generik, dan serangkaian simbol yang mewakili persyaratan mana berwarna. Angka tersebut adalah biaya mana generik dan dapat menggunakan warna mana saja untuk memenuhinya, misalnya (3)
dapat dibayar dengan WGG
. Simbol adalah persyaratan 1: 1 untuk warna tertentu. misalnya WWUBR
akan membutuhkan 2 mana putih, 1 biru, 1 hitam dan 1 merah. Bagian Generik akan selalu datang sebelum bagian Berwarna. Sebagai pengingat, (0)
adalah biaya yang valid dan harus ditangani.
Anda dapat memiliki biaya yang sepenuhnya generik, atau sepenuhnya berwarna, atau keduanya. Sebagai contoh, kartu berikut memiliki biaya 4BB dan dibayar dengan 4 mana pun berwarna dan 2 mana hitam:
Tanah di tantangan ini masing-masing akan menghasilkan satu mana. Namun, kami akan mempertimbangkan lahan yang dapat menghasilkan banyak warna tetapi masih hanya menghasilkan 1 mana. Misal G
akan menghasilkan mana hijau, WG
bisa menghasilkan 1 putih atau 1 hijau.
Memasukkan:
Anda akan diberikan dua input, biaya kartu dan daftar tanah.
Biaya kartu dapat berupa string, atau tuple yang berisi angka dan string untuk bagian berwarna. Jika tidak ada bagian generik, Anda dapat mengisi string / tuple dengan 0.
Daftar tanah akan menjadi daftar string di mana masing-masing adalah apa yang dapat dihasilkan oleh tanah tertentu. Daftar ini dapat kosong (Anda tidak memiliki tanah). Anda juga dapat menganggap ini sebagai daftar int menggunakan bit-mask logic tetapi memposting skema Anda jika Anda melakukannya. Pesanan juga terserah Anda jika itu penting, jika tidak maka akan dianggap sesuai WUBRG
pesanan.
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
Keluaran:
Sebuah truthy
nilai jika Anda berhasil dapat membayar biaya diberikan tanah Anda dan falsey
nilai jika Anda tidak bisa.
Aturan:
- Anda akan dijamin input yang valid
- Mana akan dianggap selalu dalam urutan "WUBRG". Jika Anda menginginkan urutan yang berbeda, nyatakan demikian dalam jawaban Anda.
- Warna akan selalu dikelompokkan dalam biaya, mis. "WWUBBRG"
- Input akan menggunakan semua huruf besar atau semua huruf kecil, pilihan Anda.
- Anda harus dapat menangani regex
127[WUBRG]{127}
dan 254 tanah. - Celah standar dilarang
- Ini adalah kode-golf , jawaban terpendek per menang bahasa
Contoh:
"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