Menu
CoddyTech

Oyuncuyu Hareket Ettirme

Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 29 / 54.

challenge icon

Görev

Kolay

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

Önceki mücadeleden startingRoom, gardenRoom ve player değişkenleri size verilmiştir.

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

  • Başlangıç kodu odaları birbirine bağlar: kütüphaneden east bahçeye, west ise geri döndürür
  • Oyuncunun bulunduğu odanın açıklamasını yazdırın
  • İstem metnini "> " (büyüktür işareti ve ardından bir boşluk) yeni satır olmadan yazdırın
  • Kullanıcının komutunu io.read() ile okuyun
  • Komutun, bulunduğunuz odanın exits tablosundaki bir anahtarla eşleşip eşleşmediğini kontrol edin
  • Eşleşiyorsa, player.currentRoom değerini bu çıkışta kayıtlı odayla güncelleyin
  • Komut "quit" ise, döngüden çıkmak için gameRunning değerini false olarak ayarlayın

Kullanıcı "quit" yazana kadar döngü devam etmelidir.

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

Beklenen Çıktı Biçimi (girdiler: önce 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

-- Oda tanımları
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 = {}
}

-- Çıkışları east / west kullanarak ayarla
startingRoom.exits = {
  east = gardenRoom
}

gardenRoom.exits = {
  west = startingRoom
}

-- Oyuncu
local player = {
  currentRoom = startingRoom
}

-- Oyun döngüsü
local gameRunning = true

-- TODO: while döngüsünü buraya yaz

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi