- 2008-06-16 (月)
- library/systems
原文http://www.nodebox.net/code/index.php/Ants
Your Own Digital Antfarm (YODA): あなた自身のデジタル蟻の巣を持つことができます!
Antsライブラリは蟻のような小さい動物が、協力して餌を集める行動を実装する、分かり易いツールを提供する。
実際の蟻はpretty coolだ。
彼等は社会的コンテクストにおいて、フェロモンの匂いでコミュニケートして、一緒に働く。
蟻は食べ物を見つけ、墓地を建設し、イモムシに群がる。
(昼間に領域を導き、夜に蟻の巣へ持っていく)
本質的に、Antsライブラリ内のantは4つのシンプルな行動を持つ。
- Wander: 食物の探索で漠然と歩き回る
- Follow: フェロモンの道に遭遇すると、食物へとついて行く。
- Harvest: 食物がそばにあると、収集する。
- Hoard: 食物を運ぶ時、匂いに従ってまっすぐ帰る。
Download
略
Documentation
How to get the library up and running
実行するスクリプトと同じフォルダにAntsライブラリフォルダを置けばNodeboxがライブラリを見付けることができる。 同様に、~/Library/Application Support/NodeBox/に置いても良い。
ants = ximport("ants")
Creating a colony
colony()コマンドは新しいコミュニティーを返す。
n個のant、x,yロケーション,オペレーションする半径rから成る。
colony(n, x, y, r)
返されたcolonyオブジェクトはプロパティを持つ。
- colony.foodsources: エリアの回りのfoodオブジェクトのリスト
- colony.food: 蟻が取り入れたfoodを表す数。
- colony.x: コロニーの水平方向の中心
- colony.y: コロニーの垂直方向の中心
- colony.r: コロニーの半径。
The ants in a colony
colony()コマンドから返されたcolonyオブジェクトは、独立した蟻のリストである。
簡単にループ出来る。:
colony = ants.colony(30, WIDTH/2, HEIGHT/2, 200)
for ant in colony:
print ant.x, ant.y
各antオブジェクトは有用なプロパティを持つ。
- ant.x: antの水平方向の位置。
- ant.y: antの垂直方向の位置。
- ant.has_food: antがコロニーへfoodを運んでいるならTrue。
- ant.trail: antがfoodからcolonyへの道標に使用するpheromone(フェロモン)オブジェクトのリスト
- ant.wandering: round(ぶらついている蟻)の数、コロニーの半径を越えると、蟻はコロニーへ戻る。
各antオブジェクトはメソッドを持つ。
初期メソッドはant.forage()で、通常はfoodを探すantを持つアニメーションの各フレームで呼び出す。
ant.forage(speed=2)
wander, trail, harvestの為のant AIを含むメソッドはソースコードをチェックすること。
ant.goal(obj)
このメソッドは、antの為のゴールとしてx,yプロパティーを持つ、オブジェクトobjをセットする。
antはそれに向かって発進する。
このローレベルのantコマンドは、カスタムなゴールの定義により、蟻の行動を修正することが出来る。
ant.near(obj, radius=10)
このコマンドは何かがすぐ近くにあるかチェックする。
もし、オブジェクトのx,yプロパティーがantの半径内にあればTrueを返す。
このローレベルのantコマンドはゴールに届く際のカスタムな行動の定義により、antの行動を修正出来る。
Food
food()コマンドは蟻が収集する為の新しい食物の塊を作る。
colony内へfoodsourcesリストを加えると、蟻は見付けることが出来る。
food(x, y, size)
for i in range(8): x = 50 + random(WIDTH-100) y = 50 + random(HEIGHT-100) s = random(20,40) colony.foodsources.append(ants.food(x,y,s))
Pheromones
ant.trailのリストはfoodとhome間の道標に使うpheromoneを含む。
フェロモンオブジェクトは、効果範囲(strength)のx, yポジションを持ち、フェロモン効果を減少させるevaporate()メソッドを持つ。
フェロモンの匂いが強ければ、より多くの蟻を引き寄せる。
- Newer: L-system ≫
- Older: ≪ Boids