Mini-proyek Bagian 3: Lembar Karakter
Proyek ini merangkum seluruh Bagian 3: variabel, string, angka, dan input dari keyboard.
Program menanyakan beberapa hal tentang karakter game pengguna, lalu mencetak lembar karakter yang rapi berisi setiap jawaban ditambah satu nilai yang dihitung program itu sendiri.
Apa yang harus dibuat
Sebuah program yang, saat dijalankan:
Meminta lima informasi tentang karakter kepada pengguna:
- Name (teks)
- Class (teks, misalnya "Warrior", "Mage", "Rogue")
- Level (bilangan bulat)
- HP (bilangan bulat — hit point)
- MP (bilangan bulat — magic point)
Menghitung nilai bernama Power, dengan rumus ini:
power := hp + mp*2 + level*10Mencetak lembar karakter kurang lebih seperti ini:
+--------------------------------------+ | CHARACTER SHEET | +--------------------------------------+ | Name : Keiko | Class: Mage | Level: 7 | HP : 95 | MP : 60 | Power: 285 +--------------------------------------+
Lebar kotak tidak harus sama persis. Yang penting setiap nilai muncul dengan label, dan baris Power menampilkan nilai yang dihitung.
File
Starter dan versi jadi ada di
projects/02-character-sheet/:
starter.go— prompt nama sudah dikerjakan untukmu, dan sisanya disusun dengan komentar TODO. Selesaikan supaya lembar karakter tercetak di akhir. File ini bisa langsung dijalankan: file ini menanyakan nama dan mencetak satu baris pengganti, yang harus kamu ganti.finished.go— versi yang sudah berfungsi. Lihat setelah kamu mencoba punyamu.
Jalankan dengan:
go run projects/02-character-sheet/starter.go
Petunjuk
- Setiap prompt adalah
fmt.Print("Label: ")diikuti pembacaan. Pembacaan pertama mendeklarasikantextdengan:=, dan pembacaan berikutnya memakainya lagi dengan=. - Rapikan setiap baris dengan
strings.TrimSpace. Konversi nilai yang akan dihitung denganstrconv.Atoi, dan tambahkan"strconv"ke import. - Gunakan
fmt.Printfsepertifmt.Printf("| Name : %s\n", name)untuk baris berlabel — lebih rapi daripada menyambung string dengan+. - Untuk border,
strings.Repeat("-", 38)atau yang serupa menghemat pengetikan tanda hubung.
Apa yang belum boleh kamu gunakan
ifuntuk memeriksa input. Kalau pengguna mengetikabcuntuk HP, program menganggapnya0dan mencetak Power yang lebih rendah. Untuk sekarang tidak apa-apa.- Perulangan. Tulis setiap prompt secara lengkap.
- Fungsi buatanmu sendiri. Hanya
maindan fungsi library yang sudah kamu lihat yang dibutuhkan.
Selesai?
Kalau lembar karakter menampilkan setiap nilai dengan label dan baris Power menunjukkan jumlah yang benar, kamu selesai. Lanjut ke Bab 16 — if, else, dan switch, di mana programmu mulai mengambil keputusan.