Mini-proyek Bagian 4: Batu-Gunting-Kertas
Proyek kedua di Bagian 4 ini adalah permainan klasik. Kamu ketik
batu, gunting, atau kertas; komputer memilih secara acak; program
menentukan siapa yang menang. Ini menggabungkan angka acak,
if/elseif/else, dan
and/or — program pertamamu yang dimainkan
melawan komputer.
Yang harus dibuat
Sebuah program yang, ketika dijalankan:
- Meminta pemain mengetik
rock,paper, atauscissors. - Memilih gerakan komputer secara acak.
- Mencetak apa yang dipilih komputer.
- Mencetak hasilnya: seri, menang, kalah, atau keterangan jika gerakan tidak valid.
Aturan menang adalah aturan biasa:
- batu mengalahkan gunting,
- kertas mengalahkan batu,
- gunting mengalahkan kertas.
Contoh sesi permainan:
Choose rock, paper, or scissors: rock
The computer chose scissors.
You win!
File
Versi starter dan versi jadi ada di
projects/rock-paper-scissors/:
starter.lua— prompt sudah ditulis, dengan komentar TODO untuk tiga langkahnya.finished.lua— versi yang sudah berjalan. Baca setelah kamu mencoba punyamu sendiri.
Jalankan dengan:
lua projects/rock-paper-scissors/starter.lua
Petunjuk
math.random(1, 3)menghasilkan1,2, atau3. Ubah menjadi kata denganif/elseif/else.- Periksa pilihan yang tidak valid terlebih dahulu: jika kata yang
diketik bukan salah satu dari ketiganya, beri tahu pemain dan hentikan
program.
player ~= "rock" and player ~= "paper" and player ~= "scissors"bernilai true hanya jika tidak ada yang cocok. - Tes kemenangan adalah tiga kasus yang digabung dengan
or, masing-masing merupakananddari dua gerakan, sepertiplayer == "rock" and computer == "scissors".
Yang belum bisa digunakan
- Tabel (Bagian 5). Tiga cabang
ifmenggantikan daftar pilihan. - Fungsimu sendiri (Bagian 5). Seluruh permainan muat dalam satu skrip.
- Perulangan, kecuali kamu menambahkan fitur main-lagi di tantangan tambahan di bawah.
Tantangan lebih besar (opsional)
- Main lagi. Bungkus permainan dalam perulangan
while true do ... enddan berhenti ketika pemain mengetikquitalih-alih sebuah gerakan. - Catat skor. Lacak kemenangan dan kekalahan dalam dua variabel dan cetak rangkumannya setelah setiap ronde.
Keduanya tidak wajib untuk menyelesaikan proyek ini.
Sudah selesai?
Ketika permainan menerima gerakanmu, memilih gerakannya sendiri, dan mengumumkan hasil yang benar untuk seri, menang, kalah, dan input yang tidak valid, kamu sudah selesai. Lanjut ke Bab 21 — Fungsi, awal dari Bagian 5.