Обработка пользовательского ввода
Часть раздела Логика и управление потоком путешествия по Lua на Coddy. Урок 28 из 54.
Задание
ЛегкоРасширьте игровой цикл, чтобы считывать и отображать команды пользователя с помощью io.read().
Вам предоставлены переменные startingRoom, gardenRoom и player из предыдущего задания.
Измените игровой цикл так, чтобы он:
- Выводил описание текущей комнаты player
- Выводил приглашение
"> "(знак «больше», за которым следует пробел) без перевода строки: используйтеio.write()вместоprint(), посколькуio.write()выводит текст, не добавляя перевод строки в конце - Считывал команду пользователя с помощью
io.read() - Выводил
"You entered: ", а затем command, введённую пользователем - Проверял, является ли command значением
"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Проект: Движок текстового квеста
Настройка проекта: КомнатаСоединение комнатПотренируйтесь самостоятельно: Онлайн-компилятор Lua