Обработка пользовательского ввода
Часть раздела Logic & Flow путешествия по Lua на Coddy — урок 28 из 54.
Задание
ЛегкоРасширьте игровой цикл, чтобы считывать и отображать команды пользователя с помощью io.read().
Вам предоставлены переменные startingRoom, gardenRoom и player из предыдущего испытания.
Измените игровой цикл следующим образом:
- Выведите описание текущей комнаты игрока
- Выведите приглашение
"> "(знак «больше», за которым следует пробел) без перехода на новую строку - Считайте команду пользователя с помощью
io.read() - Выведите
"You entered: ", а затем команду, которую ввел пользователь - Проверьте, является ли команда
"quit"— если да, установитеgameRunningв значениеfalse, чтобы выйти из цикла
Цикл должен продолжаться до тех пор, пока пользователь не введет "quit".
Ожидаемый формат вывода:
You find yourself in a dusty library filled with ancient books and scrolls.
>
You entered: look
You find yourself in a dusty library filled with ancient books and scrolls.
>
You entered: east
You find yourself in a dusty library filled with ancient books and scrolls.
>
You entered: quitПопробуйте сами
-- Room definitions
local startingRoom = {
description = "You find yourself in a dusty library filled with ancient books and scrolls."
}
local gardenRoom = {
description = "You are in a beautiful garden with blooming flowers and a fountain."
}
-- Player definition
local player = {
currentRoom = startingRoom
}
-- Create game loop
local gameRunning = true
while gameRunning do
print(player.currentRoom.description)
gameRunning = false
endВсе уроки раздела Logic & Flow
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордов5Проект: Движок текстового квеста
Настройка проекта: КомнатаСоединение комнат