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.
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ànhgardenRoomvàgardenRoom.exits["south"]thànhstartingRoom - 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
exitscủa phòng hiện tại hay không - Nếu khớp, cập nhật
player.currentRoomthà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", đặtgameRunningthànhfalseđể 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
2Các hàm khác của thư viện table
table.concat()Tạo table và unpack()table.sort()Sắp xếp tùy chỉnh bằng hàmÔn tập: Bảng điểm cao5Dự án: Bộ máy trò chơi phiêu lưu bằng văn bản
Thiết lập dự án: Căn phòngLiên kết các phòngTự luyện tập: Trình biên dịch Lua online