Menu
CoddyTech

Menampilkan Pintu Keluar

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 31 dari 54.

challenge icon

Tantangan

Mudah

Tingkatkan 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 tabel exits dari 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 exits dari ruangan saat ini
  • Jika cocok, perbarui player.currentRoom menjadi 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", atur gameRunning menjadi false untuk 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
end

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online