Menggerakkan Pemain
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 29 dari 54.
Tantangan
MudahImplementasikan sistem pergerakan yang memungkinkan pemain berpindah antarruangan dengan mencocokkan input mereka dengan pintu keluar yang tersedia.
Kamu diberi variabel startingRoom, gardenRoom, dan player dari tantangan sebelumnya.
Ubah perulangan game agar menangani perintah pergerakan:
- Bagian awal menghubungkan ruangan:
eastdari perpustakaan menuju taman, danwestmengarah kembali - Cetak deskripsi ruangan pemain saat ini
- Cetak prompt
"> "(tanda lebih besar diikuti spasi) tanpa baris baru - Baca perintah pengguna menggunakan
io.read() - Periksa apakah perintah cocok dengan kunci di tabel
exitsruangan saat ini - Jika cocok, perbarui
player.currentRoomke ruangan yang tersimpan di pintu keluar tersebut - Jika perintahnya
"quit", aturgameRunningkefalseuntuk keluar dari perulangan
Perulangan harus terus berjalan sampai pengguna mengetik "quit".
Catatan: Karena io.write("> ") tidak menambahkan baris baru, baris output berikutnya (deskripsi ruangan) langsung muncul setelah prompt pada baris yang sama di aliran output mentah. Setiap iterasi perulangan menghasilkan deskripsi ruangan pada barisnya sendiri, lalu > tanpa baris baru, sehingga deskripsi berikutnya berlanjut pada baris yang sama.
Format Output yang Diharapkan (input: east, lalu quit):
You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> 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 = {}
}
-- Atur pintu keluar menggunakan east / west
startingRoom.exits = {
east = gardenRoom
}
gardenRoom.exits = {
west = startingRoom
}
-- 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