2017-07-28 15 views
1

私はnetlogoにはとても新しく、特定の種類の独自の変数になるようにパッチのグループを設定する方法が不思議です。たとえば、のは、私が持っているとしましょう:私はパッチのセットを持つことができるようにしたいNetlogoは、同種の変数に独自のパッチ群を割り当てます

breed [ buildings building ] 
buildings-own [ my-patches ] 

個々の建物の私の-パッチのフィールドに割り当てられている(のはので、いくつかの座標によって制約長方形を、言ってみましょう)。どうすればいい?

答えて

1

ようこそスタックオーバーフローとNetlogo!上記のように品種とbuildings-ownが与えられた場合は、setを使用して、変数を保持するpatch-setを割り当てることができます。

to setup 
    ca 
    ask patches with [ pxcor mod 10 = 0 and pycor mod 10 = 0 ] [ 
    sprout-buildings 1 [ 
     set shape "square" 
     set heading 0 
     set size 1.5 
     set my-patches patches with [ 
     pxcor > [pxcor] of myself - 3 and 
     pxcor < [pxcor] of myself + 3 and 
     pycor > [pycor] of myself - 3 and 
     pycor < [pycor] of myself + 3 
     ] 
     ask my-patches [ 
     set pcolor [color] of myself - 2 
     ] 
    ] 
    ] 
    reset-ticks 
end 
+0

ありがとうございます!各建物にユニークなIDを割り当てる方法はありますか? – billybobetbo

+0

あなたは大歓迎です!建物には、作成された順序に基づいて割り当てられたユニークな「who」識別子(「建物に質問する」)があります。ただし、xyの場所と場所固有の名前をより正確に制御したい場合は、私の答え[ここ](https://stackoverflow.com/questions/45361848/netlogo-set-specific-setxy-patern-with-set-number) -of-turtle/45362094#45362094)があなたのために働くかもしれません。実世界の建物を表現しようとしている場合は、 'GIS'拡張モジュールを使いたいかもしれません(しかし、これはより複雑で、名前/値を割り当てるためにシェープファイルを使います)。 –

2

最初に知っておくべきことは、あなたがパッチの品種を持つことができないということです。それがあなたが望むものだとは言わないが、私はただあなたがこれを知っていることを確認したい。

このコードをご覧ください。それはいくつかのカメ(不動産業者と呼ばれる)を作成し、それぞれにいくつかのパッチを割り当てる完全なプログラムです。その後、これらのパッチを不動産業者と同じ色にします。

breed [realtors realtor] 
realtors-own [my-patches] 

to setup 
    clear-all 
    create-realtors 10 
    [ setxy random-xcor random-ycor 
    set size 2 
    set shape "circle" 
    set my-patches n-of 5 patches in-radius 3 
    ] 
    ask realtors [ask my-patches [set pcolor [color] of myself ] ] 
    reset-ticks 
end 

「セットアップ」のボタンを作成するか、コマンドセンターにsetupを入力するだけで実行できます。

関連する問題