2016-10-17 9 views
1

私は簡単な質問があります。同じ名前の2つの異なる品種からのタートル固有の変数を持っている

は [蚊蚊] 品種[人間、人間] 品種によって定義され、私は2つの品種を持っていると思ったと言うと、これらの品種のための同じ名前のカメ特定の変数を持っていると思いました。だから、

humans-own 
[ 
    infected 
] 
mosquitoes-own 
[ 
    infected 
] 

と私は

to infect 
    set infected true 
end 

のように、(感染が偽の初期ブール値に設定すると、設定が行われたことをふり)以降の手順を呼び出すために望んでいました。私はそれが真実であることを蚊と人間特有の「感染」変数の両方を設定呼ぶだろうということを理解し、私はこれをやりたい場合:

to specific-infect 
    if turtles = humans 
    [ 
    set infected true 
    ] 
    if turtles = mosquitoes 
    [ 
    set infected true 
    ] 
end 

。それは、カメが人間であるかどうかをチェックし、そうであれば、人間固有の「感染」を真にするか、あるいはその両方を行うか?本質的に、私が求めているのは、同じ名前のタートル固有の変数を持つことができ、それがコードにとって実行可能であるということですか?

ありがとうございます! :)

+0

全く問題はありません。 '感染してください...'は正しいことをするでしょう。 –

答えて

1

品種は確かに同じ名前の "独自の"変数を持つことができますが、一般的にはカメと同様に、本質的に品種のみがその変数の値を変更することができます。あなたはすべての蚊のためにすべての人間のために、偽の真の感染に設定したい場合は、以下のように、あなたはそれを行うだろう:

ask humans [set infected true] 
ask mosquitoes [set infected false] 

それとも、単に特定の人間のための

ask humans with [some characteristic] [set infected true] 

同様に、あなたでしょう各品種のエージェントにそれぞれの変数の値を報告させる。

show [infected] of human with [some characteristic] 

NetLogoプリミティブaskof、およびいくつかの例についてwithをチェックしてください。

これが役に立ちます。

+0

ありがとう!これは本当に私を助けた –

0

それぞれのカメレベルでは、カメは自分の品種を知っています。そう品種場合は を追加することができます=人間は[ヒトへの感染のことを行う] 品種場合= musquitosは[マスキート感染のことを行う]

Geerten

関連する問題