Продажа зелья
Часть раздела Fundamentals путешествия по Lua на Coddy — урок 82 из 90.
Задание
ЛегкоЗавершите свой проект магазина зелий, реализовав систему торговых транзакций. Опираясь на функциональность поиска, создайте систему, которая обрабатывает продажу зелья, уменьшая количество на складе и предоставляя подтверждение транзакции.
Будут предоставлены следующие входные данные:
- Строка, содержащая название зелья для продажи
Используйте числовой цикл for для итерации по таблице inventory, чтобы найти указанное зелье. Когда вы найдете подходящее зелье с помощью оператора равенства ==, уменьшите его значение stock на 1, чтобы имитировать продажу.
После обновления запасов выведите подтверждающее сообщение, показывающее название зелья и его новый уровень запасов в формате:
Sold 1 [potion name]
Remaining stock: [new stock count]Используйте конкатенацию строк, чтобы объединить описательный текст с названием зелья и обновленным количеством на складе. После обработки продажи используйте оператор break для выхода из цикла.
Попробуйте сами
-- Inventory table with potion data
inventory = {
{name = "Health Potion", price = 15, stock = 8},
{name = "Mana Potion", price = 12, stock = 5},
{name = "Strength Potion", price = 25, stock = 3},
{name = "Speed Potion", price = 18, stock = 2}
}
-- Read the potion name to search for
search_name = io.read()
-- Use a numeric for loop to search through the inventory
for i = 1, #inventory do
if inventory[i].name == search_name then
print("Found: " .. inventory[i].name)
print("Price: " .. inventory[i].price .. " gold")
print("Stock: " .. inventory[i].stock .. " units")
break
end
endВсе уроки раздела Fundamentals
4Операторы 2: Сравнение и логика
Операторы равенстваОператоры сравненияОператор 'and'Оператор 'or'Оператор 'not'Сокращенные вычисленияЗначения Truthy и FalsyИтоги: Простая логика7Основы условной логики
Оператор if-thenОператор if-then-elseОператор elseifИтоги — Сундук с сокровищами10Таблицы, часть 1: Списки
Что такое таблица?Создание таблицыДоступ к элементам по индексуИзменение элементов по индексуОператор длины '#'table.insert()table.remove()Итоги: управление участниками группы13Проект: Простой магазин зелий
Настройка проектаДобавление зелья2Переменные и типы данных
Что такое переменная?ЧислаСтрокиБулевы значенияЗначение 'nil'Функция type()Правила именованияИтоги — Профиль персонажа5Базовый вывод
Вывод литераловВывод переменныхВывод нескольких значенийОбъединение строк и переменныхФункция tostring()ВводПриведение типовПовторение — Отчет о состоянииПовторение — До 1208Основы работы со строками
string.len()string.upper и string.lowerstring.sub()string.rep()string.find()Повторение — Форматирование имени пользователя3Операторы 1: Арифметика и конкатенация
Арифметические операторыОператор остатка от деленияОператор возведения в степеньКонкатенация строкПриоритет операторовПовторение: Простые вычисления6Проект: Вывод характеристик персонажа
Приветственное сообщениеОбъявление характеристик персонажа9Основы функций
Объявление функцииВызов функцииФункции с параметрамиФункции с несколькими параметрамиОператор 'return'Повторение — Калькулятор площади