「プログラミング」の編集履歴(バックアップ)一覧はこちら
「プログラミング」(2009/05/17 (日) 21:33:14) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
[[チュートリアル>http://www13.atwiki.jp/netlogo/pages/17.html]] > プログラミング
#size(14){{{
このページでは Procedureタブを使って実際にプログラミングを行う。
#Contents
----
**ボタンの作成
1. File > New を選び、新しいファイルを作る。
左上の Add ボタンをクリックし(下図参照)ボタンを置きたい場所をクリックする。
&ref(pic7.png)
2. 作成したボタンを右クリックしてEditを選ぶ。コマンド欄に
&bold(){ setup}
と記入し、OKボタンを押す。
このままではボタンをクリックした時に "Nothing named SETUP has been defined" というエラーが
出てしまう。和訳すると「SETUP という名前のものが定義されていません」となる。
***setup処理を定義する
3. Procedureタブをクリックし、以下のように書く。
#blockquote(){&bold(){ to setup}
&bold(){ clear-all}
&bold(){ create-turtles 100}
&bold(){ ask turtles [ setxy random-xcor random-ycor ]}
&bold(){ end}
}
各処理(関数)は
#blockquote(){&bold(){ to 処理名}
&bold(){ 処理 }
&bold(){ end}
}
で記述される。上の例では 「setup」という処理を定義している。
2行目の&bold(){ clear-all }では画面のクリア、
3行目の&bold(){ create-turtles 100 }でタートルを100個描画するよう命令している。
4行目の&bold(){ ask turtles [ setxy random-xcor random-ycor ] }では、
&bold(){ask turtles [ ]} で、各タートルに [ ] 内の命令を実行するよう伝えている。命令内容は
&bold(){[ setxy random-xcor random-ycor ] } xy座標をランダムに決定し、タートルを描画する である。
実行すると、以下のような図形が描画される。
100個のタートル( =矢印 )がランダムな位置に描画されていることが分かる。
&ref(pic8.png)
***go(メイン動作)を定義する
4. setupのときと同様に新しいボタンを作成する。
コマンドの部分に「&bold(){go}」と書き、その上の&bold(){ Forever }にチェックを入れOKボタンを押す。
下図のようにボタンに矢印マークがつけばOK。
&ref(pic13.png)
5. goの処理を定義する。
Procedureタブをクリックし、以下のように書き加える。
#blockquote(){&bold(){ to go}
&bold(){ move-turtles}
&bold(){ end}
}
ここでは、「 go というボタンを押すと move-turtle という処理が行われる」と記述されている。
このように、処理の中で別の処理を呼び出すことが出来る。
(関数の入れ子みたいな感じ)
続いて、move-turtle の処理を定義する。
to go 〜 end の後に、以下のように書き加える。
#blockquote(){&bold(){ to move-turtles}
&bold(){ ask turtles [}
&bold(){ right random 360}
&bold(){ forward 1}
&bold(){ ]}
&bold(){ end}
}
3行目の&bold(){ right random 360 }では、360度の中からランダムに角度を選ぶことを意味し、
4行目の&bold(){ forward 1 }で、1歩進むことを意味している。
この2つの命令を
&bold(){ ask turtles [ ]}
で、1つ1つのタートルに実行させている。
Interfaceタブに戻って setup、go ボタンを押すと、
各タートルがうねうねと進んでいく様子が見られる。
**背景色の変更
[[コマンドの作成>http://www13.atwiki.jp/netlogo/pages/19.html ]]でも行ったように背景色を変更することが出来る。
&bold(){setup }を以下のように書き換える。
#blockquote(){&bold(){ to setup}
&bold(){ clear-all}
&bold(){ setup-patches}
&bold(){ setup-turtles}
&bold(){ end}
}
ここでは、画面の初期化(&bold(){clear-all})に加えて
&bold(){ setup-patches}
&bold(){ setup-turtles}
の2つの処理を行わせている。
&bold(){setup }内に直接処理を記入するのではなく、別に処理関数を作ってその名前を書く方が
ソースコードが見やすくなる。
次に、&bold(){setup-patches} の処理を記述する。
#blockquote(){&bold(){ to setup-patches}
&bold(){ ask patches [ set pcolor green ]}
&bold(){ end}
}
ここでは背景色を緑色に変更している。
また、&bold(){setup-turtles} の処理も記述する。
#blockquote(){&bold(){ to setup-turtles}
&bold(){ create-turtles 100}
&bold(){ ask turtles [ setxy random-xcor random-ycor ]}
&bold(){ end}
}
先ほどと同じく、100個のタートルをランダムな位置に配置させる処理を行わせる。
ここまで書いたら Interfaceタブに切り替えて setup ボタンを押す。
すると以下のような画像が出てくる。
&ref(pic9.png)
}}}
[[チュートリアル>http://www13.atwiki.jp/netlogo/pages/17.html]] > プログラミング
#size(14){{{
このページでは Procedureタブを使って実際にプログラミングを行う。
#Contents
----
**ボタンの作成
1. File > New を選び、新しいファイルを作る。
左上の Add ボタンをクリックし(下図参照)ボタンを置きたい場所をクリックする。
&ref(pic7.png)
2. 作成したボタンを右クリックしてEditを選ぶ。コマンド欄に
&bold(){ setup}
と記入し、OKボタンを押す。
このままではボタンをクリックした時に "Nothing named SETUP has been defined" というエラーが
出てしまう。和訳すると「SETUP が定義されていません」となる。
***setup処理を定義する
3. Procedureタブをクリックし、以下のように書く。
#blockquote(){&bold(){ to setup}
&bold(){ clear-all}
&bold(){ create-turtles 100}
&bold(){ ask turtles [ setxy random-xcor random-ycor ]}
&bold(){ end}
}
各処理(関数)は
#blockquote(){&bold(){ to 処理名}
&bold(){ 処理 }
&bold(){ end}
}
で記述される。上の例では 「setup」という処理を定義している。
2行目の&bold(){ clear-all }では画面のクリア、
3行目の&bold(){ create-turtles 100 }でタートルを100個描画するよう命令している。
4行目の&bold(){ ask turtles [ setxy random-xcor random-ycor ] }では、
&bold(){ask turtles [ ]} で、各タートルに [ ] 内の命令を実行するよう伝えている。命令内容は
&bold(){[ setxy random-xcor random-ycor ] } xy座標をランダムに決定し、タートルを描画する である。
実行すると、以下のような図形が描画される。
100個のタートル( =矢印 )がランダムな位置に描画されていることが分かる。
&ref(pic8.png)
***go(メイン動作)を定義する
4. setupのときと同様に新しいボタンを作成する。
コマンドの部分に「&bold(){go}」と書き、その上の&bold(){ Forever }にチェックを入れOKボタンを押す。
下図のようにボタンに矢印マークがつけばOK。
&ref(pic13.png)
5. goの処理を定義する。
Procedureタブをクリックし、以下のように書き加える。
#blockquote(){&bold(){ to go}
&bold(){ move-turtles}
&bold(){ end}
}
ここでは、「 go というボタンを押すと move-turtle という処理が行われる」と記述されている。
このように、処理の中で別の処理を呼び出すことが出来る。
(関数の入れ子みたいな感じ)
続いて、move-turtle の処理を定義する。
to go 〜 end の後に、以下のように書き加える。
#blockquote(){&bold(){ to move-turtles}
&bold(){ ask turtles [}
&bold(){ right random 360}
&bold(){ forward 1}
&bold(){ ]}
&bold(){ end}
}
3行目の&bold(){ right random 360 }では、360度の中からランダムに角度を選ぶことを意味し、
4行目の&bold(){ forward 1 }で、1歩進むことを意味している。
この2つの命令を
&bold(){ ask turtles [ ]}
で、1つ1つのタートルに実行させている。
Interfaceタブに戻って setup、go ボタンを押すと、
各タートルがうねうねと進んでいく様子が見られる。
**背景色の変更
[[コマンドの作成>http://www13.atwiki.jp/netlogo/pages/19.html ]]でも行ったように背景色を変更することが出来る。
&bold(){setup }を以下のように書き換える。
#blockquote(){&bold(){ to setup}
&bold(){ clear-all}
&bold(){ setup-patches}
&bold(){ setup-turtles}
&bold(){ end}
}
ここでは、画面の初期化(&bold(){clear-all})に加えて
&bold(){ setup-patches}
&bold(){ setup-turtles}
の2つの処理を行わせている。
&bold(){setup }内に直接処理を記入するのではなく、別に処理関数を作ってその名前を書く方が
ソースコードが見やすくなる。
次に、&bold(){setup-patches} の処理を記述する。
#blockquote(){&bold(){ to setup-patches}
&bold(){ ask patches [ set pcolor green ]}
&bold(){ end}
}
ここでは背景色を緑色に変更している。
また、&bold(){setup-turtles} の処理も記述する。
#blockquote(){&bold(){ to setup-turtles}
&bold(){ create-turtles 100}
&bold(){ ask turtles [ setxy random-xcor random-ycor ]}
&bold(){ end}
}
先ほどと同じく、100個のタートルをランダムな位置に配置させる処理を行わせる。
ここまで書いたら Interfaceタブに切り替えて setup ボタンを押す。
すると以下のような画像が出てくる。
&ref(pic9.png)
}}}