トップページ⇒tech
981コメント335KB

ム板のみんなでRobocode (・∀・)ヤローウヨ!1台目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
●闘え、Robocode !(日本語解説ページ)
http://www-6.ibm.com/jp/developerworks/java/020329/j_j-robocode.html
●オフィシャルサイト
http://robocode.alphaworks.ibm.com/home/home.html

●Robocode API Documentation
http://robocode.alphaworks.ibm.com/docs/robocode/index.html

●Java2のダウンロード先
http://java.sun.com/j2se/1.4/ja/download.html

君のマシーンは生き残れるか!?
0153デフォルトの名無しさんNGNG
Wolverineなら、勝てるよ。上位に日本人いんのかな。
0154デフォルトの名無しさんNGNG
>>140 >>151
ドキュメントには書いてないみたいだったスマソ。けれど
out.println(getX() + ", " + getY());
をしてみるといかにも中心のような気がするよ。
0155デフォルトの名無しさんNGNG
っつ〜かJAVAぜんぜんわかんね〜からちょっと気合入れてやらんと。
Verilogででけたらなぁ。
0156デフォルトの名無しさんNGNG
>>155
っつ〜か漏れはVerilogのほうがさっぱりわからん。
VHDLやったけどサパーリだったYO!
0157 NGNG
>>155
VHDLしか書けない厨房?
文面からして頭が悪そうですね。
そもそもプログラマですらないのでは、と煽ってみる。
0158デフォルトの名無しさんNGNG
>>150
おれの環境はWin98SE,JDK1.4.0の日本語対応、Robocode1.0.1だけど
そのやり方で化けずに表示できたよ。
ガンダムっぽくやるならまず import java.awt.Color;
しておいて run()メソッドの先頭で↓しる。
setColors(Color.WHITE, Color.BLUE, Color.RED);
0159デフォルトの名無しさんNGNG
>>140,141,151,154
わしが書いた>>142はめちゃくちゃだった、鬱。
ScannedRobotEvent#getDistance()で、ロボット同士は中心の距離で測っているって書いてある。
getX()、getY()についてはどうか知らないが。

>>150
わしは以下のようにしているけど出力できてるよ。

public void onScannedRobot(ScannedRobotEvent e) {
System.out.println("Scanned Enemy. "+
// スキャンで得られる全データ
"Name:"+e.getName()+","+
"E:"+e.getEnergy()+","+
"Head:"+e.getHeading()+","+
"Dist:"+e.getDistance()+","+
"Bear:"+e.getBearing()+","+
"Vel:"+e.getVelocity());
}

でも、2バイト文字はどうか知らないが。
0160デフォルトの名無しさんNGNG
うちは普通に日本語出るよ。System.out.println()で
0161デフォルトの名無しさんNGNG
sampleの11体と50戦まわしたら何点くらい出る?
0162JollyNinja3.26NGNG
46,635点だったよ。
4万点超えればけっこう強いってこと?
0163デフォルトの名無しさんNGNG
>>162
自作ロボットだが、平均して45000点前後出てる。
でも、強いロボットばっかりだと軽くひねられてしまう。

>>152
Wolverineはあまり強くないよ。
0164デフォルトの名無しさんNGNG
レーダーのながさが1200らしいから、RobocodeRumbleの1000X1000だとスキャンできない事があるな。
0165デフォルトの名無しさんNGNG

 だれか、UnitTestしている人いる?
0166デフォルトの名無しさんNGNG
>>165
JUnitとかを使ってのテストのこと?
あまり意味をなさないような気がするが・・・。
やれるのはユーティリティ的なメソッドくらいか。

バトルやって動作確認できるんだからそれでいいじゃん。
0167デフォルトの名無しさんNGNG
JollyNinjaと100戦して勝ち越せるようになった。
0168デフォルトの名無しさんNGNG
オカマを掘られたとき、そのことはどうやればわかるのかな。
HitRobotEventは発生しないよね。
0169デフォルトの名無しさんNGNG
>>168 衝突すれば両方のRobotにHitRobotEventは発生するよ。どっちがどっちにぶつかった、って訳じゃないから。
0170168NGNG
HitRobotEvent#getBearing()の結果をRobotのフィールドoutに出力したら
確かに>>169のいう通りだったよ。産休!
0171デフォルトの名無しさんNGNG
>>166

