Sunting : Saya belum pernah bermain D & D sebelumnya jadi ketika saya awalnya membuat pertanyaan ini saya tidak benar meneliti itu. Saya minta maaf untuk ini, dan saya membuat beberapa pengeditan yang mungkin membatalkan jawaban untuk tetap setepat mungkin pada aturan 5nd. Maaf.
Penggemar D & D dari Hot Network Question baru-baru ini tampaknya memiliki masalah untuk mengetahui apakah mantra yang dipilih oleh penyihir sejajar dengan kemungkinan - dan saya pikir kita harus membantu!
pengantar
(semua ini sudah dijelaskan dalam pertanyaan yang disebutkan sebelumnya)
Seorang penyihir tahu dua mantra level 1 dari awal (level 1): [1, 1]
Setiap kali penyihir mendapatkan level (kecuali untuk level 12, 14, 16, 18, 19 dan 20) mereka belajar mantra baru (wajib).
Selain itu, ketika naik level seseorang dapat memilih (opsional) untuk mengganti salah satu mantra dengan yang lain.
Mantra yang dipelajari dan diganti haruslah level slot mantera yang valid yang setengah dari level penyihirmu dibulatkan. Lihat tabel ini:
Sorcerer level Highest spell level possible
1 1
2 1
3 2
4 2
5 3
6 3
7 4
8 4
9 5
10 5
11 6
12 6
13 7
14 7
15 8
16 8
17 9
18 9
19 9
20 9
Ini berarti pada level 3 seseorang dapat memiliki level mantra [1, 1, 2, 2]
seperti ini:
Level 1: [1, 1] (initial)
Level 2: [1, 1, 1 (new)]
Level 3: [1, 1, 2 (replaced), 2 (new)]
Tidak perlu memilih mantra level tertinggi yang bisa Anda akses.
Level mantra [1, 1, 1, 1]
sangat valid untuk level 3.
Terakhir, ingat bahwa mengganti mantra adalah opsi opsional untuk setiap level . Ini berarti bahwa beberapa level dapat melewati penggantian, sementara yang lain memanfaatkannya.
Tantangan
Buat program atau fungsi yang membutuhkan bilangan bulat (level) antara 1 dan 20.
Itu juga harus mengambil array bilangan bulat (level mantra) dengan nilai mulai dari 1 hingga 9 dalam urutan apa pun (9 adalah level mantra maksimum).
Output dari program harus berupa nilai kebenaran / kepalsuan yang memvalidasi jika level mantra yang dipilih valid untuk penyihir dari level yang diberikan.
Uji kasus
Level: 1
Spells: [1, 1]
Output: true
Level: 8
Spells: [1, 1, 2, 3, 3, 5]
Ouput: false
Reason: A level 8 can't ever have access to a level 5 spell.
Level: 5
Spells: [1, 1, 1, 2, 2, 2, 3]
Output: false
Reason: A level 5 can't have access to 7 spells
Level: 11
Spells: [3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6]
Output: false
Reason: Too many spell upgrades.
The highest valid selection for level 11 is
[3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6]
Ini adalah kode-golf - byte terkecil menang!
[2,2,3,3]
tidak akan mungkin terjadi karena membutuhkan lebih banyak penggantian daripada penyihir level itu yang akan memiliki akses." - bukankah fakta bahwa daftar itu panjangnya 4 daripada alasan yang lebih mendasar di sini? (Saya berasumsi [1,3,2,2,3]
mungkin untuk level 4 dengan pergi dari level 3 [1,1,2(replaced),2(new)]
ke [1,3(replaced),2,2,3(new)]
?)