Menu
Coddy logo textTech

Çıkışları Görüntüleme

Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 31 / 54.

challenge icon

Görev

Kolay

Oda açıklamasını gösterdikten sonra oyuncuya mevcut tüm çıkışları görüntüleyerek oyunun kullanıcı deneyimini geliştirin.

Önceki görevden alınan startingRoom, gardenRoom ve player değişkenleri size sağlanmıştır.

Mevcut çıkışları görüntülemek için oyun döngüsünü değiştirin:

  • Oyuncunun bulunduğu odanın açıklamasını yazdırın
  • Yeni bir satıra "Exits:" yazdırın
  • Mevcut odanın exits tablosunda gezinmek için pairs() kullanın
  • Her çıkış için " - " (iki boşluk, bir tire ve bir boşluk) ve ardından yön adını yazdırın
  • Yeni satır eklemeden "> " (büyüktür işareti ve ardından bir boşluk) istemini yazdırın
  • io.read() kullanarak kullanıcının komutunu okuyun
  • Komutun mevcut odanın exits tablosundaki bir anahtarla eşleşip eşleşmediğini kontrol edin
  • Eğer eşleşirse, player.currentRoom değerini o çıkışta saklanan oda ile güncelleyin
  • Komut herhangi bir çıkışla eşleşmiyorsa ve "quit" değilse, "You can't go that way." yazdırın
  • Komut "quit" ise, döngüden çıkmak için gameRunning değerini false olarak ayarlayın

Döngü, kullanıcı "quit" yazana kadar devam etmelidir.

Beklenen Çıktı Formatı:

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
> 

Kendin dene

-- 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

Logic & Flow bölümündeki tüm dersler