Menu
CoddyTech

Vendre une potion

Fait partie de la section Notions fondamentales du Journey Lua de Coddy. Leçon 82 sur 90.

challenge icon

Défi

Facile

Termine ton projet de boutique de potions en mettant en place un système de transaction de vente. En t’appuyant sur ta fonctionnalité de recherche, crée un système qui traite la vente d’une potion en réduisant la quantité en stock et en fournissant une confirmation de la transaction.

L’entrée suivante sera fournie :

  • Une chaîne contenant le nom de la potion à vendre

Remplace les affichages Found, Price et Stock de l’étape précédente par ceux de la vente, afin que seules les deux lignes de vente ci-dessous soient affichées. Lis le nom de la potion avec un seul io.read() : chaque exécution fournit une ligne d’entrée.

Utilise une boucle numérique for pour parcourir ta table inventory et trouver la potion spécifiée. Lorsque tu repères la potion correspondante à l’aide de l’opérateur d’égalité ==, diminue sa valeur stock de 1 pour simuler la vente.

Après avoir mis à jour le stock, affiche un message de confirmation indiquant le nom de la potion et son nouveau niveau de stock au format suivant :

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

Utilise la concaténation de chaînes pour combiner le texte descriptif avec le nom de la potion et la quantité en stock mise à jour. Après avoir traité la vente, utilise l’instruction break pour sortir de la boucle.

Essayez vous-même

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

Toutes les leçons de Notions fondamentales

Entraînez-vous par vous-même : Compilateur Lua en ligne