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 WWUBRakan 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 Gakan menghasilkan mana hijau, WGbisa 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 WUBRGpesanan.
#Example input formats
"4BB", ("WG","B","B") #
(4,"BB"), (7,3,3) #Both should return falsy
Keluaran:
Sebuah truthynilai jika Anda berhasil dapat membayar biaya diberikan tanah Anda dan falseynilai 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
