Menu
CoddyTech

学生を追加

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

challenge icon

チャレンジ

簡単

生徒を記録に追加します。前の手順で書いた内容はすべて残してください。

1. 関数。 _ready()の下に、add_student(student_name: String, age: int, courses: Array) -> voidを書きます。

  • student_recordsにその名前がすでにある場合は、Student '<name>' already exists.を出力して戻ります。
  • そうでなければ、コースのセット(各コースをキー、その値をtrueとする辞書)を作り、生徒を名前をキーとして、3つのキーを持つ辞書に格納します。キーは"age"(年齢)、"grades"(空の配列)、"courses"(セット)です。その後、Student '<name>' added successfully.を出力します。

2. コマンド。コマンドadd Alice 20 Math Physicsには、名前、年齢、および任意の数のコースが含まれています。matchに、["show"]より上の分岐を追加します。

["add", var student, var age, ..]:
	add_student(student, int(age), parts.slice(3))

..を使うと、その後に続くコースにパターンが一致します。また、parts.slice(3)はそれらのコースの配列です。次のコマンドを実行すると、

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
show
exit

出力は次のようになります。

Student 'Alice' added successfully.
Student 'Bob' added successfully.
{ "Alice": { "age": 20, "grades": [], "courses": { "Math": true, "Physics": true } }, "Bob": { "age": 22, "grades": [], "courses": { "Biology": true, "Chemistry": true } } }
Goodbye!

自分で試してみよう

extends Node

# 各学生: name -> {"age": int, "grades": Array, "courses": コース名の集合}
var student_records := {}

func _ready():
	while true:
		var parts := Array(OS.read_string_from_stdin().split(" ", false))
		match parts:
			["show"]:
				print(student_records)
			["exit"]:
				print("Goodbye!")
				break

ロジックとフローのすべてのレッスン

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