1.1.ダウンロード
http://www.greenfoot.org/
公式ページへ飛ぶと、下の方に"The Software"があるのでそれをクリック
Download Greenfootから開発環境をダウンロード
※Greenfootを動かすにはJava6かJava7 JDKが必要になるみたい
パソコンに入ってないようだったら、Javaもダウンロード
1.2.インストール
次はGreenfootのインストール
ここは特に問題はないと思うので、適当に「次へ」を連打
(Javaがパソコンに入っていない場合、インストールしておく)
2.チュートリアル
インストールが完了したら、起動してみる。
起動するとなにやら謎のウィンドウが・・・
「Open tutorial and tutorial scenario」を選択して、まずは操作に慣れよう!
ということで選択するとこんな感じの画面が表示されます。
・真ん中のグリッド線が引かれてる場所がWorld、ここにプログラムを実行した時の画面を構築していく
・右の四角から矢印がでてるものがClass、プログラムの部品的なもの
・下のボタンやスライダーはExecution Controls、プログラムの実行に関わるもの
らしい
2.1.クラスからのActor貼り付け
右のActor classesからWombatを右クリックして、New Wombat()を選択
マウスポインタにクマの画像がくっついてくるので、真ん中のWorldで左クリック。
クマの画像をWorldに配置することができた。
同様にして右のActor classesからLeafをWorldへ貼り付ける。
下のExecution Controlsの
Runを押すと、クマたちが動き出す。
同じActor(クマや草)を複数Worldに置くこともできるみたい。眺めてると楽しい
クマは草と同じマスへ移動すると草を食べる。ただ、画面の端へクマが移動してしまうと
周りをぐるぐる回るだけでエサ(草)を永遠に食べることができない。カワイソス
そこで、クマのAI(と言うと大袈裟かもしれない)を書き換えてみる
2.2.Actorプログラムの書き換え
右のActor classesのWombatを右クリックして、Open editorを選択する。
プログラムがずらずらっと表示される。この中のact()がどうやらクマの移動に関係してるみたい
というわけでここら辺から弄ってみようと思う。
クマの行動を考える
・5歩くらい歩いたら、方向転換してみよう
・エサ(草)の周辺2マスくらい近づいたら、クマはエサ(草)に気づいてそっちに向かうようにしよう
など
ここではとりあえず「5歩くらい歩いたら、方向転換してみよう」を実装する
private int direction;
private int leavesEaten;
private int countWalk;
public Wombat()
{
setDirection(EAST);
leavesEaten = 0;
countWalk = 0; //countWalkを0で初期化
}
~~~~~~~~~~~~
いろいろ省略
~~~~~~~~~~~~
public void act()
{
if(foundLeaf()) {
eatLeaf();
}else if(countWalk >= 5){ //5歩以上歩いたら
int ran = (int)(Math.random()*4);//0~3の乱数をつくる
switch(ran){
// EAST
case 0:
setDirection(EAST);
break;
//WEST
case 1:
setDirection(WEST);
break;
//NORTH
case 2:
setDirection(NORTH);
break;
//SOUTH
case 3:
setDirection(SOUTH);
break;
}
//方向転換したらcountWalkを0にしておく
countWalk = 0;
}
else if(canMove()) {
move();
}
else {
turnLeft();
}
countWalk++; //1回歩きましたよー
}
赤字の部分がact()に新しく追加した場所。
act()以外にはprivate int leavesEaten;の下に
private int countWalk;を追加した。
こ↑こ↓で、整数(int)を格納するcountWalkという名前の入れ物を用意している。
privateはおまじないのようなもの。
ちなみにpublic Wombat() {...} で countWalkに0を代入している。
変数というデータの入れ物は、宣言したときにゴミが入っているので使う前にキレイにしたほうが良い
Javaはわからないけど・・・
countWalk++;を見ると変数の後ろに+が2つ並んでいる。
この"++"はcountWalkに格納されてる数値を1増やせという便利な命令。
進行方向の変更はsetDirection()が用意されていたので再利用させてもらった。
これはクマの進行方向を変更する、関数と呼ばれる処理のまとまり
関数を用意すると、同じ処理を何度も使いまわせるのでとっても便利!
実際に動かしてみるとクマがちょろちょろするようになった。
エサ(草)があるか探す関数を実装してみたけど、クマがエサ(草)を避けるようになってしまった)^o^(
もう少し見直してから、書き加えるとおも