Sprzedaż eliksiru
Część sekcji Podstawy ścieżki Lua w Coddy. Lekcja 82 z 90.
Wyzwanie
ŁatwyDokończ projekt swojego sklepu z miksturami, wdrażając system transakcji sprzedaży. Rozbuduj funkcjonalność wyszukiwania i utwórz system, który obsługuje sprzedaż mikstury przez zmniejszenie stanu zapasów i wyświetlenie potwierdzenia transakcji.
Zostaną podane następujące dane wejściowe:
- Ciąg znaków zawierający nazwę mikstury do sprzedania
Użyj numerycznej pętli for, aby przejść przez tabelę inventory i znaleźć wskazaną miksturę. Gdy znajdziesz pasującą miksturę za pomocą operatora równości ==, zmniejsz jej wartość stock o 1, aby zasymulować sprzedaż.
Po zaktualizowaniu stanu zapasów wyświetl potwierdzenie zawierające nazwę mikstury i jej nowy stan w formacie:
Sold 1 [potion name]
Remaining stock: [new stock count]Użyj konkatenacji ciągów znaków, aby połączyć opisowy tekst z nazwą mikstury i zaktualizowaną liczbą sztuk w magazynie. Po obsłużeniu sprzedaży użyj instrukcji break, aby zakończyć pętlę.
Spróbuj swoich sił
-- 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
endWszystkie lekcje w sekcji Podstawy
4Operatory 2: relacyjne i logiczne
Operatory równościOperatory relacyjneOperator „and”Operator „or”Operator „not”Ewaluacja z krótkim spięciemWartości prawdziwe i fałszywePodsumowanie – prosta logika7Podstawy logiki warunkowej
Instrukcja if-thenInstrukcja if-then-elseInstrukcja elseifPowtórzenie — skrzynia skarbów10Tabele, część 1: styl listy
Czym jest tabela?Tworzenie tabeliDostęp do elementów według indeksuModyfikowanie elementów według indeksuOperator długości '#'table.insert()table.remove()Powtórzenie — zarządzanie członkami drużyny13Projekt: Prosty sklep z eliksirami
Konfiguracja projektuDodawanie eliksiru2Zmienne i typy danych
Czym jest zmienna?LiczbyŁańcuchy znakówWartości logiczneWartość „nil”Funkcja type()Konwencje nazewnictwaPowtórzenie — profil postaci5Podstawowe wyjście
Wyświetlanie literałówWyświetlanie zmiennychWyświetlanie wielu wartościŁączenie ciągów znaków i zmiennychFunkcja tostring()Dane wejścioweRzutowanie typówPowtórka — raport o statusiePowtórka — do 1208Podstawy manipulacji ciągami znaków
string.len()string.upper i string.lowerstring.sub()string.rep()string.find()Podsumowanie – formatuj nazwę użytkownika3Operatory 1: Arytmetyka i konkatenacja
Operatory arytmetyczneOperator moduloOperator potęgowaniaŁączenie ciągów znakówKolejność wykonywania operatorówPowtórka – proste obliczenia6Projekt: wyświetlanie statystyk postaci
Wiadomość powitalnaDeklarowanie statystyk postaci9Podstawy funkcji
Deklarowanie funkcjiWywoływanie funkcjiFunkcje z parametramiFunkcje z wieloma parametramiInstrukcja „return”Powtórzenie — kalkulator polaPoćwicz samodzielnie: Kompilator Lua online