プログラミング

チュートリアル > プログラミング

このページでは Procedureタブを使って実際にプログラミングを行う。




ボタンの作成


 1. File > New を選び、新しいファイルを作る。
   左上の Add ボタンをクリックし(下図参照)ボタンを置きたい場所をクリックする。


 2. 作成したボタンを右クリックしてEditを選ぶ。コマンド欄に
    setup
   と記入し、OKボタンを押す。
   このままではボタンをクリックした時に "Nothing named SETUP has been defined" というエラーが
   出てしまう。和訳すると「SETUP が定義されていません」となる。


setup処理を定義する


 3. Procedureタブをクリックし、以下のように書く。
   to setup
    clear-all
    create-turtles 100
    ask turtles [ setxy random-xcor random-ycor ]
   end

   各処理(関数)は
    to 処理名
     処理
    end

   で記述される。上の例では 「setup」という処理を定義している。

   2行目の clear-allでは画面のクリア、
   3行目の create-turtles 100でタートルを100個描画するよう命令している。
   4行目の ask turtles [ setxy random-xcor random-ycor ]では、
   ask turtles [ ] で、各タートルに [ ] 内の命令を実行するよう伝えている。命令内容は
  [ setxy random-xcor random-ycor ] xy座標をランダムに決定し、タートルを描画する である。

   実行すると、以下のような図形が描画される。
   100個のタートル( =矢印 )がランダムな位置に描画されていることが分かる。



go(メイン動作)を定義する

 4. setupのときと同様に新しいボタンを作成する。
   コマンドの部分に「go」と書き、その上の Foreverにチェックを入れOKボタンを押す。
   下図のようにボタンに矢印マークがつけばOK。


 5. goの処理を定義する。
   Procedureタブをクリックし、以下のように書き加える。

   to go
    move-turtles
   end

   ここでは、「 go というボタンを押すと move-turtle という処理が行われる」と記述されている。
   このように、処理の中で別の処理を呼び出すことが出来る。
   (関数の入れ子みたいな感じ)

   続いて、move-turtle の処理を定義する。
   to go 〜 end の後に、以下のように書き加える。

   to move-turtles
    ask turtles [
     right random 360
     forward 1
    ]
   end

   3行目の right random 360では、360度の中からランダムに角度を選ぶことを意味し、
   4行目の forward 1で、1歩進むことを意味している。
   この2つの命令を
   ask turtles [ ]
   で、1つ1つのタートルに実行させている。

   Interfaceタブに戻って setup、go ボタンを押すと、
   各タートルがうねうねと進んでいく様子が見られる。


背景色の変更


   コマンドの作成でも行ったように背景色を変更することが出来る。

   setupを以下のように書き換える。

   to setup
    clear-all
    setup-patches
    setup-turtles
   end

   ここでは、画面の初期化(clear-all)に加えて
    setup-patches
    setup-turtles
   の2つの処理を行わせている。
   setup内に直接処理を記入するのではなく、別に処理関数を作ってその名前を書く方が
   ソースコードが見やすくなる。

   次に、setup-patches の処理を記述する。

   to setup-patches
    ask patches [ set pcolor green ]
   end

   ここでは背景色を緑色に変更している。
   また、setup-turtles の処理も記述する。

   to setup-turtles
    create-turtles 100
    ask turtles [ setxy random-xcor random-ycor ]
   end

   先ほどと同じく、100個のタートルをランダムな位置に配置させる処理を行わせる。

   ここまで書いたら Interfaceタブに切り替えて setup ボタンを押す。
   すると以下のような画像が出てくる。

最終更新:2009年05月17日 21:33
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。