Wyszukiwanie konkretnego eliksiru
Część sekcji Podstawy ścieżki Lua w Coddy. Lekcja 81 z 90.
Wyzwanie
ŁatwyRozbudowując system obliczania wartości zapasów, zaimplementuj funkcję wyszukiwania, która pozwoli znaleźć i wyświetlić szczegółowe informacje o konkretnym eliksirze w asortymencie twojego sklepu.
Zachowaj tabelę inventory, ale usuń pętlę obliczającą łączną wartość i instrukcję print z poprzedniego kroku: w tym kroku wyświetlany jest tylko wynik wyszukiwania, a jeśli żaden eliksir nie pasuje, nie jest wyświetlane nic.
Zostaną podane następujące dane wejściowe:
- Ciąg znaków zawierający nazwę eliksiru, którego należy wyszukać
Użyj numerycznej pętli for, aby przejść przez tabelę inventory. Dla każdego eliksiru sprawdź, czy jego name pasuje do wyszukiwanego hasła, używając operatora równości ==.
Gdy znajdziesz pasujący eliksir, wyświetl wszystkie jego szczegóły w następującym formacie:
Found: [name]
Price: [price] gold
Stock: [stock] unitsUżyj konkatenacji ciągów znaków, aby połączyć tekst opisowy z każdą właściwością eliksiru. Po znalezieniu i wyświetleniu szczegółów eliksiru użyj instrukcji break, aby zakończyć pętlę, ponieważ znaleziono to, czego szukasz.
Spróbuj swoich sił
-- Inventory table with potion data
local 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}
}
-- Initialize total value variable
local totalValue = 0
-- Calculate total inventory value using numeric for loop
for i = 1, #inventory do
local itemValue = inventory[i].price * inventory[i].stock
totalValue = totalValue + itemValue
end
-- Print the total inventory value
print("Total inventory value: " .. totalValue .. " gold")Wszystkie 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