Menu
CoddyTech
flag Ar iconالعربيةdown icon

نظرة عامة على المشروع

جزء من قسم البرمجة كائنية التوجّه في رحلة 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 عبر الإنترنت