商品を追加する
CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 72/78。
チャレンジ
簡単コマンド add を追加します。前の手順で書いた内容はすべて残してください。
add Apple 0.5 100 のような行を入力すると、価格が 0.5、在庫数が 100 のアイテム Apple が追加されます。アイテム名は1語です。
まず、_ready() の上に関数 add_item(inventory, item, price, stock) を書きます。
- アイテムがすでに
inventoryにある場合は、Error: Item 'Apple' already exists.(アイテム名を含む)を出力し、何も変更しません - そうでない場合は、アイテム名をキーとして
{"price": price, "stock": stock}を保存し、Item 'Apple' added successfully.を出力します
次に、ループ内に add の elif 分岐を追加します。関数を呼び出す前に、入力行を確認します。
- 入力行の要素数がちょうど
4でない場合は、Error: Use add ITEM PRICE STOCKを出力します - 価格が数値でない場合、または在庫数が整数でない場合は、
Error: Price and stock must be numeric.を出力します - そうでない場合は、価格を
floatに、在庫数をintに変換してadd_item()を呼び出します
コマンド add Apple 0.5 100、add Banana 0.2 50、add Apple 0.6 30、show、exit を実行すると、次のように出力されます。
Inventory Management System
Item 'Apple' added successfully.
Item 'Banana' added successfully.
Error: Item 'Apple' already exists.
{ "Apple": { "price": 0.5, "stock": 100 }, "Banana": { "price": 0.2, "stock": 50 } }
Goodbye!自分で試してみよう
extends Node
func _ready():
# 在庫: 商品名 -> {"price": float, "stock": int}
var inventory := {}
print("Inventory Management System")
while true:
var line := OS.read_string_from_stdin()
var parts := line.split(" ")
var command := parts[0]
if command == "exit":
print("Goodbye!")
break
elif command == "show":
print(inventory)
else:
print("Unknown command")
ロジックとフローのすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