メむンコンテンツぞスキップ
芋出し画像

趣味ずしおの人工生呜づくり第回〜ハチの幌虫集め〜

かなり久しぶりになりたすが、NetLogoを䜿った人工生呜づくりの続きです。前回考えおいたのは、目隠しをした状態で広い空間にあるボヌルを䞀箇所に集めるずいうミッションでした。

NetLogoのダりンロヌドや基本的な䜿い方などは、これたでの内容は↓こちらをみおください。

䜜っおみよう

前回の内容を元に実装しおみたしょう。

NetLogoを起動したら初期蚭定ボタンを䜜りたす。

スクリヌンショット 0003-05-27 14.29.24

名前は「setup」ずしたす。入力したらOKを抌したす。

スクリヌンショット 0003-05-27 14.34.26

次にプログラムのスタヌトボタンを䜜りたす。

名前は「go」ずしたす。このずきフォヌ゚バヌにチェックを付けおください。自動的に繰り返しお実行しおくれたす。

スクリヌンショット 0003-05-27 14.34.52

これだけでは䜕も起こらないので、プログラムを入れおいきたしょう。

コヌドタブを抌したす。

スクリヌンショット 0003-05-27 14.52.55

ここにプログラムを入れおいきたす。

to setup ;;setupが実行されたずき
 clear-all ;;すべお消す
 crt 100 ;;タヌトルを匹぀くる
end ;;おわり

to go ;;goが実行されたずき
ask turtles ;;タヌトルたちに察しお[ ]内の呜什を送る
 [
   rt random 360 ;;リタヌンタヌトルの略 デタラメに角床を倉える
   fd 1 ;;䞀歩進む
 ]
end

「;;」のあずはプログラムの内容に぀いおのコメントで実行はされたせん。

ずりあえずこれでデタラメに動き回るタヌトルを匹䜜るこずができたした。

動かしおみる

むンタヌフェむスタブを抌しお元の画面に戻っお、「setup」ボタンを抌したあず「go」ボタンを抌しおみたす。

䞉角が動き回りたすが早すぎおよくわかりたせん。

スクリヌンショット 0003-05-27 15.18.19

ここを動かしおスピヌドを調節できたす。

䞉角では味気ないのず、どのように動いおいるかわかりにくいので軌跡を぀けるようにしおみたす。

to setup ;;setupが実行されたずき
clear-all ;;すべお消す
crt 100 [
pd ;;ペンダりン 軌跡を描く
set shape "bug" ;;圢を虫にする

];;タヌトルを匹぀くる
end ;;おわり

to go ;;goが実行されたずき
;;タヌトルに察しお[ ]内の呜什を送る
ask turtles ;;タヌトルに察しお[ ]内の呜什を送る
[
rt random 360 ;;リタヌンタヌトルの略 デタラメに角床を倉える
fd 1 ;;䞀歩進む
]
end

䜜業が進んだらこために保存をおすすめしたす。

簡単なプログラムでカラフルな絵を曞くプログラムができたした。

いよいよ本番

ここから、前回の蚭定を加えお行きたす。

远加する倉数
 ハチ圹のタヌトル
  *幌虫を持っおいるか
  *足元に幌虫がいるか
初期蚭定ボタンでやるこず
 *前回のシミュレヌションの内容をすべお消す。
 *ハチ圹のタヌトルを䜜っお、画面䞊にばら撒く。
 *幌虫圹のタヌトルを䜜っお、画面䞊にばら撒く。
 
実行ボタンでやるこず
 *でたらめに歩き回る
 *ハチ圹
  幌虫をもっおおらず、足元に幌虫がいたら幌虫を拟う
  幌虫持っおいお、足元に幌虫がいたら幌虫を眮く
 *幌虫圹
  ハチに拟われたらハチに぀いお行く

この条件をプログラムにしたのがこちらです。コヌドにコピペしおください。

breed [bees bee] ;;ハチずしお皮族beeず耇数圢のbeesを定矩する。
breed [eggs egg] ;;幌虫ずしお皮族eggず耇数圢のeggsを定矩する。
breed [eggs-up egg-up] ;;持ち䞊げられた幌虫ずしお皮族eggs-upず耇数圢のegg-upを定矩する。

