1. 개요

지렁이 키우기 게임에서의 지렁이를 설계하고 구현하는 것은 코드 설계 및 구현에 도움이 되어 작성한다.


난이도는 높지 않지만, 먹이에 따른 예외조건이 몇 가지 있어서 꼼꼼히 설계하여야 한다.


종료조건으로는 2가지가 있다.

(1) 벽에 부딪힘.

(2) 자기 자신의 몸통과 부딪힘.


다른 조건으로는 먹이를 먹으면 먹이의 양에 따라서 몸이 길어진다.

단, 몸이 길어지는 것은 한 번의 움직임에 한 번 길어진다. (먹이는 종류에 따라 몸을 1에서 N이상 길어지게 한다.)


즉, 먹이의 에너지가 3이면 앞으로의 움직임 3번 동안 몸이 3번 길어지게 되는 것이다.



물론 여기서 구현한 지렁이 키우기 게임은


이런 화려하고 그래픽 좋은 지렁이들이 아니라, 아주 고전 게임인

이런 형태의 지렁이 키우기 게임이다.


2. 문제

지렁이 키우기 게임에서의 지렁이를 클래스로 설계하고 구현하시오.

(핵심 기능 - 먹이를 먹으면 그만큼 몸통이 길어지고, 길어진 자신의 몸통과 부딪히면 그대로 게임 종료)


3. 전체코드 및 출력

3-1) 클래스 설계


3-2) 클래스 구현


3-3) 출력


4. 정리

출력을 보면 몸 길이에 따라서 지렁이가 움직일 때 소요되는 시간이 대폭 증가한다.


몸통 길이 10000의 지렁이가 10000번 움직이는 경우는 총 1억번의 이상의 계산이 소요되고, 이를 수행하는 시간은

다행히 1초 미만이다.


어제, 오늘 갖가지 간단한 여러 게임들을 구현하면서 재귀나 DP, 그래프 이런 알고리즘 보다도 

간단한 기능을 조합하여 꼼꼼히 예외조건에 벗어남 없이 설계하고 깔끔하게 구현하는 것이 무척 중요하다는 것을 느낀다.


재밌다.


내일도 시험이 기다리고 있는데, 내일은 어떤 문제가 즐겁게 해줄까.


기대되고 궁금하면서도 두렵다.



+ Recent posts