Menu
CoddyTech

Menggerakkan Pemain

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

challenge icon

Tantangan

Mudah

Implementasikan sistem pergerakan yang memungkinkan pemain berpindah antarruangan dengan mencocokkan input mereka dengan pintu keluar yang tersedia.

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

Ubah perulangan game agar menangani perintah pergerakan:

  • Bagian awal menghubungkan ruangan: east dari perpustakaan menuju taman, dan west mengarah kembali
  • Cetak deskripsi ruangan pemain saat ini
  • Cetak prompt "> " (tanda lebih besar diikuti spasi) tanpa baris baru
  • Baca perintah pengguna menggunakan io.read()
  • Periksa apakah perintah cocok dengan kunci di tabel exits ruangan saat ini
  • Jika cocok, perbarui player.currentRoom ke ruangan yang tersimpan di pintu keluar tersebut
  • Jika perintahnya "quit", atur gameRunning ke false untuk keluar dari perulangan

Perulangan harus terus berjalan sampai pengguna mengetik "quit".

Catatan: Karena io.write("> ") tidak menambahkan baris baru, baris output berikutnya (deskripsi ruangan) langsung muncul setelah prompt pada baris yang sama di aliran output mentah. Setiap iterasi perulangan menghasilkan deskripsi ruangan pada barisnya sendiri, lalu > tanpa baris baru, sehingga deskripsi berikutnya berlanjut pada baris yang sama.

Format Output yang Diharapkan (input: east, lalu quit):

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

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 = {}
}

-- Atur pintu keluar menggunakan east / west
startingRoom.exits = {
  east = gardenRoom
}

gardenRoom.exits = {
  west = startingRoom
}

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