2017-04-06 7 views
0

私は亀がパートナーを見つける必要があるコードを作成しています。これは手順です:亀はネットログでパートナーを見つける

patches-own [occupied?] 
turtles-own [partner fed?] 

to find-partners 
let singles turtles with [partner = nobody] 
if not any? singles [ stop ] 

    ask singles 
    [ lt random 50 
    rt random 50 
    fd 1 ] 

ask turtles 
[ 
    if (partner = nobody) and (any? other turtles in-radius 1 with [partner = nobody]) 
    [ set partner one-of other turtles in-radius 1 with [partner = nobody] 

    ask partner [ 
    set partner myself 

]]] 

end 

私はこの手順を1刻みで行いますが、それには500を要します。どうすれば修正できますか?

答えて

1

あなたの設定なしで正確に言うのは難しいですが、それはwhileのようです。 if not any? singles [stop]while any? singles [と置き換えてみてください

考えてみましょう。周りにシングルスがありますが、このループを続けてください。 "while"条件が満たされない場合、モデルはループのwhileにスタックされるため、注意してください。したがって、whileループ内にset singles turtles with [ partner = nobody ]行を含める必要もあります。だから一緒に、何かのようなもの

to find-partners 
    let singles turtles with [partner = nobody] 
    while [ any? singles ] [ 
     ask singles 
     [ lt random 50 
     rt random 50 
     fd 1 ] 

    ask turtles 
    [ 
     if (partner = nobody) and (any? other turtles in-radius 1 with [partner = nobody]) 
     [ set partner one-of other turtles in-radius 1 with [partner = nobody] 

     ask partner [ 
     set partner myself 

    ]]] 

    set singles turtles with [partner = nobody] 

    ] 

end 
関連する問題