Einen Zaubertrank verkaufen
Teil des Abschnitts Grundlagen der Lua-Journey von Coddy. Lektion 82 von 90.
Aufgabe
EinfachVervollständige dein Trankladen-Projekt, indem du ein Verkaufsabwicklungssystem implementierst. Baue auf deiner Suchfunktionalität auf und erstelle ein System, das einen Trankverkauf verarbeitet, indem es die stock-Menge reduziert und eine Transaktionsbestätigung ausgibt.
Die folgende Eingabe wird bereitgestellt:
- Ein String, der den Namen des zu verkaufenden Tranks enthält
Verwende eine numerische for-Schleife, um durch deine inventory-Tabelle zu iterieren und den angegebenen potion zu finden. Wenn du den passenden potion mithilfe des Gleichheitsoperators == gefunden hast, verringere seinen stock-Wert um 1, um den sale zu simulieren.
Nachdem du den stock aktualisiert hast, gib eine Bestätigungsmeldung aus, die den Tranknamen und den neuen Lagerbestand im folgenden Format anzeigt:
Sold 1 [potion name]
Remaining stock: [new stock count]Verwende String-Konkatenation, um den beschreibenden Text mit dem Namen des Tranks und der aktualisierten stock-Menge zu verbinden. Verwende nach der Verarbeitung des Verkaufs die break-Anweisung, um die Schleife zu beenden.
Probier es selbst
-- 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
endAlle Lektionen in Grundlagen
4Operatoren 2: Vergleichs- und logische Operatoren
GleichheitsoperatorenVergleichsoperatorenDer 'and'-OperatorDer 'or'-OperatorDer 'not'-OperatorKurzschlussauswertungTruthy- und Falsy-WerteRückblick – Einfache Logik7Grundlegende bedingte Logik
Die if-then-AnweisungDie if-then-else-AnweisungDie elseif-AnweisungWiederholung – Schatztruhe10Tabellen Teil 1: Listenstil
Was ist eine Tabelle?Eine Tabelle erstellenElemente per Index aufrufenElemente per Index ändernDer Längenoperator '#'table.insert()table.remove()Rückblick – Partymitglieder verwalten13Projekt: Einfacher Zaubertrankladen
Projekt einrichtenEinen Zaubertrank hinzufügen2Variablen und Datentypen
Was ist eine Variable?ZahlenZeichenkettenBoolesche WerteDer Wert „nil“Die Funktion type()NamenskonventionenRückblick – Charakterprofil5Grundlegende Ausgabe
Literale ausgebenVariablen ausgebenMehrere Werte ausgebenStrings & Variablen kombinierenDie tostring()-FunktionEingabeTypumwandlungRückblick – StatusberichtRückblick – Bis 1208Grundlagen der String-Manipulation
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Rückblick – Benutzernamen formatieren3Operatoren 1: Arithmetik & Verkettung
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorVerkettung von ZeichenkettenRangfolge der OperatorenWiederholung – Einfache Berechnungen6Projekt: Charakterwerte anzeigen
WillkommensnachrichtCharakterwerte deklarieren9Grundlagen von Funktionen
Eine Funktion deklarierenEine Funktion aufrufenFunktionen mit ParameternFunktionen mit mehreren ParameternDie Anweisung „return“Zusammenfassung – Flächenrechner12Grundlagen der Schleifen
Die while-SchleifeDie repeat-until-SchleifeDie numerische for-Schleifefor-Schleife mit SchrittweiteDie Anweisung „break“Rückblick – Countdown15Abschließende Herausforderungen
Wiederholung – SpielzugWiederholung – Einfache DatenbankWiederholung – Summe gerader ZahlenÜbe selbstständig: Online-Lua-Compiler