Menu
CoddyTech

Menangani Gerakan Tidak Valid

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 30 dari 54.

challenge icon

Tantangan

Mudah

Tambahkan penanganan error ke sistem pergerakan untuk memberikan umpan balik saat pemain memasukkan arah yang tidak valid.

Kamu diberikan variabel startingRoom, gardenRoom, dan player dari tantangan sebelumnya.

Ubah perulangan game untuk menangani perintah pergerakan yang tidak valid:

  • Ganti exit timur/barat dari tantangan sebelumnya dengan exit utara/selatan: atur startingRoom.exits["north"] menjadi gardenRoom, dan gardenRoom.exits["south"] menjadi startingRoom
  • Cetak deskripsi ruangan pemain saat ini
  • Cetak prompt "> " (tanda lebih besar dari yang diikuti spasi) tanpa baris baru
  • Baca perintah pengguna menggunakan io.read()
  • Periksa apakah perintah cocok dengan key dalam tabel exits ruangan saat ini
  • Jika cocok, perbarui player.currentRoom menjadi ruangan yang tersimpan di exit tersebut
  • Jika perintah tidak cocok dengan exit mana pun dan bukan "quit", cetak "You can't go that way."
  • Jika perintahnya adalah "quit", atur gameRunning menjadi false untuk keluar dari perulangan

Perulangan harus berlanjut sampai pengguna mengetik "quit".

Format Output yang Diharapkan:

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

Coba sendiri

-- Definisi ruangan
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: Hubungkan ruangan-ruangan dengan pintu keluar ke utara/selatan

-- Pemain
local player = {
    currentRoom = startingRoom
}

-- Perulangan permainan
local gameRunning = true

-- TODO: Tulis while loop di sini

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online