>JUnitとかを使ってのテストのこと?

そうそう。

>あまり意味をなさないような気がするが・・・。
>やれるのはユーティリティ的なメソッドくらいか。

Javaの学習も兼ねているから、JUnitの学習も兼ねて
使おうかと思っているんだけど、どうやれば正しいのか
と思って・・・。

>バトルやって動作確認できるんだからそれでいいじゃん。

 それはそうなんだけど、それは結合テストだし。
0172デフォルトの名無しさんNGNG
>>171
RobocodeってばJUnitでのテストには向いてないと思う。
0173デフォルトの名無しさんNGNG
このスレもっと盛り上がるといいなあ
0174デフォルトの名無しさんNGNG
>>172

例えば、Robotを継承したMyRobotでは直接Robotを操作しないで、

 class RobotControl(Robot myRobot)

見たいなクラスを作る。
で、このクラスをテストする、って考えているんだけど。
そのとき、Robotを継承したダミーのTestRobotクラスも定義して、
全てのメソッドをオーバライドしてファイルなりストリームなりに
吐き出すようにする。

これでRobotControlがRobotをどうやって操作しているかが外から
見えるようになるのでテストできるようになると思うんだけど、
やっぱりやるだけ無駄?
0175デフォルトの名無しさんNGNG
すごいドライバになりそうやね。
テストのためのテストってつもりなら、とりあえずやってみたら?
ロボットの品質を上げるためのテストなら止めた方がよいと思うが。

>全てのメソッドをオーバライドしてファイルなりストリームなりに
>吐き出すようにする。

JUnitを使ってのテストじゃないよね?
out.printlnじゃダメなの?
0176106NGNG
http://www-106.ibm.com/developerworks/java/library/j-robocode2/
お前らこれ↑を翻訳しました。これ↓を見て誤訳の指摘等お願いします。
http://www.geocities.co.jp/SiliconValley/9155/library/robocode2.html
ところでGoogleって登録手続きしてから実際に登録されるまで
1〜4週間も時間がかからしいですな。
0177デフォルトの名無しさんNGNG
>>175
>すごいドライバになりそうやね。

やっぱりそうかな?

>テストのためのテストってつもりなら、とりあえずやってみたら?
>ロボットの品質を上げるためのテストなら止めた方がよいと思うが。

JUnitを使った場合と使わない場合で、Robotの品質にどれだけ違いがでるか
知りたいってのもあるから、品質があがらないならやりたくないんだけど、
見込みないかな。


>JUnitを使ってのテストじゃないよね?
>out.printlnじゃダメなの?

JUnitのつもりですけど、out.printlnでも大丈夫ですか?
0178デフォルトの名無しさんNGNG
>176
「アドバンスドロボット作りとチームプレイで基礎を超えろ」
翻訳おつかれさま。たすかります。

