Oyuncuyu Hareket Ettirme
Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 29 / 54.
Görev
KolayOyuncunun mevcut çıkışlara karşı girdisini kontrol ederek odalar arasında gezinmesini sağlayan hareket sistemini uygulayın.
Önceki görevden startingRoom, gardenRoom ve player değişkenleri size sağlanmıştır.
Hareket komutlarını işlemek için oyun döngüsünü değiştirin:
- Oyuncunun mevcut odasının açıklamasını yazdırın
- Satır sonu olmadan
"> "istemini (ardından bir boşluk gelen büyüktür işareti) yazdırın io.read()kullanarak kullanıcının komutunu okuyun- Komutun mevcut odanın
exitstablosundaki bir anahtarla eşleşip eşleşmediğini kontrol edin - Eşleşiyorsa
player.currentRoomdeğerini o çıkışta saklanan odayla güncelleyin - Komut
"quit"ise döngüden çıkmak içingameRunningdeğerinifalseolarak ayarlayın
Kullanıcı "quit" yazana kadar döngü devam etmelidir.
Not: io.write("> ") satır sonu eklemediğinden, bir sonraki çıktı satırı (oda açıklaması) ham çıktı akışında istemin hemen ardından aynı satırda görünür. Her döngü yinelemesi şunları üretir: kendi satırında oda açıklaması, ardından satır sonu 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
-- 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
endMantı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