문제

나는 2 개의 출구가있는 5x5 그리드를 만들고 벽을 넣으려고 노력하고 있습니다. 다시 말해, 나는 미로 나 미로를 만들고 싶습니다.

테두리 라인을 두껍게 만들거나 패치의 한쪽의 색상 만 변경할 수있는 방법이 있는지 궁금합니다.

나는 한 명의 에이전트 만 안에 넣고, 그에게 몇 가지 요점을 보상함으로써 출구를 찾게하고 싶다. (Q- 러닝 알고리즘)

누구든지 아이디어가 있습니까?

이것이 불가능하다면 비슷한 코드를 제안 할 수 있습니까?

다음은 내가 만들고 싶은 것의 예입니다.

alt text

요청에 따라, 나는 내 작품을 게시했습니다 (수동으로 수행하는 것은 비효율적 인 것 같습니다). 지금까지 내가 가지고있는 것은 다음과 같습니다.

breed [frame frames]
to setup
  ca
    ask patches [ set pcolor white]

ask patch -7 8 [ set pcolor black]
ask patch -6 8 [ set pcolor black]
ask patch -5 8 [ set pcolor black]
ask patch -4 8 [ set pcolor black]
ask patch -3 8 [ set pcolor black]
ask patch -2 8 [ set pcolor black]
ask patch -1 8 [ set pcolor black]
ask patch 1 8 [ set pcolor black]
ask patch 0 8 [ set pcolor black]
ask patch 2 8 [ set pcolor black]
ask patch 3 8 [ set pcolor black]

ask patch 6 8 [ set pcolor black]
ask patch 7 8 [ set pcolor black]
ask patch 8 8 [ set pcolor black]

ask patch -7 7 [ set pcolor black]
ask patch -7 6 [ set pcolor black]
ask patch -7 5 [ set pcolor black]
ask patch -7 4 [ set pcolor black]
ask patch -7 3 [ set pcolor black]
ask patch -7 2 [ set pcolor black]
ask patch -7 1 [ set pcolor black]
ask patch -7 0 [ set pcolor black]
ask patch -7 -1 [ set pcolor black]
ask patch -7 -2 [ set pcolor black]
ask patch -7 -3 [ set pcolor black]
ask patch -7 -4 [ set pcolor black]
ask patch -7 -5 [ set pcolor black]
ask patch -7 -6 [ set pcolor black]
ask patch -7 -7 [ set pcolor black]

ask patch -7 -7 [ set pcolor black]
ask patch -6 -7 [ set pcolor black]
ask patch -5 -7 [ set pcolor black]
ask patch -4 -7 [ set pcolor black]
ask patch -3 -7 [ set pcolor black]
ask patch -2 -7 [ set pcolor black]
ask patch -1 -7 [ set pcolor black]
ask patch 1 -7 [ set pcolor black]
ask patch 0 -7 [ set pcolor black]
ask patch 2 -7 [ set pcolor black]
ask patch 3 -7 [ set pcolor black]
ask patch 4 -7 [ set pcolor black]
ask patch 5 -7 [ set pcolor black]

ask patch 8 -7 [ set pcolor black]

ask patch 8 8  [ set pcolor black]
ask patch 8 7  [ set pcolor black]
ask patch 8 6 [ set pcolor black]
ask patch 8 5 [ set pcolor black]
ask patch 8 4 [ set pcolor black]
ask patch 8 3 [ set pcolor black]
ask patch 8 2 [ set pcolor black]
ask patch 8 1 [ set pcolor black]
ask patch 8 0 [ set pcolor black]
ask patch 8 -1 [ set pcolor black]
ask patch 8 -2 [ set pcolor black]
ask patch 8 -3 [ set pcolor black]
ask patch 8 -4 [ set pcolor black]
ask patch 8 -5 [ set pcolor black]
ask patch 8 -6 [ set pcolor black]

ask patch -6 5 [ set pcolor black]
ask patch -5 5 [ set pcolor black]
ask patch -4 5 [ set pcolor black]
ask patch -4 4 [ set pcolor black]
ask patch -4 3 [ set pcolor black]
ask patch -4 2 [ set pcolor black]
ask patch -4 -1 [ set pcolor black]
ask patch -4 -2 [ set pcolor black]
ask patch -4 -3 [ set pcolor black]
ask patch -4 -4 [ set pcolor black]
ask patch -5 -4 [ set pcolor black]
ask patch -6 -4 [ set pcolor black]
ask patch -1 7 [ set pcolor black]
ask patch -1 6 [ set pcolor black]
ask patch -1 5 [ set pcolor black]
ask patch -1 4 [ set pcolor black]
ask patch -1 3 [ set pcolor black]
ask patch -1 2 [ set pcolor black]
ask patch 2 5 [ set pcolor black]
ask patch 2 4 [ set pcolor black]
ask patch 2 3 [ set pcolor black]
ask patch 2 2 [ set pcolor black]
ask patch 5 5 [ set pcolor black]
ask patch 5 4 [ set pcolor black]
ask patch 5 3 [ set pcolor black]
ask patch 5 2 [ set pcolor black]
ask patch 5 1 [ set pcolor black]
ask patch 5 0 [ set pcolor black]
ask patch 5 -1 [ set pcolor black]
ask patch 6 5 [ set pcolor black]
ask patch 7 5 [ set pcolor black]
ask patch -1 -1 [ set pcolor black]
ask patch 0 -1 [ set pcolor black]
ask patch 1 -1 [ set pcolor black]
ask patch 2 -1 [ set pcolor black]
ask patch 3 -1 [ set pcolor black]
ask patch 4 -1 [ set pcolor black]
ask patch -1 -2 [ set pcolor black]
ask patch -1 -3 [ set pcolor black]
ask patch -1 -4 [ set pcolor black]
ask patch 0 -4 [ set pcolor black]
ask patch 1 -4 [ set pcolor black]
ask patch 2 -4 [ set pcolor black]
ask patch 3 -4 [ set pcolor black]
ask patch 4 -4 [ set pcolor black]
ask patch 5 -4 [ set pcolor black]
end

다시, 이것은 비효율적 인 방법입니다. 이 방법을 계속하려면 4 개의 패치를 어떻게 1로 병합하여 에이전트 내부를 입력하고 중앙에있을 수 있습니까?

미리 감사드립니다.

도움이 되었습니까?

해결책

패치의 가장자리를 강조하려면 거북이를 사용해야합니다. 선으로 구성된 거북이 모양을 만들고 그 모양으로 거북이를 만들고 그에 따라 배치하십시오. 당신은 아마도 별도의 거북이를 사용하고 싶을 것입니다 ( "벽"이라고 부릅니다).

거북이를 만든 후에는 나중에 무언가를하고 싶다면 주위에 보관할 수 있습니다. 또는 "스탬프 다이"를 죽이기 위해 "스탬프 다이"를 할 수 있지만 먼저 그림에서 이미지를 남겨 두십시오. .

다른 팁

코드를 살펴보십시오 이 미로 제작자 Netlogo 모델. 알고리즘의 기본 아이디어는 벽 (경로)을 걷는 임의의 워커를 사용하는 것입니다. 그가 막 다른 골목에 도달했을 때, 그는 자신이 차례를 맞은 이전 장소로 순간 이동합니다.

재미있게 보내세요! 물론 a가 있습니다 미로 생성 알고리즘에 대한 위키 백과 항목 더 깊이 파고 싶다면.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top