Category:Home/library (Total 7 items)

≪ Boids | L-system ≫

Ants

原文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()メソッドを持つ。
フェロモンの匂いが強ければ、より多くの蟻を引き寄せる。

Category:Home/library (Total 7 items)

≪ Boids | L-system ≫

Entries in this Category
Tutorial
Library
Syndicate this site

RSS 1.0 Feed

Return to page top