선언이 두번이나?? 되나요?
DevilsTears
책에 예제인데요...
변수 newposition선언이 두번이 되나요??
void findpath(int mazearray[][WIDTH],mapposition startpos,mapposition endpos,linkedstack *pstack){
stacknode *pnode=NULL;
int isempty=FALSE,isfound=FALSE,i=0;
int markarray[HEIGHT][WIDTH]={0,};
if(pstack!=NULL){
mapposition newposition=startpos;
newposition.direction=0;
pushlsmapposition(pstack,newposition);//입구의 위치를 스택에 푸시
while(isempty==FALSE&&isfound==FALSE){//움직일수 있고 아직 출구를 못 찾았다면 경로를 계속 찾음
pnode=popls(pstack);
if(pnode!=NULL){
int x=pnode-data.x;
int y=pnode-data.y;
int direction=pnode-data.direction;
while(isfound==FALSE&&directionNUM_DIRECTIONS){
//현 위치에서, 아직 가보지 못한(이동 가능한 방향이 있는가??
int newx=x+DIRECTION_OFFSETS[direction][0];
int newy=y+DIRECTION_OFFSETS[direction][1];
if(newx=0&&newx=WIDTH&&newy=0&&newy=HEIGHT&&mazearray[newy][newx]==not_visit
&&markarray[newy][newx]==not_visit){//새로운 방향에 의해 새로운 위치로 이동가능 한가?
mapposition newposition;
newposition.x=x;
newposition.y=y;
newposition.direction=direction+1;// 여기서 왜 +1를 해주지??
pushlsmapposition(pstack,newposition);
markarray[y][x]=visit;
//이동가능하다면 현재의 위치 정보 및 방향 정보를 스택에 푸시
x=newx;
y=newy;
direction=0;
//새 위치로 이동.단 이때 방향정보는 초기화
if(newx==endpos.x&&newy==endpos.y){
isfound=TRUE;
newposition.x=newx;
newposition.y=newy;
newposition.direction=0;
pushlsmapposition(pstack,newposition);
markarray[newy][newx]=visit;
}
}
else{
direction++;
}
//기존의 방향에 의한 새로운 위치로 이동할 수 없다면 다른 방향으로 시도해본다.
}// end of while
free(pnode);
}//end of if
isempty=islinkedstackempty(pstack);
//더 이상 움직일 위치가 있는지 점검
}
}
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |