프로젝트 개요
Coddy GDScript 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 65개 중 56번째.
챌린지
중급이 프로젝트에서는 6단계에 걸쳐 도서관 관리 시스템을 만듭니다. 도서관, 책과 사용자, 대출, 검색, 통계, 반납 기능을 구현합니다. 각 단계는 이전 단계에서 만든 파일을 바탕으로 시작합니다.
이 단계에서는 library.gd에 Library 클래스를 만듭니다. 시작 코드에는 이미 세 가지 속성이 선언되어 있습니다.
library_name: 도서관의 이름books와users: 비어 있는 상태로 시작하는 두 개의Array[String]입니다. 지금은 책 제목과 사용자 이름을 저장합니다.
다음 두 메서드를 완성하세요.
- 생성자
_init(library_name)는 이름을library_name속성에 저장합니다. _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 컴파일러