Kotlin : Movie Maker 시물레이션, 구상

언어/Kotlin

Kotlin : Movie Maker 시물레이션, 구상

해리누나 2022. 10. 18. 04:39
반응형

지금까지 공부해 온 코틀린 기본적인 내용들로, 좀 더 큰 예시를 연습해보자.

" 플레이어가 영화 제작자의 역할을 하는 작은 게임을 만든다고 생각해보자 "

 

------- 게임 내용 구상 -------

1) 영화 기획하기

: 플레이어는 영화 하나를 기획합니다.

=> 감독, 장르, 예산, 주연 배우 등을 고려해

 

2) 영화 제작하기

:  고려된 내용을 바탕으로 영화 하나가 제작됩니다.

=> 영화 제작 비용( 감독, 배우등 의 급여) 이 플레이어의 계좌에서 삭감됩니다.

 

3) 영화의 평점 계산하기

: 영화의 평점이 아래 사항에 맞춰 계산됩니다.

=> 주연배우에게 맞는 장르였는가?

=> 감독이 선호하는 주연배우 중 하나였는가?

=> 주연배우와 감독은 많은 경험을 가지고 있는가?

 

4) 경험값 모으기

: 배우와 감독은 작품이 하나 끝날때마다, 경험값을 모읍니다.

=> 각 사람마다 배우는 경험값은 다르며, 배우는 속도또한 다릅니다.

=> 각 사람마다 배울 수 있는 한계치가 존재합니다.

 

5) 수입 정산

: 영화의 평점에 맞춰 플레이어의 계좌에 수입이 들어옵니다.

 

6) 다음 라운드

: 영화 하나의 제작이 끝나면, 바로 다음 영화를 기획해 제작이 가능해집니다.

 

------- ------- ------- ------- -------

 

먼저 본격적인 프로그래밍을 시작하기 전에 전반적인 구조를 생각해야 한다.

어떤 객체들이 사용될 것이며, 그 객체들이 가져야 할 속성들에 무엇이 있는지,

객체들간의 관계는 어떤지, 속성들에 어떤 자료형이 가장 잘 어울릴 것인지,

어떤 함수가 필요한지,... 등

 

그럼 구상을 대략적으로 해보자.

구상

구상이 어느정도 되었다면, 이제 클래스 사이의 관계와 클래스 구조를 생각해봐야 한다.

 

마지막으로 Obeject의 Structure를 그려보자면,

(회색화살표는 참조화살표다)

firstMovie 오브젝트를 생성했다고 해보자. 이 firstMovie는 클래스 Movie 의 구체적인 객체를 참조하고 있으며, 이 Movie 클래스는 budget, cost등과 같은 속성들과 더블 자료형의 리스트로 이루어진 genre로 이루어져 있다.  이 외에도 mainActor 와 director 란 속성을 가지고 있다. (참고로, 변수의 이름은 소문자로 클래스의 이름은 대문자를 시작으로 둘에 차이를 준다. 이는 이렇게 해야한다는 규칙일 뿐이지 Syntax Error에 적용되지 않는다. 소문자로만 클래스의 이름을 정해도 된다는 얘기이지만, 이 경우 코드를 읽는 사람이 헷갈리게 될 수 있으니, 가급적 규칙을 준수하는 편이 좋다) 

 

Director 클래스는 모든 director 객체들의 전반적인 구조를 정의한다. 클래스 Movie 내 director는 참조변수로 구체적인 director 객체를 참조한다. 모든 영화는 한명의 mainActor를 가지고 있다. 이 mainActor 속성은 Actor클래스의 객체를 참조한다. 추가로 director의 객체는 Actor 를 참조한다. 이 참조된 Actor는 preferredActor 속성에 저장된다.

 

++

이 번 예시들로 하나의 객체가 다른 객체들로 구성될 수 있음을 볼 수 있는데, 객체 중에서도 다른 객체를 참조할 수 업는 객체가 존재한다. 이런 객체들을 Atomare Objekte 라 부른다. 예로 Int-, Double-, String 오브젝트들이 있다.

 

 

 

 

출처:

내용 / 도움준 곳: 학교 교수님 (Christian Kohls) 강의

728x90
반응형