Menu
CoddyTech

סקירת הפרויקט

חלק מהיחידה תכנות מונחה עצמים במסלול ה-GDScript של Coddy. שיעור 56 מתוך 65.

challenge icon

אתגר

בינוני

בפרויקט הזה תבנו מערכת לניהול ספרייה בשישה שלבים: ספרייה, ספרים ומשתמשים, השאלה, חיפוש, סטטיסטיקה והחזרות. כל שלב מתחיל מהקבצים שלכם מהשלב הקודם.

בשלב הזה יוצרים את המחלקה Library בקובץ library.gd. קוד הפתיחה כבר מצהיר על שלושת המאפיינים שלה:

  • library_name: שם הספרייה
  • books ו-users: שני מערכי Array[String] שמתחילים ריקים. לעת עתה הם מכילים כותרות ושמות משתמשים.

השלימו את שתי המתודות:

  1. הבנאי _init(library_name) שומר את השם במאפיין library_name.
  2. _to_string() מחזירה NAME Library (books: N, users: M), כאשר N ו-M הם הגדלים של שני המערכים.

הקוד שסופק קורא את שם הספרייה מהשורה הראשונה, ולאחר מכן פקודה אחת בכל שורה: book TITLE ו-user NAME מוסיפות למערכים, info מדפיסה את שלושת המאפיינים ו-show מדפיסה את הספרייה. עבור הקלט הזה:

Community
info
book Dune
user Ada
show

הפלט הוא:

Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)

כתבו את הקוד שלכם בקובץ library.gd. הקובץ main.gd מכיל את קוד הקלט/פלט שסופק ואי אפשר לערוך אותו.

נסו בעצמכם

extends Node

func _ready():
	# קוד הקלט/פלט שסופק: יש להשאיר אותו כפי שהוא
	var library := Library.new(OS.read_string_from_stdin())
	var line := OS.read_string_from_stdin()
	while line != "":
		var parts := line.split(" ", true, 1)
		match parts[0]:
			"book":
				library.books.append(parts[1])
			"user":
				library.users.append(parts[1])
			"info":
				print("Name: ", library.library_name)
				print("Books: ", library.books.size())
				print("Users: ", library.users.size())
			"show":
				print(library)
		line = OS.read_string_from_stdin()

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר GDScript אונליין