Обработка пользовательского ввода
Часть раздела Логика и управление потоком путешествия по Lua на Coddy — урок 28 из 54.
Задание
ЛегкоРасширьте игровой цикл, чтобы считывать и выводить команды пользователя с помощью io.read().
Вам предоставляются переменные startingRoom, gardenRoom и player из предыдущего испытания.
Измените игровой цикл следующим образом:
- Выведите описание текущей комнаты игрока (
player) - Выведите приглашение к вводу
"> "(знак «больше» с последующим пробелом) без перехода на новую строку — используйтеio.write()вместоprint(), так какio.write()выводит текст без добавления символа новой строки в конце - Считайте команду пользователя с помощью
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Все уроки раздела Логика и управление потоком
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордов5Проект: Движок текстового квеста
Настройка проекта: КомнатаСоединение комнат