Menu
Coddy logo textTech

Oyuncuyu Hareket Ettirme

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

challenge icon

Görev

Kolay

Oyuncunun girişlerini mevcut çıkışlarla karşılaştırarak odalar arasında gezinmesini sağlayan hareket sistemini uygulayın.

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

Hareket komutlarını işlemek için oyun döngüsünü (game loop) değiştirin:

  • Oyuncunun bulunduğu mevcut odanın açıklamasını yazdırın
  • Yeni bir satır eklemeden "> " istemini (büyüktür işareti ve ardından bir boşluk) 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
  • Eğer 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.

Not: io.write("> ") yeni bir satır eklemediği için, bir sonraki çıktı satırı (oda açıklaması) ham çıktı akışında istemden hemen sonra aynı satırda görünür. Her döngü yinelemesi şunları üretir: kendi satırında oda açıklaması, ardından yeni satır olmadan > , böylece sonraki açıklama aynı satırda devam eder.

Beklenen Çıktı Formatı (girdiler: east, ardından quit):

You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> 

Kendin dene

-- Game rooms
local startingRoom = {
    description = "You find yourself in a dusty library filled with ancient books and scrolls."
}

local gardenRoom = {
    description = "You step into a beautiful garden with blooming flowers and a gentle breeze."
}

-- Player
local player = {
    currentRoom = startingRoom
}

-- Game loop
local gameRunning = true

while gameRunning do
    print(player.currentRoom.description)
    io.write("> ")
    local command = io.read()
    print("You entered: " .. command)
    
    if command == "quit" then
        gameRunning = false
    end
end

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