Menu
CoddyTech

Добавить студента

Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 43 из 78.

challenge icon

Задание

Легко

Добавь студентов в записи. Сохрани всё, что ты написал на предыдущих шагах.

1. Функция. Ниже _ready() напиши add_student(student_name: String, age: int, courses: Array) -> void:

  • Если в student_records уже есть это имя, выведи Student '<name>' already exists. и выполни возврат.
  • В противном случае создай множество курсов (словарь, в котором каждый курс — ключ, а его значением является true) и сохрани студента под его именем в виде словаря с тремя ключами: "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

# Каждый студент: имя -> {"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