Menu
CoddyTech

Vender una poción

Parte de la sección Fundamentos del Journey de Lua de Coddy. Lección 82 de 90.

challenge icon

Desafío

Fácil

Completa tu proyecto de tienda de pociones implementando un sistema de transacciones de venta. A partir de la funcionalidad de búsqueda, crea un sistema que procese la venta de una poción reduciendo la cantidad disponible y proporcionando una confirmación de la transacción.

Se proporcionará la siguiente entrada:

  • Una cadena que contiene el nombre de la poción que se va a vender

Reemplaza las impresiones de Found, Price y Stock del paso anterior por las de la venta, de modo que solo se impriman las dos líneas de venta de abajo. Lee el nombre de la poción con una sola llamada a io.read(): cada ejecución proporciona una línea de entrada.

Usa un bucle for numérico para recorrer la tabla inventory y encontrar la poción especificada. Cuando localices la poción correspondiente mediante el operador de igualdad ==, reduce su valor de stock en 1 para simular la venta.

Después de actualizar las existencias, imprime un mensaje de confirmación que muestre el nombre de la poción y su nuevo nivel de existencias con este formato:

Sold 1 [potion name]
Remaining stock: [new stock count]

Usa la concatenación de cadenas para combinar el texto descriptivo con el nombre de la poción y la cantidad de existencias actualizada. Después de procesar la venta, usa la instrucción break para salir del bucle.

Pruébalo tú mismo

-- 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

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Lua online