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 Verkaufstransaktionssystem implementierst. Baue auf deiner Suchfunktionalität auf und erstelle ein System, das einen Trankverkauf verarbeitet, indem es den Lagerbestand verringert und die Transaktion bestätigt.
Die folgende Eingabe wird bereitgestellt:
- Eine Zeichenfolge mit dem Namen des zu verkaufenden Tranks
Ersetze die Ausgaben von Found, Price und Stock aus dem vorherigen Schritt durch den Verkauf, sodass nur die beiden unten stehenden Verkaufszeilen ausgegeben werden. Lies den Tranknamen mit einem einzigen io.read() ein: Bei jedem Durchlauf wird eine Eingabezeile bereitgestellt.
Verwende eine numerische for-Schleife, um deine Tabelle inventory zu durchlaufen und den angegebenen Trank zu finden. Wenn du den passenden Trank mithilfe des Gleichheitsoperators == gefunden hast, verringere seinen Wert für stock um 1, um den Verkauf zu simulieren.
Gib nach der Aktualisierung des Lagerbestands eine Bestätigungsnachricht aus, die den Namen des Tranks und seinen neuen Lagerbestand im folgenden Format zeigt:
Sold 1 [potion name]
Remaining stock: [new stock count]Verwende die Zeichenfolgenverkettung, um den beschreibenden Text mit dem Namen des Tranks und der aktualisierten Lagerbestandsmenge zu kombinieren. Verwende nach der Verarbeitung des Verkaufs die Anweisung break, um die Schleife zu verlassen.
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