İksir Satma
Coddy'nin Lua Journey'sinin Fundamentals bölümünün bir parçası — ders 82 / 90.
Görev
KolayBir satış işlem sistemi uygulayarak iksir dükkanı projenizi tamamlayın. Arama işlevinizin üzerine inşa ederek, stok miktarını azaltarak ve işlem onayı sağlayarak bir iksir satışını işleyen bir sistem oluşturun.
Aşağıdaki girdi sağlanacaktır:
- Satılacak iksirin adını içeren bir dize (string)
Belirtilen iksiri bulmak için inventory tablonuzda gezinmek üzere sayısal bir for döngüsü kullanın. Eşitlik operatörünü == kullanarak eşleşen iksiri bulduğunuzda, satışı simüle etmek için stock değerini 1 azaltın.
Stoğu güncelledikten sonra, iksir adını ve yeni stok seviyesini şu formatta gösteren bir onay mesajı yazdırın:
Sold 1 [potion name]
Remaining stock: [new stock count]Açıklayıcı metni iksirin adı ve güncellenmiş stok miktarıyla birleştirmek için dize birleştirme (string concatenation) kullanın. Satışı işledikten sonra, döngüden çıkmak için break ifadesini kullanın.
Kendin dene
-- 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
endFundamentals bölümündeki tüm dersler
4Operatörler 2 İlişkisel ve Mantıksal
Eşitlik Operatörleriİlişkisel Operatörler'and' Operatörü'or' Operatörü'not' OperatörüKısa Devre DeğerlendirmesiTruthy ve Falsy DeğerlerÖzet - Basit Mantık10Tablolar Bölüm 1: Liste Stili
Tablo Nedir?Tablo Oluşturmaİndeks ile Elemanlara Erişmeİndeks ile Elemanları DeğiştirmeUzunluk Operatörü '#'table.insert()table.remove()Özet - Parti Üyelerini Yönetme13Proje: Basit İksir Dükkanı
Proje Kurulumuİksir Ekleme2Değişkenler ve Veri Tipleri
Değişken Nedir?SayılarStringlerBooleanlar'nil' Değeritype() Fonksiyonuİsimlendirme KurallarıÖzet - Karakter Profili5Temel Çıktı
Sabitleri YazdırmaDeğişkenleri YazdırmaBirden Fazla Değer YazdırmaMetinleri ve Değişkenleri Birleştirmetostring() FonksiyonuGirdiTip DönüşümüÖzet - Durum RaporuÖzet - 120'ye Kadar8String Manipülasyonu Temelleri
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Özet - Kullanıcı Adı Biçimlendirme3Operatörler 1 Aritmetik ve Birleştirme
Aritmetik OperatörlerMod Alma OperatörüÜs Alma OperatörüString BirleştirmeOperatör ÖnceliğiÖzet - Basit Hesaplamalar6Proje: Karakter İstatistiklerini Görüntüleme
Hoş Geldiniz MesajıKarakter İstatistiklerini Tanımlama9Fonksiyon Temelleri
Fonksiyon TanımlamaFonksiyon ÇağırmaParametreli FonksiyonlarÇoklu Parametreli Fonksiyonlar'return' İfadesiÖzet - Alan Hesaplayıcı