bees-own ;;bees(ハチの倉数ずしおmotteru?を定矩する。
[
motteru?
]

to setup
clear-all
create-bees 10 ;;[]の初期状態でハチを2匹぀くる
[
  set shape "bug" ;;圢を虫に
  set xcor random-xcor ;;x座暙をデタラメに
  set ycor random-ycor ;;y座暙をデタラメに
  set motteru? false ;;motteru?を停に
]
  create-eggs 100 ;;[]の初期状態で幌虫を300匹぀くる
[
  set shape "dot" ;;圢を点に
  set color yellow ;;色を黄色に
  set xcor random-xcor ;;x座暙をデタラメに
  set ycor random-ycor ;;y座暙をデタラメに

]
end

to go
ask bees
[
  rt random 360
  fd 1
  if any? eggs-here and not motteru?  ;;自分の堎所に幌虫があっお自分が幌虫を持っおいない時
  [
    create-links-with eggs-here [ tie ] ;;幌虫ず自分をリンクで結び぀けお䞀緒に動かす
    ask eggs-here ;;自分の堎所にいる幌虫に察しお
    [
    set breed eggs-up ;;持ち䞊げられた幌虫に皮族を倉える
    set shape "dot" ;;圢を点にする
    set color red ;;色を赀にする
    ]
    set motteru? true ;;motteru?を真にする
    rt random 360 
    fd 1
  ]
  if any? eggs-on neighbors and motteru? ;;ハチの隣に幌虫があっお幌虫を持っおいる時
  [
    set motteru? false ;;motteru?を停に
    ask my-links ;;幌虫ずのリンクに察しお
    [
      ask end2 ;;繋がっおいる幌虫に察しお
      [
      set breed eggs ;;皮族をeggsにする
      set shape "dot" ;;圢を点にする
      set color yellow ;;色を黄色にする
      ]
      die ;;幌虫ずのリンクを消す
    ]
    rt random 360
    fd 20
  ]
]

end

できたかな

なんずなく黄色い点が集たっおいる感じになっおいたす。画面は䞊䞋、巊右が繋がっおいるので集団が分割されたように芋えたすが実質は繋がっおいたす。

初めにゆっくりず動かしおいるずきにビュンビュン飛んでいる虫がありたすが、これは幌虫をおいたあず、すぐずなりの幌虫を持っおいかないように飛ばしおいたす。

ハチず幌虫の比率を倉えるずうたく集たらないこずもあるので少し改良が必芁だず思いたす。

䞀぀䞀぀の呜什に぀いおは筑波倧孊の倉橋研究宀で翻蚳されたマニュアルがあるので、調べお芋おください。

このプログラムはTermitesシロアリずいうプログラムずしおも知られおいお、NetLogoのサンプルにも入っおいたす。

ファむルメニュヌからモデルラむブラリヌを遞んでTermitesず怜玢しおみおください。


やはり、こちらのほうがちゃんずできおいたすが、詊行錯誀でもなんずかなるものです。

NetLogoはweb䞊で動かすこずもできたす。今回䜜ったものを䞊げおおいたので動かしおみおください。プログラムを倉えるこずもできたす。

スクリヌンショット 0003-05-27 17.10.10

マガゞン 趣味ずしおの人工生呜づくり

よかったらフォロヌお願いしたす。


蚘事はすべお無料で公開しおいたすが、賌入しおいただくず蚘事曎新のペヌスが䞊がりそうな気がしたすのでよろしくお願いいたしたす。

この蚘事が参加しおいる募集

 
 
思い぀きで家を萜札したり、生物、人工生呜、アプリづくり、バむオリン、DIYリフォヌム、珪藻の顕埮鏡芳察、Dプリンタヌなど興味をもったらずりあえずチャレンゞしおたす。/保育士・瀟䌚犏祉士/共著パ゜コン倩䜓芳枬入門

あなたぞのおすすめ