NetLogo에서 여러 그룹의 에이전트를 만들려고합니다. 각 그룹이 중복되지 않고 특정 영역에 위치하기를 바랍니다. 제가 생각할 수있는 것처럼,이를 달성하는 가장 쉬운 방법은 세상을 여러 부분으로 나누는 것입니다. 각 부분은 여러 개의 패치로 구성되어 있으며 (100 + 무작위 10), 고유 한 색상으로 채색되어 있습니다. 그런 다음 새로 만든 거북이에게 다른 색상의 패치로 이동하도록 요청하십시오. 아무에게도이 방법을 알려주거나 제안을 해주실 수 있습니까? 미리 감사드립니다.NetLogo를 여러 개의 임의의 부분으로 나눕니다.
답변
하나의 전략은 다른 영역을 성장시키는 것입니다. 예를 들면 다음과 같습니다.
to grow-regions [ num-regions ]
let region-num 0
ask n-of num-regions patches [
set pcolor item region-num base-colors
set region-num region-num + 1
]
while [ any? patches with [ pcolor = black ] ] [
ask patches with [ pcolor != black ] [
ask neighbors with [ pcolor = black ] [ set pcolor [ pcolor ] of myself ]
]
]
end
최대 14 개의 다른 영역을 그릴 수 있습니다 (기본 색의 수이기 때문에). 그래서 같은 지역에서
이 결과 :
편집 : 귀하의 코멘트를 오독. 분명히이 방법으로 영역의 크기를 제어 할 수는 없지만 평균 크기는 입니다.
고마워요. 이것은 내가 원하는 거의 것입니다. 나는 이것을 바탕으로 개선 할 수 있습니다. 나는 지역의 크기를 어떻게 설정했는지 잘 모르겠습니다. 정확히 내 질문은 각 지역에서 while 루프를 실행하는 순서입니다. 각각의 루프는 한 번씩 (각 실행마다 무작위 순서로) 루프를 실행하는 것처럼 보이며, 모두 완료되면 각 루프가 다시 루프를 실행합니다. –
속도가 낮고 연속적으로 설정된 업데이트로 코드를 실행 해 봅니다. . 각 패치의 색상이 어떻게 달라지는 지 확인할 수 있습니다. 'while' 라인 바로 뒤에'print' 문을 써서 각 반복이 언제 시작되는지 볼 수 있습니다. –
- 1. C - 문자열을 여러 부분으로 나눕니다.
- 2. OpenCV, 객체를 부분으로 나눕니다.
- 3. n을 x 개의 랜덤 부분으로 나눕니다.
- 4. 화면을 두 부분으로 나눕니다.
- 5. 목록을 N 부분으로 나눕니다.
- 6. 오버플로로 화면을 똑같은 부분으로 나눕니다.
- 7. Sub 사전을 작은 부분으로 나눕니다.
- 8. 테이블 열을 3 부분으로 나눕니다.
- 9. 전체 파일 이름을 부분으로 나눕니다.
- 10. WPF - 기본 창을 부분으로 나눕니다.
- 11. 큰 텍스트 (xyz) 데이터베이스를 x 개의 동일한 부분으로 나눕니다.
- 12. 글자와 숫자로 구성된 문자열을 부분으로 나눕니다.
- 13. app.config의 appsettings 섹션을 두 부분으로 나눕니다.
- 14. JAVA 거대한 파일을 여러 부분으로 나눕니다. ZIP. 어떻게?
- 15. 임의의 수의 임의의 요소로 숫자를 나눕니다?
- 16. 목록 상자 항목을 2 부분으로 나눕니다.
- 17. 선형 레이아웃 배경을 다른 색상 부분으로 나눕니다.
- 18. 오라클 테이블을 무작위로 5 부분으로 나눕니다.
- 19. 브라우저 화면을 세 부분으로 나눕니다 (Google지도 API)
- 20. 문자열을 N 문자의 부분으로 목록으로 나눕니다.
- 21. CATransform3D는 애니메이션 전에 UIView를 두 부분으로 나눕니다.
- 22. 자바 문자열을 패턴 현명한 부분으로 나눕니다.
- 23. 하나의 열을 여러 개의 열로 나눕니다.
- 24. 점의 벡터를 두 개의 공간으로 나눕니다.
- 25. 게임을 여러 개의 독립형 부분으로 나누기
- 26. 임의의 3 개의 문자열을 선택하고 PHP로 콤마로 나눕니다.
- 27. 텍스트를 선택한 다음 AJAX 용 jQuery로 세 부분으로 나눕니다.
- 28. 바이트를 두 개의 작은 숫자로 나눕니다.
- 29. 여러 부분으로 구성된 HttpWebResponse
- 30. 문자열을 여러 줄로 나눕니다.
부품의 크기와 모양은 어떻게됩니까? 그들은 각각 (경계를 만지기) 바로 옆에 오거나 완전히 분리되어야합니까? –
크기는 디자이너가 설정해야합니다. 하지만 정확한 숫자 일 필요는 없습니다. 범위 또는 임의의 숫자 (예 : 100 + 임의의 숫자 10) 일 수 있습니다. 당신은 세계에서 임의로 패치를 선택합니다 (물론 그들은 서로 인접해야합니다). 따라서 모양은 크기로 정의됩니다. 부품은 국경을 접촉해야하며 모든 부품이 세계를 완전히 차지해야합니다. –