Menu
CoddyTech

프로젝트 개요

Coddy GDScript 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 65개 중 56번째.

challenge icon

챌린지

중급

이 프로젝트에서는 6단계에 걸쳐 도서관 관리 시스템을 만듭니다. 도서관, 책과 사용자, 대출, 검색, 통계, 반납 기능을 구현합니다. 각 단계는 이전 단계에서 만든 파일을 바탕으로 시작합니다.

이 단계에서는 library.gd에 Library 클래스를 만듭니다. 시작 코드에는 이미 세 가지 속성이 선언되어 있습니다.

  • 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 컴파일러