Menu
CoddyTech

Xử lý các bước di chuyển không hợp lệ

Thuộc phần Logic và luồng chương trình trong hành trình Lua của Coddy. Bài học 30 trên 54.

challenge icon

Thử thách

Dễ

Thêm xử lý lỗi vào hệ thống di chuyển để thông báo khi người chơi nhập hướng không hợp lệ.

Bạn được cung cấp các biến startingRoom, gardenRoom và player từ thử thách trước.

Sửa đổi vòng lặp trò chơi để xử lý các lệnh di chuyển không hợp lệ:

  • Thay các lối ra phía đông/tây của thử thách trước bằng lối ra north/south: gán startingRoom.exits["north"] thành gardenRoom và gardenRoom.exits["south"] thành startingRoom
  • In mô tả phòng hiện tại của người chơi
  • In lời nhắc "> " (dấu lớn hơn theo sau là một dấu cách) mà không xuống dòng
  • Đọc lệnh của người dùng bằng io.read()
  • Kiểm tra xem lệnh có khớp với một khóa trong bảng exits của phòng hiện tại hay không
  • Nếu khớp, cập nhật player.currentRoom thành phòng được lưu trong lối ra đó
  • Nếu lệnh không khớp với bất kỳ lối ra nào và không phải là "quit", in "You can't go that way."
  • Nếu lệnh là "quit", đặt gameRunning thành false để thoát khỏi vòng lặp

Vòng lặp sẽ tiếp tục cho đến khi người dùng nhập "quit".

Định dạng đầu ra dự kiến:

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

Tự làm thử

-- Định nghĩa các phòng
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: Kết nối các phòng bằng lối ra phía bắc và phía nam

-- Người chơi
local player = {
    currentRoom = startingRoom
}

-- Vòng lặp trò chơi
local gameRunning = true

-- TODO: Viết vòng lặp while ở đây

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Lua online