'프로그래밍'에 해당되는 글 1건

  1. 2008.12.16 [2학년/Programming Language2]기말 과제-두더지 잡기 2
Academic Project2008. 12. 16. 19:51
프로그래밍 언어2 기말 Open Book Test로 시작된 두더지 잡기 게임...
MFC를 이용하여 일주일안에 작성해오는 것이 이번 과제다.

먼저 문제에 대한 설명을 하자면
어렸을 때 누구나 한 번쯤 해보았을 법한 두더지 잡기 게임이다.
이런 거......

교수님께서 설명 해 주신 바로는,
게임이 시작하면 화면에 Random으로 두더지가 나타났다가 일정한 시간이 지나면 사라진다.
두더지를 마우스커서로 클릭하면 점수가 올라간다. 두더지가 나타났다 사라지는 시간은 점점 짧아진다.
정해진 시간(설정 가능!)이 지나면 점수를 표시하고 게임은 종료된다.

요구사항은,
MFC를 이용한 SDI프로그램이어야하며,
두더지는 나타날 때의 모습과 클릭했을 때의 모습이 달라야 한다.
경과 시간과 점수를 상태바에 표시하여야 한다.
1,2,3등의 등수와 점수가 저장되어야 한다.

이런 프로그램을 작성하기 전에는 먼저 로직을 구상하는 것이 먼저 일 것이다.

시험 문제로 게임에 필요한 변수를 적을 때는 먼저 Document 배열에 두더지를 표시하고 View에서 배열에 나와있는 두더지의 3가지 상태(없음, 나옴, 잡힘)를 보고 화면에 그릴 생각이었다.
하지만 생각해보니 두더지는 한 타이밍에 하나씩만 나오는 것이 좋을 것으로 보고
배열은 제외.
단순히 CPoint형으로 두더지가 나타난 위치를 지정하고
int형으로 하여 두더지상태가 어떤지 3가지 상태를 저장할 수 있도록 하기로 했다.

일단 뷰는 기존 오델로와 같은 방식으로 틀을 그리고 나타난 두더지는 흰 동그라미,
잡힌 두더지는 검은 동그라미로 나오도록 하기로 했다.

시간제한이 관건이므로 OnTimer(시험때는 이 함수가 떠오르지않아 시간 이벤트라고 적었다ㅜㅠ)를 사용
타이머 발생시 마다 두더지를 만들고 화면을 다시 그리도록 하고,

WM_LBOTTONDOWN메시지(마우스 왼쪽 버튼 클릭)가 발생하면 그 위치를 확인하여
두더지가 나타난 지점과 일치하면 상태를 '잡힘'으로 하고 점수를 증가 시킨다.

이렇게만 하면 메시지는 3가지면 된다.

구상은 간단했다.

하지만, 실제 구현이 문제....
다음 글에 이렇게 구현된 두더지 잡기 게임을 공개하겠다.
Posted by Hugh.Kim