Breeds
Last-modified: 2019-01-27 (日) 03:37:38 (1518d)
タートルをいくつかの種類に分けて処理するために用意されている 機能です。 通常のタートルの場合 †通常、タートルを生成するのには、Control CenterのObserver Command Centerか、 Observer Procedureに書いた手続きの中で 次のようにします。 create-turtle 100 これによってタートルが100匹生まれ、その後、それらに命令を出せば、 「全ての」タートルに対して、その命令が下され、動きだします。 breeds宣言 †「breeds」を使うには、まず、変数宣言と同様の場所に次のように宣言します。 breeds [ cats docs ] これで、「cats」と「dogs」という2種類の動物が使えるようになります。 breeds生成 †これらのbreedsを生成するにはタートルと同様に次のようにします。 create-cats 100 create-dogs 100 これで、「cats」と「dogs」という2種類の動物が生成されます。 breedsへの命令 †breeds毎に命令を下すには、turtle同様にaskします。 ask-cats [ fd 10 ] ask-dogs [ bk 20 ] これで、catsに対しては「前に10進め」で、docsに対しては「後ろに20下がれ」 と命令したことになります。 例 †わかりやすくするために、breeds生成時に位置と色を決めて、それに 対して命令してみます。 生成時に反対の方向を向けて、前に10進んで、その後、ランダムウォーク しますが、一度に進む距離を変えていますから広がり方が異なってきている のがわかると思います。 なお、initとgoのボタンもつけました。 breeds [ cats dogs ] to init ca create-cats-and-do 100 [ setc red seth -90 fd 10 ] create-dogs-and-do 100 [ setc blue seth 90 fd 10 ] end to go ask-cats [ rt random 360 fd 2 ] ask-dogs [ rt random 360 fd 1 ] end スクリーンショット †おわりに †種類の数があらかじめ決まっている様なモデルを作るときにはこのbreedsは 役に立つと思います。 ただし、種類自体が増えたりする様なモデルだとすれば、breedsでは限界が あって、turtle毎の状態変数で区別するなどの作りこみが必要になるかも しれません。
Counter: 392,
today: 1,
yesterday: 0
|