Geçersiz Hamleleri Ele Alma
Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 30 / 54.
Görev
KolayOyuncu geçersiz bir yön girdiğinde geri bildirim sağlamak için hareket sistemine hata işleme ekleyin.
Önceki mücadeleden startingRoom, gardenRoom ve player değişkenleri size verilmiştir.
Geçersiz hareket komutlarını işleyecek şekilde oyun döngüsünü değiştirin:
- Önceki mücadelenin doğu/batı çıkışlarını kuzey/güney çıkışlarıyla değiştirin:
startingRoom.exits["north"]değerinigardenRoomolarak,gardenRoom.exits["south"]değerini isestartingRoomolarak ayarlayın - Oyuncunun bulunduğu odanın açıklamasını yazdırın
- Yeni satır eklemeden
"> "istemini (büyüktür işareti ve ardından bir boşluk) yazdırın - Kullanıcının komutunu
io.read()kullanarak okuyun - Komutun mevcut odanın
exitstablosundaki bir anahtarla eşleşip eşleşmediğini kontrol edin - Eşleşirse
player.currentRoomdeğerini bu çıkışta saklanan odayla 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çingameRunningdeğerinifalseolarak ayarlayın
Döngü, kullanıcı "quit" yazana kadar devam etmelidir.
Beklenen Çıktı Biçimi:
You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> You can't go that way.
A hidden garden with overgrown plants and a small fountain.
> You find yourself in a dusty library filled with ancient books and scrolls.
> 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 = {}
}
-- TODO: Odaları kuzey/güney çıkışlarıyla birbirine bağla
-- 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
1İleri Düzey Tablo Yineleme
pairs() ile Yinelemeipairs() ile Yinelemepairs() vs. ipairs()Özet - Karakter Sayfası2Daha Fazla Tablo Kütüphanesi Fonksiyonu
table.concat()Tablo Oluşturma ve unpack()table.sort()Fonksiyonlar ile Özel SıralamaÖzet - Yüksek Skor Tablosu5Proje: Metin Tabanlı Macera Motoru
Proje Kurulumu: OdaOdaları BağlamaKendi başına pratik yap: Online Lua derleyicisi