Menangani Gerakan Tidak Valid
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 30 dari 54.
Tantangan
MudahTambahkan penanganan error ke sistem pergerakan untuk memberikan umpan balik saat pemain memasukkan arah yang tidak valid.
Kamu diberikan variabel startingRoom, gardenRoom, dan player dari tantangan sebelumnya.
Ubah perulangan game untuk menangani perintah pergerakan yang tidak valid:
- Ganti exit timur/barat dari tantangan sebelumnya dengan exit utara/selatan: atur
startingRoom.exits["north"]menjadigardenRoom, dangardenRoom.exits["south"]menjadistartingRoom - Cetak deskripsi ruangan pemain saat ini
- Cetak prompt
"> "(tanda lebih besar dari yang diikuti spasi) tanpa baris baru - Baca perintah pengguna menggunakan
io.read() - Periksa apakah perintah cocok dengan key dalam tabel
exitsruangan saat ini - Jika cocok, perbarui
player.currentRoommenjadi ruangan yang tersimpan di exit tersebut - Jika perintah tidak cocok dengan exit mana pun dan bukan
"quit", cetak"You can't go that way." - Jika perintahnya adalah
"quit", aturgameRunningmenjadifalseuntuk keluar dari perulangan
Perulangan harus berlanjut sampai pengguna mengetik "quit".
Format Output yang Diharapkan:
You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> You can't go that way.
A hidden garden with overgrown plants and a small fountain.
> You find yourself in a dusty library filled with ancient books and scrolls.
> Coba sendiri
-- Definisi ruangan
local startingRoom = {
description = "You find yourself in a dusty library filled with ancient books and scrolls.",
exits = {}
}
local gardenRoom = {
description = "A hidden garden with overgrown plants and a small fountain.",
exits = {}
}
-- TODO: Hubungkan ruangan-ruangan dengan pintu keluar ke utara/selatan
-- Pemain
local player = {
currentRoom = startingRoom
}
-- Perulangan permainan
local gameRunning = true
-- TODO: Tulis while loop di sini
Semua pelajaran di Logika dan Alur
1Iterasi Tabel Tingkat Lanjut
Iterasi dengan pairs()Iterasi dengan ipairs()pairs() vs. ipairs()Rangkuman: Lembar Karakter2Fungsi library tabel Lainnya
table.concat()Pembuatan tabel & unpack()table.sort()Pengurutan Kustom dengan FungsiRangkuman, Papan Skor Tertinggi5Proyek: Mesin Petualangan Teks
Persiapan Proyek: RuanganMenghubungkan RuanganLatihan sendiri: Compiler Lua online