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:

  1. Memilih bilangan bulat acak dari 1 sampai 100 (disebut target), yang disembunyikan dari pemain.
  2. Berulang kali:
    • Meminta pemain untuk menebak.
    • Membaca tebakan.
    • Mencetak Too low., Too high., atau Correct! berdasarkan perbandingan tebakan dengan target.
    • Menghitung jumlah percobaan.
  3. 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 ... until cocok dipakai di sini: bagian tubuhnya meminta tebakan sekali, lalu baris until mengecek apakah tebakan sudah sama dengan target.
  • Penghitung percobaan adalah variabel yang diset ke 0 sebelum perulangan dan ditambah 1 di dalam tubuh perulangan.
  • Tebakan datang sebagai teks. Jalankan dulu melalui tonumber sebelum 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.