2014-06-14 4 views
2

슬라이더에 주어진 거북이의 양에 따라 코드를 더 압축하고 원점에 포커스를 집중시키고 싶습니다. 이것이 내 코드 인 경우패치를 원점에 가까운 빈 패치로 이동하는 방법?

to solid 
    set color blue 
    set xcor random sqrt number-of-particles - number-of-particles/2 
    set ycor random sqrt number-of-particles - number-of-particles/2 
    ifelse any? patches with [pcolor = black and count turtles-here = 0] 
    [move-to one-of patches with [pcolor = black and count turtles-here = 0]] 
    [die] 
end 

거북이 기원과 가장 가까운 빈 패치로 이동할 수 있도록 어떻게 포함할까요? 지금까지 내가 그 가정

if number-of-particles < volume * volume 
    [move-to one-of patches with [ 
+0

더 많은 컨텍스트가 있습니까? 무엇에 관한 것입니까, 어떤 언어입니까? – EWit

+0

언어는 netlogo입니다. 미안하다, 나는 그것을 잊었다! https://fbcdn-sphotos-ha.akamaihd.net/hphotos-ak-xpf1/v/t34.0-12/10481795_821533417866600_908696988_n.jpg?oh=df59c8dbc5a5762a2a7375aeb0327f34&oe=539E9471&__gda__=1402901356_d28a1fff3d660cf157af481ced14f3de 나는 그것을 만들고 싶어 : 여기 사진입니다 그래서 파란색 동그라미는 원점을 중심으로하고 함께 포장되어 사각형을 형성합니다. – user3741015

답변

1

는 "기원"에 의해 가지고, 당신은 patch 0 0을 의미, 여기 할 수있는 방법은 다음과 같습니다

to move-near-origin 
    let free-patches patches with [pcolor = black and not any? turtles-here] 
    ifelse any? free-patches [ 
    move-to min-one-of free-patches [ distance patch 0 0 ] 
    ] 
    [ die ] 
end 

두 가지 핵심은 min-one-ofdistance이다.

또한 count turtles-here = 0not any? turtles-here으로 바뀌 었습니다. 기본적으로 똑같지 만 더 읽기 쉽습니다. 또한 을 free-patches 변수에 저장 했으므로 반복하지 않아도되고 조건에 대한 모든 패치를 두 번 테스트 할 필요가 없습니다.

+0

고맙습니다! – user3741015

+0

내 기쁨. 그리고 당신이 여기 새로 왔기 때문에 [이 링크] (http://stackoverflow.com/help/someone-answers)를 확인하고 싶을 수도 있습니다. –

관련 문제