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

 

1. 아래 그림과 같이 4x4 퍼즐 맞추기 게임을 콘솔창에 구현한다. 다음 조건을 만족하도록 게임을 구현한다.

                        *** Fifteen Puzzle ***

                                 1    2    9     3

                                 6    8    7     4

                                10   *    5    15

                                13  14   12  11

 

                             이동 회수: 10

                             소요 시간: 15.2

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

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

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

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

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

 

2. 주의

(1) 첨부된 fifteenPuzzle.cpp 파일의 소스를 충분히 검토하여 이해한 후 추가적인 변수나 함수를 포함할 수 있으나 주어진 함수나 변수를 변경하지 않고 최대한 활용하여 구현한다.

(2) cout 객체를 사용하여 화면 출력하는 것을 포함하여 코딩 시에 최대한 C++ 관련 함수나 클래스 객체를 사용한다. 그리고 map 배열이나 action 변수를 main()함수의 지역변수로 선언해서 사용해야 한다. , 빈칸(‘*’)의 위치를 저장하는 x,y 변수처럼 전역변수로 선언해서 사용할 수 없다.

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

 

3. 제출일

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

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

4. 제출 항목

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

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

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