01. 모바일 2D 디펜스 게임

'Wings Defense'


포트폴리오 링크 :

https://www.youtube.com/watch?v=bB1_zYog1o0


디펜스 게임의 긴장감과 RPG 게임의 성장에

초점을 맞추어 제작한 디펜스 게임입니다.

다양한 스킬 업그레이드과 캐릭터의 업그레이드 중

어느 쪽에 적절한 투자를 하느냐가 게임의 핵심입니다.


제작 기간 : 16.06.23 ~ 16.08.05 (약 5주)





02. 모바일 스릴러 TPS 게임

'Red Sniper'


포트폴리오 링크 :

https://www.youtube.com/watch?v=OiL2Yv6L73Q


스릴러 장르에 저격이라는 요소를 넣어

제작한 모바일 TPS 게임입니다.

저격수답게 적에게 들키지 않아야하며

신중하게 조준하여 적을 처치해야 합니다.


제작 기간 : 16.08.16 ~ 16.09.13 (약 4주)







C++의 인터페이스 상속과 구현 상속(1)

인터페이스만을 물려주자 : 순수 가상 함수




클래스 설계자 입장에서 보면, 

1. 멤버 함수의 인터페이스 만을 상속받고 싶은 경우

2. 함수의 인터페이스 및 구현을 모두 상속받고 그 상속받은

 구현이 오버라이드가 가능하게 만들었으면 할 경우

3. 또한 인터페이스와 구현을 상속받되 어떤 것도

 오버라이드할 수 없도록 막고 싶은 경우가 있다.


오늘은 인터페이스만을 상속받고 싶은 경우에 대해서 알아보자.




class Shape{

public:

virtual void draw const = 0;                ----- 1번

virtual void error (const string& msg);----- 2번

int objectId() const;                            ----- 3번


}



1번은 순수 가상함수로 선언되어 있다. 그말인 즉슨

Shape는 추상 클래스가 되고 인스턴스를 만들 수 없다.


순수 가상 함수의 가장 두드러진 특징이라면

1. 어떤 순수 가상 함수를 물려받은 구체 클래스가 해당

순수 가상 함수를 다시 선언해야 한다.

2. 순수 가상 함수는 전형적으로 추상 클래스 안에서

정의를 갖지 않는다.




따라서 순수 가상 함수를 선언하는 목적은

파생 클래스에서 함수의 인터페이스만을 물려주는 것이다.




하지만 순수 가상 함수에도 정의를 제공할 수 있다.

구현을 제공할 수 있다는 말이다. 단, 구현이 붙은

순수 가상 함수를 호출하려면 반드시 클래스의

이름을 한정자로 붙여 주어야만 한다.


Shape *ps = new Rec;

ps -> Shape::draw();




이는 단순 가상 함수에 대한 기본 구현을

안전하게 제공하는 메커니즘으로 활용할 수 있다.

이 부분에 대해서는 인터페이스와 기본 구현도

함께 물려받는 경우, 즉 단순 가상 함수에 대해

포스팅을 할 때, 같이 진행하도록 하겠다.




Point!!

순수 가상 함수를 선언하는 목적은 파생 클래스에게

함수의 인터페이스만을 물려주자는 것이다.


다이나믹 (동적 계획법) 알고리즘 : 동전 교환 문제 (정올)


다이나믹 알고리즘의 가장 대표적인 문제가 아닌가 한다.

차곡차곡 저장된 데이터를 기반으로 답을 찾아간다는

단순한 논리이지만 수학문제를 푸는 것 같아 굉장히 어렵다..


이번 문제는 1시간 이상 걸렸고, 데이터를 차곡차곡

저장하는 방법과, 저장된 데이터를 빼서 사용하는

부분에서 상당히 애를 먹었다. ( 그냥 다 어려웠다는 말 )







01. 다이나믹(동적 계획법)을 수행할 클래스 선언





02. 초기화




03. 다이나믹 (동적 계획법) 알고리즘 수행

나름 자세하게 설명해 보았다. 다이나믹을 처음 접했을 때

상당히 난해했던 기억이 난다. 혹시나 나와 같은 사람이 있을까

최대한 설명을 해보지만.. 더 헷갈릴 수도 있겠다는 생각이 든다.




04. 메인 함수




멤버 함수를 하나하나 부르기 보다 편의 함수를

정의해서 함수 호출을 했다. 알고리즘 공부를 하면서

C++도 공부할 수 있으면 괜찮겠다 생각해서

클래스로 만들고 편의 함수도 만들어 보았다.




+ Recent posts