2016-08-12 8 views
2

現在、マルチレベルモデルを設定しており、NetLogo LevelSpace拡張機能を使用したいと考えています。私は、親モデルが子モデルからグローバル変数の値を要求するようにしたいが、構文には少し問題がある。エージェントからの情報要求の例を見つけることができます。NetLogo LevelSpaceのモデル間で情報を渡す

let turtle-id 0 
(ls:report model-id [ [ color ] of turtle ? ] turtle-id) 

が、これは、例えば、私はのような何かをしたいグローバル変数のために動作していないよう:

ls:report model-id [child-global-variable] 

可能これは、または私は完全にLevelSpaceの動作方法をしないのですか?

私は解決策を見つけた

答えて

1
ls:report model-id [child-global-variable] 

私は少しls:ofを使用して好むものの、実際にそれがof一致したからといって、うまく動作します。私たちは今議論していると述べた

[child-global-variable] ls:of model-id 

、すべてのコードは、今後のバージョンが必要ですLevelSpace(これはNetLogo 6.0の次期バージョンで実行されます)。

あなたがここにNetLogo 5.3.1で動作するバージョンダウンロードすることができます。バージョンは、文字列でのモデルの間で渡されるそのコードを必要とすることにhttps://github.com/NetLogo/LevelSpace/releases/tag/0.1

を。だから、しなければならない:あなたがここにそのバージョンのドキュメントを見つけることができます

"child-global-variable" ls:of model-id 

:混乱のため申し訳ありませんhttps://github.com/NetLogo/LevelSpace/blob/c3f78f45217e34cd31b18a246e4749e74209f29f/README.md

を!

+0

ああ!これは、他のコマンドの一部(例:ls:with)が動作しない理由を説明しています。私は拡張機能の新しいバージョンのドキュメントを読んでいます。それが本当に助けてくれました - ありがとう! – mtomtom

1

:変数を報告し、子モデル内の関数を作成:次に

to-report report-variable 
    report variable 
end 

を、私は親モデルからこの関数を呼び出すことができます。

show "report-variable" ls:of ls:models 

ありませんこれが最も効果的な方法であるかどうかは確かですが、うまくいくようです。

関連する問題