Menampilkan Pintu Keluar
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 31 dari 54.
Tantangan
MudahTingkatkan pengalaman pengguna dalam game dengan menampilkan semua pintu keluar yang tersedia kepada pemain setelah menampilkan deskripsi ruangan.
Kamu diberikan variabel startingRoom, gardenRoom, dan player dari tantangan sebelumnya.
Ubah perulangan game untuk menampilkan pintu keluar yang tersedia:
- Tampilkan deskripsi ruangan pemain saat ini
- Tampilkan
"Exits:"pada baris baru - Gunakan
pairs()untuk menelusuri tabelexitsdari ruangan saat ini - Untuk setiap pintu keluar, tampilkan
" - "(dua spasi, tanda hubung, dan satu spasi), diikuti nama arah - Tampilkan prompt
"> "(tanda lebih besar dari diikuti satu spasi) tanpa baris baru - Baca perintah pengguna menggunakan
io.read() - Periksa apakah perintah cocok dengan sebuah kunci dalam tabel
exitsdari ruangan saat ini - Jika cocok, perbarui
player.currentRoommenjadi ruangan yang tersimpan pada pintu keluar tersebut - Jika perintah tidak cocok dengan pintu keluar mana pun dan bukan
"quit", tampilkan"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.
Exits:
- east
>
A hidden garden with overgrown plants and a small fountain.
Exits:
- west
>
You can't go that way.
A hidden garden with overgrown plants and a small fountain.
Exits:
- west
>
You find yourself in a dusty library filled with ancient books and scrolls.
Exits:
- east
> Coba sendiri
-- Room definitions
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 = {}
}
-- Connect rooms
startingRoom.exits["north"] = gardenRoom
gardenRoom.exits["south"] = startingRoom
-- Player
local player = {
currentRoom = startingRoom
}
-- Game loop
local gameRunning = true
while gameRunning do
print(player.currentRoom.description)
io.write("> ")
local command = io.read()
if command == "quit" then
gameRunning = false
elseif player.currentRoom.exits[command] then
player.currentRoom = player.currentRoom.exits[command]
else
print("You can't go that way.")
end
endSemua 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