Menu
CoddyTech

Kayıtlı mı

Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 45 / 78.

challenge icon

Görev

Kolay

Bir öğrencinin bir kursu alıp almadığını kontrol et. Önceki adımlarda yazdığın her şeyi koru.

1. İşlev. Diğer işlevlerin altına is_enrolled(student_name: String, course: String) -> bool yaz:

  • student_records içinde bu ad yoksa Student '<name>' not found. yazdır ve false döndür.
  • Aksi hâlde, kurs öğrencinin "courses" kümesindeyse true, değilse false döndür.

2. Komut. ["show"] satırının üstüne, örneğin enrolled Alice Math gibi, enrolled <name> <course> için bir dal ekle. is_enrolled() işlevinin döndürdüğü değeri yazdırır. Şu komutlar için

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
enrolled Alice Math
enrolled Alice Biology
enrolled Bob Biology
enrolled Charlie Math
exit

çıktı şöyledir:

Student 'Alice' added successfully.
Student 'Bob' added successfully.
true
false
true
Student 'Charlie' not found.
false
Goodbye!

Bulunamayan bir öğrenci için önce mesaj, ardından false gelir.

Kendin dene

extends Node

# Her öğrenci: name -> {"age": int, "grades": Array, "courses": ders adlarından oluşan bir küme}
var student_records := {}

func _ready():
	while true:
		var parts := Array(OS.read_string_from_stdin().split(" ", false))
		match parts:
			["add", var student, var age, ..]:
				add_student(student, int(age), parts.slice(3))
			["grade", var student, var grade]:
				add_grade(student, int(grade))
			["show"]:
				print(student_records)
			["exit"]:
				print("Goodbye!")
				break

func add_student(student_name: String, age: int, courses: Array) -> void:
	if student_records.has(student_name):
		print("Student '%s' already exists." % student_name)
		return
	var course_set := {}
	for course in courses:
		course_set[course] = true
	student_records[student_name] = {"age": age, "grades": [], "courses": course_set}
	print("Student '%s' added successfully." % student_name)

func add_grade(student_name: String, grade: int) -> void:
	if not student_records.has(student_name):
		print("Student '%s' not found." % student_name)
		return
	student_records[student_name]["grades"].append(grade)
	print("Grade %d added for student '%s'." % [grade, student_name])

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online GDScript derleyicisi