랜덤 워크에 대한 소스 및 구현시 오류사항 수정내용 결과내용 (한글파일)
- 최초 등록일
- 2010.12.03
- 최종 저작일
- 2010.05
- 13페이지/ 압축파일
- 가격 1,500원
목차
Random Walk
본문내용
N x M 배열의 각 배열 중 임의의 장소를 하나 지정하고 그곳을 기준으로 모든 배열을 임의로 이동하여
모든 배열을 한번씩 지나칠 때 프로그램이 종료되게 됩니다.
우선 각 배열을 고정시키기보다 원하는 만큼의 배열을 만들기 위하여 int **Maze 라는 이중포인터를 사용하여
포인터에 포인터를 for 문으로 배열 N 과 M 값을 받아 범위를 지정할 수 있게 하였습니다.
그리고 전체 배열에 0의 값을 넣어 초기화를 시킵니다.
어떤 지점에서 시작하기 위한 위치 또한 여러 가지 방법으로 실험을 위하여 위치를 받아 그 위치에 해당하는
배열의 값을 1로 시작하게 만듭니다.
그다음 기타 필요한 값들을 정하게 되고 While을 사용하여 N*M 개의 배열들을 전체 값들이 0이 아닌 1이상인 경우 Full 이라는 int 변수를 ++ 시켜 전체 배열에 값이 다 올라가게 되면 프로그램은 종료하게 됩니다.
여러 가지 경우를 생각하고 만들다보니 많은 문제점들이 발생하였습니다.
가장 처음 발생한 문제는 임의 값을 받아 배열을 만들때 최대값이 변하고 그 값까지의 배열 개수만 생각하여
벽의 범위를 넘어서서 메모리침범 에러가 발생하는 문제였습니다. 벽의 범위에 도착했을 경우 if 로 먼저 한쪽의 범위를 넘어서게 되면 그 값을 -- 시켜 줄인뒤 나머지 하나도 넘어설 경우 감소하겠금 만들었었습니다.
그러나 처음 최대값을 잘못 생각하여 M N 범위에 -1을 시켜 그 초과시 감소시키는게 아닌 있는 그대로 사용하여 많은 문제가 발생하였습니다. 또한 그 값을 수정한 뒤 if 내에 여러 부분에 해당하는 벽들 각각에서 경우를
생각 하지 못하여 프로그램은 돌아가나 엉뚱한 카운트 값이 더 올라가고 수치가 이상하게 나오는 경우도 발생하였습니다. 그 문제는 if 문안에 한쪽이 벽면을
참고 자료
없음
압축파일 내 파일목록
randwalk.c
랜덤워크.hwp