Menjual Ramuan
Termasuk bagian Dasar-Dasar dalam perjalanan Lua di Coddy. Pelajaran 82 dari 90.
Tantangan
MudahSelesaikan proyek toko ramuanmu dengan menerapkan sistem transaksi penjualan. Berdasarkan fitur pencarian yang sudah kamu buat, buat sistem yang memproses penjualan ramuan dengan mengurangi jumlah stok dan memberikan konfirmasi transaksi.
Input berikut akan diberikan:
- Sebuah string yang berisi nama ramuan yang akan dijual
Ganti perintah print Found, Price, dan Stock dari langkah sebelumnya dengan penjualan, sehingga hanya dua baris penjualan di bawah ini yang dicetak. Baca nama ramuan dengan satu kali io.read(): setiap kali program dijalankan, satu baris input akan diberikan.
Gunakan perulangan for numerik untuk menelusuri tabel inventory dan menemukan ramuan yang ditentukan. Saat menemukan ramuan yang cocok menggunakan operator kesamaan ==, kurangi nilai stock-nya sebesar 1 untuk menyimulasikan penjualan.
Setelah memperbarui stok, cetak pesan konfirmasi yang menampilkan nama ramuan dan tingkat stok barunya dengan format berikut:
Sold 1 [potion name]
Remaining stock: [new stock count]Gunakan penggabungan string untuk menggabungkan teks deskriptif dengan nama ramuan dan jumlah stok yang sudah diperbarui. Setelah memproses penjualan, gunakan pernyataan break untuk keluar dari perulangan.
Coba sendiri
-- 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
endSemua pelajaran di Dasar-Dasar
4Operator 2: Relasional dan Logika
Operator KesetaraanOperator RelasionalOperator 'and'Operator 'or'Operator 'not'Evaluasi Hubung SingkatNilai Truthy dan FalsyRingkasan: Logika Sederhana7Logika Percabangan Dasar
Pernyataan if-thenPernyataan if-then-elsePernyataan elseifUlasan: Peti Harta Karun10Table Bagian 1: Gaya list
Apa Itu Table?Membuat TableMengakses Elemen Berdasarkan IndeksMengubah Elemen Berdasarkan IndeksOperator Panjang '#'table.insert()table.remove()Ulasan: Mengelola Anggota Pesta13Proyek: Toko Ramuan Sederhana
Penyiapan ProyekMenambahkan Ramuan2Variabel dan Tipe Data
Apa Itu Variabel?AngkastringBooleanNilai 'nil'Fungsi type()Konvensi PenamaanRangkuman: Profil Karakter5Output Dasar
Mencetak LiteralMencetak VariabelMencetak Beberapa NilaiMenggabungkan string dan VariabelFungsi tostring()InputKonversi TipeRangkuman: Laporan StatusRangkuman: Hingga 1208Dasar Manipulasi string
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Ulasan, Format Nama Pengguna3Operator 1: Aritmetika & Penggabungan
Operator AritmetikaOperator ModuloOperator PemangkatanPenggabungan stringPrioritas OperatorRangkuman: Perhitungan Sederhana6Proyek: Menampilkan Statistik Karakter
Pesan Selamat DatangDeklarasikan Statistik Karakter9Dasar-Dasar Fungsi
Mendeklarasikan FungsiMemanggil FungsiFungsi dengan ParameterFungsi dengan Beberapa ParameterPernyataan 'return'Ulasan: Kalkulator LuasLatihan sendiri: Compiler Lua online