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