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: ", а затем команду, введенную пользователем
  • Проверьте, равна ли команда "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

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