必死
 必死に宿題をしているのですが、さっぱりわかんね。。)

 同ゼミのM2の人に、JUDEを紹介していただいたのですが、ユーザー登録、JAVAの環境が必要等、いろいろ時間がっかりそうなので、一旦おいておくことに。 参考リンク Dynamic Draw
http://bal4u.dip.jp/mt/server/archives/2004/09/

※JUDEとは、聞いたところによると、オブジェクトの関係が一目で分かるように図で表示してくれるソフト、とのことです。まだ使っていないので、よくわかりませんが。
追記:動作させても、よくわかりませんでした。。

動作環境

Windows 2000、XP にて動作を確認しています。

実行環境について

# Java環境 J2SE JRE、または J2SE JDK がOSにインストールされている必要があります。
(JREバンドル版は不要)

# Java環境は、こちらからダウンロードできます。







/**
* Miffy - a robot by (your name here)
*/
public class Miffy extends Robot
// 継承する側 継承されるもの
{
//ここからプログラムスタート


boolean peek; // Don't turn if there's a robot there
// ロボットがいれば回転しない
double moveAmount; // How much to move
// どれだけ動くか

public void run() {
//ここで追加します(20050118)
Radardirection radardirection = new Radardirection();
Direction direction = new Direction();
//RadardirectionとDirectionはこれで定義完了。次はSmartRadardirection。クラスを実装するのが先だが。
SmartRadardirection smartradardirection = new SmartRadardirection();

setColors(Color.yellow,Color.pink,new Color(150,0,150));//色は本体が黄色で砲台がピンク
turnLeft(getHeading());//左に曲がる


//turnGunRight(360);//砲台を右へ360度回転
while(true) { //もし真ならば
turnRadarRight(360);//レーダーを360度回転する
//ahead(50);//50前進
//turnRight(90);//右へ90度
turnRadarLeft(360);//レーダーを左へ360度
setAdjustGunForRobotTurn(true);//

double r=Math.random();//方向のみランダムで決定
if(r > 0.75){
ahead(50);
}else if(r >0.5){
turnLeft(90);//ahead(50);
}else if(r>0.25){
turnRight(90);//ahead(50);
}else back(50);
turnRadarRight(360);//レーダーを360度回転する
double s=Math.random(); //移動のみランダムで決定
if(s > 0.75){
ahead(50);
}else if(s >0.5){
ahead(50);
}else if(s>0.25){
ahead(50);
}else back(50);
}
}

public void onScannedRobot(ScannedRobotEvent e) {//ロボット索敵で発見したら?
double energy;
double distance;
double deg;

distance = e.getDistance();
System.out.println("found;"+e.getName());

/////////////////



deg =e.getBearing() - ( getGunHeading() - getHeading() ) ;

if(deg==0){
turnGunRight(0);
}else{
if(deg<180){
turnGunRight(deg);
}else{
turnGunLeft(359-deg);
}
}
//////////////////////////////

if(distance<30){//敵との距離が30以下だったら・・・
fire(10);//見つけたらファイア!
}else if(distance<100){fire(3);
}else fire(1);//それ以上離れていたら1の火力でファイア!
System.out.println("energy;"+getEnergy());
System.out.println("distance;"+distance);
scan();//索敵
}
public void onHitRobot(HitRobotEvent e) {
// If he's in front of us, set back up a bit.
// もし敵が私たちの前にいれば、少し後退します。
if (e.getBearing() > -90 && e.getBearing() < 90)
back(100);
// else he's in back of us, so set ahead a bit.
// そうでなければ敵は後ろにいるので、すこし前進します。
else
ahead(100);
}

public void onHitByBullet(HitByBulletEvent e) {//敵に攻撃されたら
scan();
turnLeft(90 - e.getBearing());//砲台の方向から左へ90度向く
back(200);//後ろへ90
}
public void onHitWall(HitWallEvent e) {//壁に当たったら
turnGunRight(180); //砲台を右へ180度
turnRight(90);
ahead(200);
}
public void onWin(WinEvent e) {

turnRight(90);//右へ90度
turnLeft(90);//左へ90度
//勝利のダンス動作を記述 ex.360度回転するなど
}


}





//20050118 Directionを実装します。これが親。

class Direction{
int flag; //方向の保存
//コンストラクタ
public Direction(){

this.flag = 1;
}
//方向の読み出し
public int getDir(){
return this.flag;
}
//方向の反転
public void flip() {
this.flag *= -1;
}
}

//Directionクラスのインスタンスは方向の保存にflagを用いている。flipはflagに”-1”を乗ずることで,方向を反転する。

//ここまではノーエラー。今度はRadardirection(方向)。

class Radardirection extends Direction{ //Directionクラスを継承
int counter;
public Radardirection(){
this.flag=1;
this.counter=1;
}
//getDirection()は親のDirectionと同じなので省略する。
public void flip(){
if( (this.counter % 5)==0){//割り切れる場合
this.flag=-1;
this.counter=0;
}
this.flag=this.flag * (-1);
this.counter++;
}

}

//さぁ、ついに SmartRadarDirection の実装だ。
//setSweepAngle() これはメソッド角度を設定・・・・どこに入れるの?
//getSweepAngle() 角度を取得・・・・同上

class SmartRadardirection extends Direction{ //Directionクラスを継承
int setSweepAngle;
int getSweepAngle;
public SmartRadardirection(){
this.flag=1;
this.counter=1;
}
//getDirection()は親のDirectionと同じなので省略する。
public void flip(){
if( (this.counter % 5)==0){//割り切れる場合
this.flag=-1;
this.counter=0;
}
public void setSweepAngle(){
if( (this.counter % 5)==0){//割り切れる場合
this.flag=-1;
this.counter=0;
}
public void getSweepAngle(){
if( (this.counter % 5)==0){//割り切れる場合
this.flag=-1;
this.counter=0;
}
this.flag=this.flag * (-1);
this.counter++;
}
//引数+関数
}
[PR]
by viewtleaf | 2005-02-01 11:41 | JAVAプログラミング
<< すんごい雪! 須崎の鍋焼きラーメンを食べたよ >>



毎日起こった出来事を記入し、「振り返り」に活用したいと思います。写真は我が子の作品。
by viewtleaf
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
検索
カテゴリ
全体
Diary
学校での取り組み全般
バレーボール
修論
Linux
Network
Security
Software
総合関係
Medical treatment
JAVAプログラミング
研究会等
特別支援
Fishing
流体力学
機械工学
画像処理
電気工学
情報工学
木材加工
異文化間教育
ビデオ編集
イギリスの学校
書評
リンク
金属加工
学ぶ・わかる
Bowling
Hardware
麺類
Piano
English
パズル
卓球
未分類
フォロー中のブログ
異能者集団のチームワーキング
私たちにもできる!国際協力
ジャストジャンプ3@フレ...
その他のジャンル
記事ランキング
ブログジャンル
画像一覧