Menu
CoddyTech

ポーションを販売する

CoddyのLuaジャーニー「基礎」セクションの一部。レッスン 82/90。

challenge icon

チャレンジ

簡単

販売取引システムを実装して、ポーションショップのプロジェクトを完成させましょう。検索機能を基に、在庫数を減らし、取引確認を表示するポーション販売処理システムを作成します。

次の入力が与えられます。

  • 販売するポーション名を含む文字列

前のステップのFound、Price、Stockの出力を販売処理に置き換え、以下の2行だけが出力されるようにします。ポーション名はio.read()を1回だけ使って読み込みます。実行のたびに、1行の入力が与えられます。

数値forループを使ってinventoryテーブルを反復し、指定されたポーションを探します。等価演算子==を使って一致するポーションを見つけたら、販売を表すためにそのstockの値を1減らします。

在庫を更新した後、ポーション名と新しい在庫数を次の形式で表示する確認メッセージを出力します。

Sold 1 [potion name]
Remaining stock: [new stock count]

文字列連結を使って、説明文とポーション名、更新後の在庫数を結合します。販売処理の後、break文を使ってループを終了します。

自分で試してみよう

-- 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
end

基礎のすべてのレッスン

自分で練習してみよう: Luaオンラインコンパイラ