Di chuyển người chơi
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 29 trên 54.
Thử thách
DễTriển khai hệ thống di chuyển để người chơi có thể đi giữa các phòng bằng cách kiểm tra lệnh nhập vào với những lối ra hiện có.
Bạn được cung cấp các biến startingRoom, gardenRoom và player từ thử thách trước.
Chỉnh sửa vòng lặp trò chơi để xử lý các lệnh di chuyển:
- Phần khởi tạo kết nối các phòng: đi
easttừ thư viện sẽ đến khu vườn, còn điwestsẽ quay lại - In mô tả về 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 là
"quit", đặtgameRunningthànhfalseđể thoát vòng lặp
Vòng lặp sẽ tiếp tục cho đến khi người dùng nhập "quit".
Lưu ý: Vì io.write("> ") không thêm ký tự xuống dòng, dòng đầu ra tiếp theo (mô tả phòng) xuất hiện ngay sau lời nhắc trên cùng một dòng trong luồng đầu ra thô. Mỗi lần lặp tạo ra: mô tả phòng trên một dòng riêng, sau đó là > không có ký tự xuống dòng, vì vậy mô tả tiếp theo sẽ tiếp tục trên cùng dòng đó.
Định dạng đầu ra dự kiến (đầu vào: east, sau đó quit):
You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> 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 = {}
}
-- Thiết lập lối ra theo hướng đông và hướng tây
startingRoom.exits = {
east = gardenRoom
}
gardenRoom.exits = {
west = startingRoom
}
-- 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