Menu
CoddyTech

商品を追加する

CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 72/78。

challenge icon

チャレンジ

簡単

コマンド add を追加します。前の手順で書いた内容はすべて残してください。

add Apple 0.5 100 のような行を入力すると、価格が 0.5、在庫数が 100 のアイテム Apple が追加されます。アイテム名は1語です。

まず、_ready() の上に関数 add_item(inventory, item, price, stock) を書きます。

  1. アイテムがすでに inventory にある場合は、Error: Item 'Apple' already exists.(アイテム名を含む)を出力し、何も変更しません
  2. そうでない場合は、アイテム名をキーとして {"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オンラインコンパイラ