보고서 3(제목: 4x4 퍼즐 게임 구현)

 

1. 보고서 3는 수업시간에 다룬 C++ “동적할당연산자 오버로딩기능을 보고서 2를 통해 학습해보는 과정이다. 또한, 파일 스트림을 통해 퍼즐 게임에 사용되는 숫자 패턴을 파일로부터 읽는 방법도 학습한다(“NumberPattern.txt” 파일이 프로젝트폴더에 존재해야 함). 첨부된 puzzleGame.cpp에 주어진 클래스와 미완성 C++ 코드를 완성하여 아래 그림과 같이 4x4 퍼즐 맞추기 콘솔 응용 프로그램을 완성한다. 다음 조건을 만족하도록 게임을 구현한다.

 

그림입니다.

원본 그림의 이름: CLP000063d072b6.bmp

원본 그림의 크기: 가로 820pixel, 세로 682pixel

<4x4 퍼즐 맞추기 게임 화면 예시>

 

(1) 처음에 퍼즐 조각들이 제 위치에 있어야 하고 게임이 시작되면 주어진 반복 회수만큼 섞는 과정을 수행한다. 이때에 퍼즐이 섞이는 과정을 화면에 확인할 수 있도록 시간지연을 준다. 시간 지연을 위해 <windows.h>에 선언된 Sleep() 함수를 사용한다.

(2) 퍼즐이 섞이면 퍼즐 조각의 이동을 위해 화살표 키들을 사용하여 퍼즐을 이동시킨다.

(3) 모든 퍼즐들의 조각들이 제자리를 찾으면 게임이 종료된다. 물론 ESC키를 눌러도 게임을 종료되지만 반복회수나 시간 값을 0으로 화면에 출력한다.

(4) 퍼즐을 맞추기 위해 퍼즐 조각을 움직인 회수와 걸리는 시간을 계산하여 퍼즐 이동시마다 화면에 출력한다.

 

2. 주의

(1) 첨부된 puzzleGame.cpp 파일의 C++ 소스를 충분히 검토 후 puzzleGame 클래스를 수정하거나 추가적인 변수나 함수를 포함할 수 있으나 최대한 기존 코드를 변경하지 않고 최대한 활용하여 C++ 코드를 완성한다.

(2) 인터넷에 유사한 소스를 참조하더라도 본인이 이해하고 스스로 게임을 구현하는 하는 경우에 본인 창작물로 인정받을 수 있으나 다른 학생의 소스나 인터넷에 있는 소스와 유사도가 높으면 감정 당할 수 있으니 주의하기 바랍니다. 소스코드의 길지 않기 때문에 스스로 구현해서 제출하기 바랍니다.

3. 제출일

(1) 가반: 2018516일 수요일 수업시간 전까지 제출

(2) 나반: 2018418일 금요일 수업시간 전까지 제출

 

4. 제출 항목

(1) 주석을 포함한 C++ 소스 코드를 프린트로 출력하여 제출

(2) 게임 시작 단계, 게임 도중 단계, 게임 종료 단계의 화면을 이미지 캡쳐하여 프린트 출력하여 제출

(3) 첨부된 보고서 표지를 반드시 사용함