チームプレイ機能があったのには気づかなかった。
友達何人かでチームわけしてプレイすれば楽しそ (w
0179デフォルトの名無しさんNGNG
>>177
コーディングしながら頻繁に自動チェックしたいわけだろ?
outじゃなあ…かえって検査ルーチンが面倒になると思うが。
0180デフォルトの名無しさんNGNG
おぉまた神が降臨された。
読むぜ。ありがとう。
しかしやる時間がぜんぜんねぇなもうVAIO抱えて通勤するしかなさぽ。
0181デフォルトの名無しさんNGNG
すでに訳してる奴がいたか、やっぱし。
ぜひうpしてく!!
0182デフォルトの名無しさんNGNG
>>181はミスった。すまそ。
失敗ついでに、「ターン」の概念がききたい。
0183176NGNG
>>182
実はおれもよくわからんのよ。わからないまま訳してしまったよ。
シミュレーションゲームとRobocodeの両方に詳しい人がいたら
きちんと説明してもらえるかもしれないんだけど。
0184デフォルトの名無しさんNGNG
ターンは「順番」だよ。

ボードゲームでもトランプでも「自分の番」ってのがあるでしょ。

ポーカーだと
レイズorコールor降りる→カード捨て→カード取る
で1回の自分のターンが終わる。

シミュ系のボードゲームだと例えば
補給→移動→攻撃
で1ターン終了、みたいな。

で、「うーん。このユニットがあの町につくまでには3ターンかかるな」ってのは
「自分の番が3回まわってくる間移動し続けないと町まで着かない」って意味。
0185182NGNG
>>184 その辺りは理解できるんだけど、
たとえばScannedRobotEventで trunRight(1) とだけ記述した場合、
「そのターンは右1度旋回で終了」
とみなされてしまってるような気がして。

Eventの行動だけで1ラウンド経過してしまうのか?とか、
じゃあいったいいつメインのループに処理が回るのか?とか、
1ターンのどのタイミングでEventは補足されるのか?とか、
疑問が尽きないのです。

この辺りが詳しく記されたドキュメントってありませんかね。
0186デフォルトの名無しさんNGNG
>>185

Robotなら旋回が終了するまで処理が戻ってこないし、
AdvanceRobotならすぐに処理が戻ってくる。

どちらにしても、1tickに10度の旋回速度じゃなかったっけ?
0187186NGNG
>>185

たとえば、

run() {
  while (1) {
    turnRight(20);
  }
}

onScannedRobotEvent (...) {
  turnLeft(10);
}

なら、turnRight(20)から戻るまでに2tick経過すると思われます。
そして、ScannedRobotEventはturnRight()を呼び出して処理が
戻ってこない間に発生します。
このとき、もし10度だけ右に旋回したときにEventが発生した場合、
turnLeft(10)の処理は、その時点で有効になるのか、20度回りきって
から有効になるのかは、ちょっと不明。
0188186NGNG
ちなみに1tick10度は、
AdvancedRobot.setMaxTurnRate()
の説明から推測。
0189182NGNG
>>176 の訳文で見ると、砲台の旋回速度は速度に依存するようですな。
って事は、20度回転したいときに何ターン(tick)かかるかは一概にはいえないと。
う〜ん、インテリジェントに制御するのは結構面倒ですなぁ。

>Robotなら旋回が終了するまで処理が戻ってこないし、
>AdvanceRobotならすぐに処理が戻ってくる。

なる。ある程度以上制御したいならAdvanceを使っていくのが近道っぽいですね。
とりあえずJavaDoc読み漁ってみます。
感謝。
0190デフォルトの名無しさんNGNG
向きたい角度-自分の角度を、-180から+180の間になるように修正して
毎ターンsetTurnRight()にわたせば向きたい角度に向ける。

あと、速度に影響されるのは砲台じゃなくてRobotでは。まぁ、砲台もロボットの
回転の影響を受けるけどそれはsetAdjust〜〜で防げるし。
0191デフォルトの名無しさんNGNG
http://apps.alphaworks.ibm.com/rumble/
Robocode Rumbleに5/20に"Takahashi"っていうロボットが登録されてたよ。
日本からの初参戦?あまりマメにチェックしてなかったからわからないっす。
0192デフォルトの名無しさんNGNG
>>191 Takanonamiとか前から居るし、外にも明らかにユーザ名が日本人の人が何人か居るよ。
0193デフォルトの名無しさんNGNG
>>191
>Profile: Takahashi meijin...

高橋名人だって。16 連(略
0194デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/9155/library/antigrav.html
anti-gravity movementの解説を訳してアップしました。
0195106NGNG
JollyNinjaやMadHatterの作者evilsimonによる
Predictive targeting(予言的ターゲッティング?)の解説を
訳しました。多分明日の朝アップします。
この戦略の優秀さはJollyNinjaとMadHatterの強さが証明しています。
0196デフォルトの名無しさんNGNG
>>194 お疲れ様です。早速読んでみます。
0197デフォルトの名無しさんNGNG
>>195
おおお、お疲れさんです
楽しみにしてまっさ
0198デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/9155/library/
http://www.geocities.co.jp/SiliconValley/9155/library/pred-targeting.html
アップしました。
0199デフォルトの名無しさんNGNG
キタ━━━━━━(゚∀゚)━━━━━━━!!!!!
いつも、ありがとう。
参考にさせていただきます。
0200デフォルトの名無しさんNGNG
>>106
いつもありがとう。
ロボットで負ける前に熱意で負けそうだ(藁
0201デフォルトの名無しさんNGNG
漏れも参加させてもらうよ〜

>>75
漏れも同じこと起こったけどJBuilderは
jdk.configのvmparam -Dsun.java2d.noddraw行を
コメントアウトしたらちかちかしなくなったよ〜
ただrobocodeはだめっぽい(;´Д`)
0202デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/9155/library/movement.html
またアップしましたが、わからんかったところがあります。
> the number of encounters in which the state has been used,
と
> To prevent a single bad round from disqualifying
> a potentially effective state,
> statistics data is not considered valid unless
> the state has been used in at least three encounters.
は(特に encounters)どう訳したらいいのでしょう?
0203ののたんNGNG
>202
〜するために、
少なくとも3回の遭遇で使用されたステートでない限り
統計データは有意なものとして考慮されない。

くらいだぴょん。
0204デフォルトの名無しさんNGNG
stateの意味がとりにくいということでは? >>203
0205202NGNG
> 203
そうします。
> 204
stateはあえて「ステート」としておきました。
GoFのデザパタにStateパターンもあることだし
いじらなくてもいいかなと思って。
0206デフォルトの名無しさんNGNG
http://www.pro.or.jp/~fuji/puzzlelife/2002-04-16.html
Robocodeに8クイーン(8だと時間がかかるので実際は5クイーン)を
解かせたそうです。TeamRobot#broadcastMessage()を使うと
ある程度までは高速化できるのかな。
しかしレーダーを使わなくてすむので面白みは減るかも。
0207デフォルトの名無しさんNGNG
「JAVA Developer」(ソフトバンクパブリッシング)という
雑誌の創刊号には特別企画に
『RobocodeによるJavaプログラミング撃破術』
というのが掲載されるそうです。
0208デフォルトの名無しさんNGNG
 
 
            撃         破            
 
0209デフォルトの名無しさんNGNG
>>1
>ム板のみんなでRobocode (・∀・)ヤローウヨ

い や だ !
0210デフォルトの名無しさんNGNG
あげ
0211106NGNG
http://www-106.ibm.com/developerworks/library/robotips/index.html
"Secrets from the Robocode masters"には今のところ記事が7つあるけど
一応全部訳したよ。時間さえあれば土日にHTML化してアップしたいっす。
0212デフォルトの名無しさんNGNG
http://sourceforge.net/projects/r2tech-eclipse/
0213106NGNG
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/api/
http://www.geocities.co.jp/SiliconValley/9155/library/
アップしました。一番すごいと思ったのは現在世界のトップロボットは大抵
ターゲッティングシステムにパターン認識を採用しているというところです。
ところでおれって著作権を侵害しまくってるのかな、やっぱり。
0214213=106NGNG
調べてみたら完璧に著作権侵害してることがわかりました。
あーあ、どうしたらよかんべ。
0215デフォルトの名無しさんNGNG
>>214
僕たち純真無垢なタイーホブラザーズ!
とっても目立つようにageてあげるよ!
タイーホされたら祭をしてあげるからね。
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ∧_∧     ∧_∧    タイーホ
   (・∀・ )    ( ・∀・)    タイーホ
   /    \    /   \ タイーホ    タイーホ
  ⊂(  ヽノ つ ⊂ヽ/  ) つ  タイーホ
    し(_)     (_)J
0216デフォルトの名無しさんNGNG
>>214
僕たち純真無垢なタイーホブラザーズ!
とっても目立つようにageてあげるよ!
タイーホされたらタイーホ祭をしてあげるからね。
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ∧_∧     ∧_∧    タイーホ
   (・∀・ )    ( ・∀・)    タイーホ
   /    \    /   \ タイーホ    タイーホ
  ⊂(  ヽノ つ ⊂ヽ/  ) つ  タイーホ
    し(_)     (_)J
0217デフォルトの名無しさんNGNG
>>215-216
産休!
0218デフォルトの名無しさんNGNG
>>214 すっとぼけて、dWJapanに「和訳してみたけど掲載しない?」とか
聞いてみるとか。
0219デフォルトの名無しさんNGNG
>>214
日本IBMより早く「ロボコード」で商標登録を汁
ついでにタカラにロボコードプラモ作ってもらう
0220デフォルトの名無しさんNGNG
あげ
0221106NGNG
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/library/radar.html
まさか6億円も払う事態には陥らないだろうと思いながらまた訳してアップしました。
"The Secret from Robocode masters: Radar sweeps"の訳です。
0222デフォルトの名無しさんNGNG
>>106
お勤めご苦労様です。
レーダーの作動範囲とか、読んでたらコムサイトやりたくなってきた。
0223デフォルトの名無しさんNGNG
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
イツノマニカ(゚∀゚)日本語化サレテルシー!!
0224106NGNG
http://www-106.ibm.com/developerworks/library/j-tippoly/
0225106NGNG
>>224のリンク先の"Secrets from the Robocode masters:
Polymorphic enemy cache"を近日中に訳してアップする予定です。
それからAA作ってみました。(ネタなのでsage)

   ∧ ∧
   (,,゚Д゚)つ <out.println("逝ってよし!");
.  [∪ ̄]≡=ロ
/ ̄ ̄ ̄ ̄\
(○) (○) (○)
0226デフォルトの名無しさんNGNG
こんな質問する自分が悲しいんだが、

System.out.println("test");

の出力が出ないんです。
Round 3 initializing....
Let the games begin!
Round 3 cleaning up.
----------------------
Round 4 initializing....
Let the games begin!
こういうのが出る窓にでるはずと思うんだけど。。。

出すまでも無いと思われるソースは一応こんなです。
public void run() {
// After trying out your robot, try uncommenting the import at the top,
// and the next line:
//setColors(Color.red,Color.blue,Color.green);
while(true) {
System.out.println("test");

                     ・・・・

コンパイルエラーは出ていません。何が悪いんでしょうか?
0227デフォルトの名無しさんNGNG
>>256
http://robocode.alphaworks.ibm.com/docs/robocode/robocode/Robot.html#out
を読んでみそ。文字を画面に出力したいときは
Robotクラスのフィールドoutに出力すべきで、
これはバトルフィールドの右側のボタンを押すと表示される。
System.outに何か書こうとしてもやはりRobotクラスのoutに出力される。
……ということだと思う。
0228226NGNG
>>227
おおおお!大感謝です!
ドキュメントは良く読まないとだめっすねぇ〜。失礼しました。
0229226NGNG
人少ないみたいだからageてみる。
とりあえず一機つくってみたけど、sample11機と50戦して32,206点
不本意だ・・・
ていうかsampleに負けてる時点で駄目ですか?
0230デフォルトの名無しさんNGNG
>>229
駄目ってことはない。とりあえずsampleロボット達のソースをじっくり眺めて
勉強させてもらうだけでもスキルはアップすると思うよ。
sampleに確実に勝てるロボットを作れるようになるにはそれなりの努力が要る。
http://www.ecs.soton.ac.uk/~awo101/robocode.html
英語を読むのが苦でなければこれ↑は良いチュートリアルだと思う。
0231デフォルトの名無しさんNGNG
http://www.javadeveloper.jp/static/robocode/robo1.html
0232デフォルトの名無しさんNGNG

ttp://www.javadeveloper.jp/static/index.html

って、a 要素の href 属性を書き間違ってない?
Not Found 大杉だよぉ。
0233デフォルトの名無しさんNGNG
Java Developer 創刊号 P.88
「Robocodeを使ったJavaプログラミング撃破術:前編」
>  砲弾の速度は、エネルギーに反比例しており、
>   20 - 3 x p
> となります。
この記事の著者は義務教育を受ける機会が無かったのかな。
0234デフォルトの名無しさんNGNG
Robocodeの最新バージョンが1.0.3になったようです。
0235デフォルトの名無しさんNGNG
1.0.2でした。逝ってきます。
0236デフォルトの名無しさんNGNG
233はプログラミングしたことがないのか?
pがエネルギーだぜ
0237デフォルトの名無しさんNGNG
>>236
つっこみどころが違う。
「反比例」なら y = a / x の形でしょ。
0238106NGNG
ヤター!おれのページがぐぐるとヒットするようになたーよ。
>>225で予告した文章をまだアップしていないのに
Secrets from the Robocode mastersがまた一つ増えてました。精進せねば。
0239デフォルトの名無しさんNGNG
teraがおわったので、本日から参戦します。

だいぶわかってきたけど、初めはどうしたらいいとおもう?
0240デフォルトの名無しさんNGNG
つうか、反重力移動ってオレがteraでやってたのと同じだ。
距離の二乗で割るのが正しいのか。 距離を引き算してた。
0241デフォルトの名無しさんNGNG
コレ、例外のキャッチが出来なくないですか?
0242デフォルトの名無しさんNGNG
>>240
おれもテラリウムで鍛えればよかったかな。
重力は距離の2乗に反比例するからanti-gravity movementというネーミングは秀逸だと思う。
もっとも必ずしも'2'乗じゃなくてもよいということをAlisdair Owensは書いてる。
>>241
できるよ。
0243241NGNG
double zero = 0, x = 0;
try {
x = 1 / zero;
}
catch (ArithmeticException e) {
out.println("arithmetic");
}
catch (RuntimeException e) {
out.println("runtime");
}
catch (Exception e) {
out.println("top exception");
}
finally {
out.println("x = " + x);
}
これをrun() { while(true) の先頭に置いてみたのですが、finallyでの出力しかでてこないのです。。
0244241NGNG
あーちなみに
x = Infinity
と出力されます。(そもそも例外が発生しない?)
0245デフォルトの名無しさんNGNG
244
> (そもそも例外が発生しない?)
その通り。Java言語仕様(JLS)第2版の§15.6には
> ●整数の除算演算子(§15.17.2)、あるいは整数の剰余演算子(§15.17.3)では、
> 右手側のオペランド式の値がゼロである場合、ArithmeticExceptionがスローされる。
とある。>>243のコードでxとzeroをint型にでもしてみるとしっかり例外がスローされるよ。
0246241NGNG
おおおでた!でました例外!!
なるほどそういうことだったのかー

>>245さんありがとうです〜
0247デフォルトの名無しさんNGNG
2日目だけど、サンプルは撃破。
基本的によけてれば相手が自滅してくる。。
0248デフォルトの名無しさんNGNG
jollyninjaに全勝してしまった。。。
0249デフォルトの名無しさんNGNG
>>248
すごいっすね。
Rumbleにウプしたらかなりいいとこまでいくのでは?
0250デフォルトの名無しさんNGNG
天皇の前を歩く、金大中犬。
天皇窮屈そうに犬の後ろを歩く、哀れ。
http://www.asahi-net.or.jp/~he9n-tkis/oobakamono.mpg
0251106NGNG
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/library/tippoly.html
「Robocodeマスターの秘密: 多態的な敵のキャッシュ」をアップしました。
Robocodeの最新バージョンが1.0.3になりましたね。
メソッドがいくつか追加されているので訳さなければ。
http://robocode.alphaworks.ibm.com/home/versions.txt
0252デフォルトの名無しさんNGNG
import robocode.*;
public class DodgeBot extends AdvancedRobot{
double previousEnergy = 100;
int movementDirection = 1;
int gunDirection = 1;
int bulletPower=1;
int count=0;
int safeDistance=30;
double bear=0;
double dist=0;
final int ROBOT_RADIUS=10;
public void run() {
setTurnGunRight(99999);
}
public void onScannedRobot(
ScannedRobotEvent e) {
dist=0;bear=0;
// Stay at right angles to the opponent
if (e.getDistance() > 230)
setTurnRight(e.getBearing()+90-30*movementDirection);
else
setTurnRight(e.getBearing()+90);
//- 90*movementDirection);

// If the bot has small energy drop,
// assume it fired
double changeInEnergy =
previousEnergy-e.getEnergy();
if (changeInEnergy>0 &&
changeInEnergy<=3) {
// Dodge!
if(count%2==0)movementDirection =
-movementDirection;
count++;
setAhead((e.getDistance()/5+100)*movementDirection);
}
// When a bot is spotted,
// sweep the gun and radar
gunDirection = -gunDirection;
setTurnGunRight(99999*gunDirection);
if (e.getDistance() <20)
fire(3);
else
if (e.getDistance() <50)
fire(2);
else
if (e.getDistance() <100)
fire(2);
else if (e.getDistance() <300||e.getEnergy()<10 )
fire(1);
else
fire(0.1);
// Track the energy level
previousEnergy = e.getEnergy();
}

}
■ このスレッドは過去ログ倉庫に格納されています