Mini-proyek Bagian 4: Game Tebak Angka
Proyek ini menggabungkan semua ide dari Bagian 3 dan 4: variabel, input, perbandingan, percabangan, perulangan. Hasilnya adalah sebuah game kecil yang benar-benar interaktif.
Yang harus dibuat
Sebuah program yang, saat dijalankan:
- Memilih bilangan bulat acak dari 1 sampai 100 (disebut target), yang disembunyikan dari pemain.
- Berulang kali:
- Meminta pemain untuk menebak.
- Membaca tebakan.
- Mencetak
Too low.,Too high., atauCorrect!berdasarkan perbandingan tebakan dengan target. - Menghitung jumlah percobaan.
- Saat tebakan cocok, mencetak berapa kali percobaan yang dibutuhkan, lalu berhenti.
Contoh sesi permainan:
I am thinking of a number between 1 and 100.
Guess: 50
Too high.
Guess: 25
Too low.
Guess: 37
Too high.
Guess: 31
Too low.
Guess: 34
Correct! You got it in 5 attempts.
File-file
Versi starter dan versi selesai ada di
projects/03-number-guess/:
starter.lua— kerangka kode dengan komentar TODO.finished.lua— versi yang sudah berjalan. Bandingkan dengan punyamu setelah selesai.
Jalankan dengan:
lua projects/03-number-guess/starter.lua
Petunjuk
math.random(1, 100)memilih targetnya. Panggil sekali saja, sebelum perulangan. Di dalam perulangan, targetnya tetap sama.- Perulangan
repeat ... untilcocok dipakai di sini: bagian tubuhnya meminta tebakan sekali, lalu barisuntilmengecek apakah tebakan sudah sama dengan target. - Penghitung percobaan adalah variabel yang diset ke
0sebelum perulangan dan ditambah1di dalam tubuh perulangan. - Tebakan datang sebagai teks. Jalankan dulu melalui
tonumbersebelum membandingkan.
Yang belum bisa dipakai
- Tabel. Tidak perlu menyimpan riwayat tebakan.
- Fungsi buatanmu sendiri. Game ini cukup ditulis dalam satu skrip lurus.
- Panggilan khusus Roblox. Ini masih program terminal.
Tantangan lebih besar (opsional)
Kalau versi dasarnya sudah jalan, coba salah satu ini:
- Setelah tiga tebakan salah, cetak petunjuk yang menyebutkan apakah targetnya genap atau ganjil.
- Lacak tebakan tertinggi dan terendah sejauh ini, lalu cetak
rentangnya di setiap ronde, seperti
(known range: 32 to 49).
Tidak ada yang wajib untuk menganggap proyek ini selesai.
Sudah selesai?
Saat game berjalan lancar dari awal sampai akhir — memilih target, menerima tebakan, memberi umpan balik, dan diakhiri dengan jumlah percobaan — Bagian 4 sudah tuntas. Lanjut ke Bab 21 — Fungsi.