작성자 | Guetelperr | ||
---|---|---|---|
작성일 | 2010-05-08 03:44:39 KST | 조회 | 10,464 |
첨부 |
|
||
제목 |
랜덤 미로를 구현한 방법
|
쉽게 생각할 수 있는 방법은
10x10이라는 지도가 있을때, 그 100개의 칸중에서 랜덤하게 장애물을 설치하는 방법입니다.
그래서 시작지점부터 도착지점까지 저글링 한마리에게 한계이속인 160을 주고 이동명령을 내려서
도착하는데 성공하면 저글링을 제거하고 게임시작.
성공하지못하면 저글링와 모든 장애물을 제거한 후 다시 장애물을 랜덤생성하는 겁니다.
문제는 이 장애물을 어떻게 랜덤하게 뿌리느냐 인데요,
저는 2차원 배열을 사용했습니다.
제가만든 랜덤미로에서는 뿌릴공간이 11x10과 12x9로 총 218개의 칸에 랜덤으로 뿌려야 했는데요,
(중간에 미리 언덕을 생성해뒀기 때문에 하나의 배열로는 해결할 수 없었습니다)
11x10인 표를 만들고 for문을 두번 써서 각각의 칸에 장애물의 생성여부를 저장하면 되는겁니당.
즉, 유효성 검사는
For x를 1~11까지
ㄴFor y를 1~10까지
ㄴ변수의 (x,y)에 1~5 사이의 무작위 정수 대입
요롷게 하고
블록 생성은
For x를 1~11까지
ㄴFor y를 1~10까지
ㄴif 변수의 (x,y)에 저장된 수가 2보다 같거나 작으면
ㄴ지도의 (x*6+4,y*6+1)위치에 장애물 생성
언덕 사이사이의 장애물 간의 거리가 6이기때문에 x와 y에 6을 곱해줬고,
최초 위치가 10,7이었기 때문에 x에 +4, y에 +1을 해줬습니다.
12,9의 배열에 블록을 뿌리는것도 마찬가지 방식으로 'ㅅ'..
2차원 배열을 써본분들에겐 이미 익숙해서 도움이 안되고
2차원 배열을 모르면 암만 떠들어도 크게 와닿지 않는 팁이랄까요..
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.