Menu
Coddy logo textTech

Обработка пользовательского ввода

Часть раздела Логика и управление потоком путешествия по Lua на Coddy. Урок 28 из 54.

challenge icon

Задание

Легко

Расширьте игровой цикл, чтобы считывать и отображать команды пользователя с помощью 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

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Lua