Saya mengalami kesulitan mengingat semua yang harus saya lakukan ketika menaikkan level karakter D & D. Untuk alasan apa pun, salah satu hal yang membuat saya kesulitan adalah mencari tahu berapa nilai maksimum HP yang seharusnya. Untuk tantangan ini, Anda akan menulis program atau fungsi untuk menghitung nilai yang benar secara otomatis.
Terminologi
Hal pertama yang perlu Anda ketahui tentang menghitung HP maks adalah "pengubah Konstitusi". Setiap karakter DND memiliki enam skor kemampuan integer, termasuk satu untuk Konstitusi. Satu-satunya pengetahuan yang relevan yang diperlukan untuk tantangan ini adalah bagaimana skor kemampuan Konstitusi mempengaruhi stat lain, yang merupakan pengubah Konstitusi. Singkatnya, pengubah sama dengan floor( (ability_score - 10) / 2 ). Petualang hanya dapat memiliki skor kemampuan dari 1 hingga 20, inklusif. Kode Anda tidak akan pernah harus menangani skor di luar rentang itu, yang juga berarti tidak akan pernah menangani pengubah yang lebih rendah dari -5 atau lebih besar dari +5. Meskipun pengubah Konstitusi dapat berubah saat karakter naik level, pengaruhnya terhadap HP diterapkan secara surut, jadi hanya nilai saat ini diperlukan untuk menghitung HP maksimum saat ini.
(Hal ini sepenuhnya tidak relevan dengan tantangan, tetapi jika Anda sedang ingin tahu tentang bagaimana hal itu mempengaruhi HP maksimum: Anda dapat mengasumsikan "Tough" feat menambahkan 2 ke karakter Konstitusi pengubah untuk tujuan perhitungan HP, karena itulah efektif apa yang dilakukannya (Itu bukan teks dari feat, tetapi perhitungan matematika persis sama. Anda tidak harus menangani feat ini dalam jawaban Anda.)
Selanjutnya, setiap kelas memiliki tipe "hit die" yang ditetapkan, yang terlibat dalam menghitung HP. Tabel berikut mencantumkan dadu hit untuk setiap kelas.
Sorcerer: d6
Wizard: d6
Bard: d8
Cleric: d8
Druid: d8
Monk: d8
Rogue: d8
Warlock: d8
Fighter: d10
Paladin: d10
Ranger: d10
Barbarian: d12
Akhirnya, level karakter. Semua yang mempengaruhi ini adalah berapa kali menambahkan nilai ke total berjalan di bagian berikut. Level karakter adalah bilangan bulat dari 1 hingga 20, inklusif 1 . Kode Anda tidak akan pernah harus menangani level di luar rentang itu. Untuk mencapai level n, karakter dimulai pada level 1 dan naik level n-1kali. Misalnya, karakter level 3 sampai di tempat mereka berada dengan menjadi karakter level 1 dan naik level dua kali.
Cara Menghitung Max HP
HP maksimum karakter sama dengan HP mereka di level 1 ditambah jumlah kenaikan yang mereka terima di setiap level.
Di level 1
Pada level 1, HP karakter sama dengan gulungan tertinggi yang mungkin ada pada die hit mereka (nomor atas nama die, bagi Anda yang tidak terbiasa dengan dadu yang memiliki lebih dari 6 sisi) ditambah pengubah Konstitusi mereka. Ingatlah bahwa ketika menghitung HP di tingkat selanjutnya, Anda dapat menganggap Konstitusi karakter selalu sama, karena bagian perhitungan ini dilakukan kembali setiap kali Konstitusi berubah.
Saat naik level
Setiap kali karakter naik level, mereka memiliki dua opsi. Mereka dapat menggulung salah satu dadu hit mereka atau mengambil rata-rata dadu yang mati (dibulatkan) Apa pun yang mereka pilih, pengubah Konstitusi mereka ditambahkan ke hasilnya. Total ini adalah jumlah yang meningkat HP mereka. Untuk tantangan ini, roll rata-rata selalu diambil, sehingga output bersifat deterministik. (Sekali lagi, jika Anda tidak terbiasa dengan> 6 sisi dadu, Anda dapat menghitung roll rata-rata dibulatkan sebagai (highest_possible_roll / 2) + 1.)
Ada satu pengecualian penting. HP maksimum karakter selalu meningkat setidaknya 1 setiap kali mereka naik level 2 . Jika instruksi dalam paragraf di atas akan menghasilkan peningkatan 0 atau kurang saat naik level, itu meningkat 1 sebagai gantinya.
Tantangan
Program atau fungsi Anda akan mengambil tiga input :
- Kelas karakter, sebagai string
- Level karakter
- Skor kemampuan Konstitusi karakter ( bukan pengubah)
Ini hanya akan menghasilkan satu hal: Karakter maksimum HP saat ini.
Contohnya
Setiap kombinasi input yang mungkin dan output terkaitnya dapat ditemukan di tautan ini. Demi memiliki sesuatu untuk dilihat di halaman ini, berikut adalah 30 kasus uji yang dipilih secara acak:
Barbarian, 15th level, 13 CON: 125
Rogue, 10th level, 18 CON: 93
Wizard, 15th level, 18 CON: 122
Wizard, 16th level, 1 CON: 16
Barbarian, 15th level, 7 CON: 80
Warlock, 15th level, 3 CON: 18
Ranger, 14th level, 1 CON: 18
Warlock, 3rd level, 14 CON: 24
Druid, 3rd level, 4 CON: 9
Cleric, 11th level, 5 CON: 25
Bard, 20th level, 11 CON: 103
Barbarian, 11th level, 13 CON: 93
Bard, 8th level, 19 CON: 75
Bard, 16th level, 17 CON: 131
Fighter, 10th level, 6 CON: 44
Monk, 10th level, 2 CON: 13
Cleric, 14th level, 17 CON: 115
Cleric, 6th level, 5 CON: 15
Rogue, 7th level, 13 CON: 45
Cleric, 4th level, 14 CON: 31
Rogue, 19th level, 15 CON: 136
Paladin, 13th level, 13 CON: 95
Cleric, 13th level, 15 CON: 94
Bard, 8th level, 5 CON: 19
Monk, 20th level, 11 CON: 103
Barbarian, 8th level, 20 CON: 101
Monk, 1st level, 4 CON: 5
Bard, 5th level, 17 CON: 43
Monk, 18th level, 7 CON: 57
Wizard, 17th level, 5 CON: 19
1. Sebenarnya, saya tidak berpikir ada aturan yang mengatakan 20 adalah level maksimum. Namun, 21 adalah titik di mana ada berhenti menjadi tabel dalam buku untuk memberi tahu Anda apa yang harus dari beberapa angka dalam aturan, termasuk jumlah pengalaman yang Anda butuhkan untuk mencapainya. Itu batas level yang cukup baik untuk saya.
2. Saya sebenarnya tidak berpikir ini benar dengan RAW. Saya bertanya pada rpg.se dan hal seperti itu sepertinya tidak ditulis di mana pun. Namun, Mike Mearls, desainer utama D&D, mentweetnya pada bulan Maret 2015 . Ini tidak otoritatif seperti yang Anda bisa berargumen tentang tweet dari pengembang peraturan utama Jeremy Crawford, tetapi itu adalah bukti bahwa itulah yang mereka maksudkan, jadi saya akan menggunakannya untuk tantangan ini.