이건 전형적인 재귀호출을 이용한 미로찾기 입니다.
그런데 완전한 소스는 아니군요..
현재대로라면.. 화면에 미로만 출력하고 끝이나겠군요..
먼저 Recursive(재귀호출)를 이해하시면..
어렵지 않게 풀수 있는 문제입니다.
재귀호출 부분 찾아보세요..
허접초보 님이 쓰신 글 :
: 자료가 업이 안되네엽...
: #include <stdio.h>
:
: class CStack
: {
: CStack* m_pNext;
: int m_n;
:
: public:
: CStack(void) { m_pNext = NULL; m_n = 0; }
: CStack(int n) { m_pNext = NULL; m_n = n; }
:
: void Push(int n);
: int Pop(int& n);
:
: void Clear(void);
: };
:
: void CStack::Push(int n)
: {
: CStack* pObject = new CStack(n);
:
: if(m_pNext) {
: pObject->m_pNext = m_pNext;
: m_pNext = pObject;
: }
: else {
: m_pNext = pObject;
: }
: }
:
: /*
: int CStack::Pop(int& n)
: //리턴값: 0 실패(emtpy) 1: 성공
: {
:
: }
: */
:
: // 5 은 장애물
: // 6 은 길
: // 7 시작점
: // 8 은 끝점(목표..)
: // 4 지나온 길
: int map[10][10] =
: {
: 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //지훈아. 이게 지도야
: 5, 6, 6, 6, 5, 6, 6, 6, 6, 5,
: 5, 6, 5, 5, 5, 6, 5, 5, 6, 5,
: 5, 4, 5, 5, 5, 6, 5, 6, 6, 5,
: 5, 4, 5, 5, 5, 6, 6, 6, 6, 5,
: 5, 4, 6, 6, 5, 5, 6, 5, 6, 5,
: 5, 6, 5, 5, 5, 5, 6, 5, 6, 5,
: 5, 6, 6, 6, 6, 6, 6, 5, 6, 5,
: 5, 7, 5, 5, 5, 5, 5, 5, 8, 5,
: 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
: };
:
: /*
: int nStartX;
: int nStartY;
: int SearchStart(void)
: // 리턴값: 1: 성공 0:실패
: {
:
: }
:
: int nEndX;
: int nEndY;
: int SearchEnd(void)
: {
:
: }
: */
:
: void PrintMap(void)
: {
: for(int y = 0 ; y < 10 ; y ++) {
: for(int x = 0 ; x < 10 ; x ++) {
: switch(map[y][x]) {
: case 4:
: printf("@");
: break;
: case 5:
: printf("+");
: break;
: case 6:
: printf(" ");
: break;
: case 7:
: printf("S");
: break;
:
: case 8:
: printf("T");
: break;
: }
: }
: printf("\n");
: }
: }
:
: void main(void)
: {
: PrintMap();
: }
: 문제의 소스는 이거거든여... 부탁드리겠습니다.
|