Обработка пользовательского ввода
Часть раздела Логика и управление потоком путешествия по Lua на Coddy. Урок 28 из 54.
Задание
ЛегкоРасширьте игровой цикл, чтобы считывать и отображать команды пользователя с помощью io.read().
Вам предоставлены переменные startingRoom, gardenRoom и 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Попробуйте сами
-- Игровые комнаты
local startingRoom = {
description = "You find yourself in a dusty library filled with ancient books and scrolls."
}
local gardenRoom = {
description = "You step into a beautiful garden with blooming flowers and a gentle breeze."
}
-- Игрок
local player = {
currentRoom = startingRoom
}
-- Игровой цикл
local gameRunning = true
-- TODO: Напишите здесь цикл while
Все уроки раздела Логика и управление потоком
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордов5Проект: Движок текстового квеста
Настройка проекта: КомнатаСоединение комнатПотренируйтесь самостоятельно: Онлайн-компилятор Lua