Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2013] Re:아래 미로찾기 소스 추가 질문인데요...
pd [kmshts] 1373 읽음    2003-02-23 12:09
소스를 보시면알겠지만. 아마 가장 아랫줄은.

---------------------------------------

이런식의 경계로 되어있을껍니다.
바닥선은 별도로 처리하겠다는 말이겠졍?

if (y < MAZE_SIZE - 2  &&  m[y+1][x]) s |= DOWN;

이것은  바닥선을 따로 처리하기위해 미로를 구성하는 부분까지 처리해주는겁니다.

책이 있으시다면 109쪽 테이블을 보십시요. 거기에 조합하는게 나왔는데
그림으로보면. 잘몰겠졍?
010│
010│
000
이렇게 된게 업일껍니다. 
010 │
010 │
010 │
이것이 업하고 다운
010 │
011 └─
000
이거이겠졍?

실질적으로 여기서는 이렇게 처리했는데 아스키코드엔 이게 하나로 나와영,,.
저는 윈도우즈용으로 처리할라고해서 잘안되는데 실제로 9개 숫자가모여서 하나의
아스키코드를 이룬다고 보면됨.

저도 잘몰라영. 워낙 흐지부지하게 넘겨설.. ㅎ,.ㅎ
거기에 9개씩 처리한다고 나와있을텐뎅..


로터스 님이 쓰신 글 :
: int  get_shape(int m[][MAZE_SIZE], int x, int y)
:     {
:     static shape[] =
:         {  32, 179, 196, 192, 179, 179, 218, 195, 196, 217, 196,
:           193, 191, 180, 194, 197 };
:     int s = 0;
:     if (m[y][x])
:         {
:         if (y > 0  &&  m[y-1][x]) s |= UP;
:         if (y < MAZE_SIZE - 2  &&  m[y+1][x]) s |= DOWN;
:         if (x > 0  &&  m[y][x-1]) s |= LEFT;
:         if (x < MAZE_SIZE - 2  &&  m[y][x+1]) s |= RIGHT;
:         }
:     return shape[s];
:     }
:
: 여기서요..
:
: if (y < MAZE_SIZE - 2  &&  m[y+1][x]) s |= DOWN;
:
: 이부분 말인데요,
:
: y < MAZE_SIZE - 2
:
: 이것 역할이 아랫쪽 경계를 넘지 않나 확인하는 거잖아요?
: 근데 왜 - 2 가 되는지 잘 모르겠네요..
: - 1 이어야 할 것 같은데요..
:
: 전체 배열 크기가 m[19][19] 이고, y 값이 17이라고 한다면
: 17 < 17 이 되서 18행은 계산되지 않게 되는거 아닌가요? 19행이 경계인데....
: 아무쪼록 도움 부탁드립니다...

+ -

관련 글 리스트
2000 아래 미로찾기 소스 추가 질문인데요... 로터스 1341 2003/02/19
2013     Re:아래 미로찾기 소스 추가 질문인데요... pd 1373 2003/02/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.