トップページ⇒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

君のマシーンは生き残れるか!?
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();
}

}
0253↑↑NGNG
jollyninjaに勝つコード。
相性なんだろうけどね。TRONには勝てない。
0254↑↑NGNG
まだ、2日目だからいぢめないでね。
勉強のため、DodgeBot を改良しただけです。
0255デフォルトの名無しさんNGNG
キタ━━━━━━(゚∀゚)━━━━━━━!!!!!
http://www-6.ibm.com/jp/developerworks/java/020705/j_j-robocode2.html
0256106NGNG
>>255
うーむ、さすがプロの翻訳、すばらしい。
今夜にでもおれが訳した文は削除しとこっと。
0257106NGNG
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/library/tipreuse.html
「Robocodeマスターの秘密: 拡張/再利用可能なロボット」
をアップしときました。
0258デフォルトの名無しさんNGNG
>>257
おつかれさんです。プロの翻訳も良いけど、
106さんのおかげで日本語が早く読めるので感謝してます。1009
0259デフォルトの名無しさんNGNG
相手より多く勝ち残っても相手が勝つ場合があるけど、
どういうルールなの?
0260デフォルトの名無しさんNGNG
Javaインストールで、JREとSDKってあるんですけど
どっちをインストールしたら良いんですか?
0261デフォルトの名無しさんNGNG
>>260
SDKにしておけば問題はすくないかも
0262PC用語くらいちゃんと使え委員会 ◆u/7XlPOM NGNG
>>260
PCQAの答えでは不服かい?w
0263デフォルトの名無しさんNGNG
>>259
http://robocode.alphaworks.ibm.com/help/scoring/scoring.html
得点の計算方法はこんな感じ。

Total Score -> 総得点
Survival Score -> 他のロボットが死んだときに50
Last Survivor Bonus -> 最後まで生き残ったら10
Bullet Damage -> 弾丸によって敵に与えたダメージ1につき1
Bullet Damage Bonus -> 敵に止めを刺したときのボーナス
            弾丸によってその敵に与えてきたダメージ1につき0.2
Ram Damage -> ぶつけることによって敵に与えたダメージ1につき1
Ram Damage Bonus -> 敵に止めを刺したときのボーナス
       ぶつけることによってその敵に与えてきたダメージ1につき0.2
1sts, 2nds, 3rds -> 点数計算には影響を与えない
0264263NGNG
age忘れた。
ところでRobocodeはゲーム製作板向きではないと思うが。やっぱりム板だろ。
0265デフォルトの名無しさんNGNG
意味がいまいちわからん。
ゲー製板に行く話でも出てたの?
0266デフォルトの名無しさんNGNG
>>265
この板のローカルルール(どうやら今日表示されたらしい)には
> ゲーム関係の話題はゲーム製作板へどうぞ。
って書いてあるんよ。
0267デフォルトの名無しさんNGNG
>>266
ああ、なるほどね。
ム板で良いんじゃないの?ちゃんと言語扱ってるわけだし。
そこらでのさばってるネタスレよかよっぽど面白いし。
0268デフォルトの名無しさんNGNG
http://www-6.ibm.com/jp/developerworks/java/020712/j_j-nelson.html
AlphaBot: Robocodeの生みの親Mat Nelson氏へのインタビュー
0269デフォルトの名無しさんNGNG
http://www-6.ibm.com/jp/developerworks/java/020719/RobotsFinestHour.html
ロボットと過ごす最高の時間
0270106NGNG
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/secrets/tipstrats.html
また訳してアップしました。
> Robocodeマスターの秘密: Robocodeの戦略
> このRobocodeの戦略のガイドでは、
> Gladiatorial Leagueの誕生秘話をあきらかにし、
> 移動・射撃・情報収集の戦略を異なる段階に分けて論じます。
ところでRobocode Rumbleのエリミネーションリーグがはじまったけど
誰か参戦してる?
0271デフォルトの名無しさんNGNG
今日発売のJava Developer9月号
敵座標の線形予測まで解説されてる
0272デフォルトの名無しさんNGNG
>>271
最後にこう書いてある
「できれば日本でも同様な大会をしたいよねということで
編集部内では考えているようですが」

Jリーグ?


0273デフォルトの名無しさんNGNG
>>編集部
Christian Shnellの「RoboLeague」を使えば
大会を開催できるはずなのでがんがってください。
実際Gladiatorial Leagueを主催してるのは個人(evilsimon)だし。
http://user.cs.tu-berlin.de/~lulli/roboleague/
http://www.geocities.com/evilsimon/
http://www.geocities.co.jp/SiliconValley/9155/secrets/tipstrats.html
0274デフォルトの名無しさんNGNG
http://apps.alphaworks.ibm.com/rumble/leaguefinal.jsp?gameid=86&rankst=1&bybot=bybot
日本人が作ったっぽいロボット"Takeru"が健闘してる。
0275デフォルトの名無しさんNGNG
age
C/C++でこういうのってないですか?JAVAはちょっと…
0276デフォルトの名無しさんNGNG
>>275
C++ができる人なら「Javaはちょっと…」ってことないっしょ。
Cしかできないならいい機会だ、Javaに挑戦してみれ。
ちなみに.NETにはTerrariumがある。
http://pc3.2ch.net/test/read.cgi/tech/1024319607/l50
0277275NGNG
>>276
そうですか〜C++でもこういうのがあったら面白いなと思ったんだけどな。
JAVAかRobocode面白そうだしやってみます
0278106NGNG
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/secrets/
"Secrets from the Robocode masters"の訳があまりにひどかった
(誤訳もたくさんあった)ので現在改訳しています。
実のところは改訳というよりも1からやり直しです。
今のところ「Robocodeの戦略」「弾丸をかわす」「予測ターゲッティング」
の3つをうpしました。
以前に比べればかなりましになりました。
英検3級のおれにはこれが限界かもしれません。
0279デフォルトの名無しさんNGNG
>>271
Webにも載ってるね
http://www.javadeveloper.jp/static/robocode/robo1.html

前編はこっち↓
http://www.javadeveloper.jp/static/200208/robocode/robo1.html
0280106NGNG
キタ━━━━━━(゚∀゚)━━━━━━━!!!!!
外套と砲塔: ロボコードの達人たちから秘訣を学ぶ
http://www-6.ibm.com/jp/developerworks/java/020726/CloakandTurret.html
0281デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/api/robocode/Robot.html
http://www.geocities.co.jp/SiliconValley/9155/api/robocode/AdvancedRobot.html
現在Robocode APIドキュメンテーションをまるごと訳しなおしてます。
RobotクラスとAdvancedRobotクラスのぶんは終わったのでアップしました。
以前はstop(boolean)やその親戚、setInterruptible(boolean)など
いくら読んでもわかるもんじゃない文章がたくさんありませんでしたが
今度はわかってもらえるのではないかと思います。
v1.0.3から導入されたsetFire(double)やsetFileBullet(double)
およびgetDataQuotaAvailable()の説明も書きました。
というわけでよかったら読んでください。
the Secrets of the Robocode mastersの訳は誤訳だらけだったし
オフィシャルな翻訳が出たことだし削除しときました。
0282デフォルトの名無しさんNGNG
よーしパパRobocodeコピペしちゃうぞー

import robocode.*;
public class Hikky extends YourRobot {
public void run() {
out.println("(-_-)");
out.println("(∩∩)");
super.run();
}
public void onHitByBullet(HitByBulletEvent e) {
out.println("鬱");
super.onHitByBullet(e);
}
public void onDeath(DeathEvent e) {
out.println("鬱山車脳");
super.onDeath(e);
}
}
0283デフォルトの名無しさんNGNG
IBM : developerWorks : Java technology Robocode関連記事リンク集
http://www-6.ibm.com/jp/developerworks/java/020802/robocode_link.html
もちろんこれはありがたい。しかしたくさんの文献が日本語訳されたというのに
APIドキュメンテーション、オンラインヘルプ、FAQなどがまだなのはなぜ?
0284デフォルトの名無しさんNGNG
http://apps.alphaworks.ibm.com/rumble/botdetails.jsp?botid=921
SandboxLump強すぎ!なにこれ?リーグ10回中9回も1位だよ。
0285106NGNG
APIドキュメンテーションを全体的に改訳し、オフラインでも読めるようzip形式のアーカイブも用意しました。
http://www.geocities.co.jp/SiliconValley/9155/
http://www.geocities.co.jp/SiliconValley/9155/api/javadoc.zip
0286デフォルトの名無しさんNGNG
このスレみて、面白そうだなとおもってさっき始めました。
MyFirstRobotのコンパイルまではできたんですけど、この
さきどうするんでしょうか?ロボット名.classができている
の確認したのですが、こいつをバトルフィールド上に表示して
動かす方法がわかりません。実行の仕方を教えてください。
0287デフォルトの名無しさんNGNG
わかりました(汗)Battle->NewでAddすればいいんですね。
敵さんもSampleから適当に選んで配置すればいいんですね。
BattleStartを押したら、あっという間に終わりました。
やっと改造できます。
ところで右下にでるボタンでResumeってのはどういう意味
でしょうか。
0288デフォルトの名無しさんNGNG
>>287
resumeには「再開する」という意味がある。
バトル中に"Pause"ボタンを押すとポーズされ、
"Pause"ボタンは"Resume"ボタンに表示が変わり、
"Resume"ボタンを押すとゲームは再開される。
ちょっとした英単語なら辞典で調べる習慣をつけたほうがいい。たとえば
http://www.alc.co.jp/
0289デフォルトの名無しさんNGNG
RobocodeのオンラインヘルプとFAQを翻訳してアップしますた。
http://www.geocities.co.jp/SiliconValley/9155/help/
http://www.geocities.co.jp/SiliconValley/9155/help/faq.txt
0290デフォルトの名無しさんNGNG
http://groups.yahoo.com/group/robocode/
Yahoo!ジャパンはRobocodeのグループを作ってはくれないのかしらん。
0291デフォルトの名無しさんNGNG
キタ━━━━━━(゚∀゚)━━━━━━━!!!!!
日本で開催だYO
ttp://www.yomiuri.co.jp/02/20020824ib01.htm
0292∞ ◆INFP2PEU NGNG
9月の試験終わったら参加してみようかな
0293デフォルトの名無しさんNGNG
ロボコード日本大会の賞品、上級者クラスは30万のシンクパッドと5万のlinuxザウルス。
本家よりも豪華で、3位まで賞品あり
0294デフォルトの名無しさんNGNG
これダウンロードしようと公式サイトを進むといっつもフリーズする・・・俺だけ?
0295デフォルトの名無しさんNGNG
私も同じだった。JDK1.4が既に入れてあると、固まる。mailで聞いたら、installingの最初の画面の Advanced usersに進めと言われた。FAQにもあるらしい。
0296デフォルトの名無しさんNGNG
ありが�d
今robocode-setup.jarとかいうのダウンロードしてる。
0297デフォルトの名無しさんNGNG
今月のJAVA Develoer誌で11月頭に新宿でRobocodeの勉強会うんぬん
という話もでているね
0298デフォルトの名無しさんNGNG
Javaよりもどういう戦略がいいのか考える方が難しい。
0299testNGNG
test
0300デフォルトの名無しさんNGNG
(゚Д゚) pront?
0301デフォルトの名無しさんNGNG
結局皆何位くらいだった?
俺一週間くらいかけて作ったの出場させてたんだけど、今日見てみたら
intermediateで30位弱だった。
日本のの方がレベル上がるのかな?前の参考に出来る分。
0302デフォルトの名無しさんNGNG
ttp://www.yomiuri.co.jp/02/20020824ib01.htm
まだ公式サイトに情報が載ってないなぁ。
0303デフォルトの名無しさんNGNG
Javaは全然勉強したことがないのですけど、いまから勉強したとして、
ちゃんとしたロボットが作れますか?
Cの初歩を知っている程度の知識です。
今度の大会で、できれば初心クラスで参加したいです。
0304ksoNGNG
俺も参加してー
0305デフォルトの名無しさんNGNG
俺もやりてー。けど受験終わんないと出来ねー
0306ksoNGNG
>>305欲求不満を溜め過ぎると体に毒ですぞケケケ
0307デフォルトの名無しさんNGNG
http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20020826/1/print.shtml
初心クラスは、言語を問わずにプログラミング経験6カ月以下、らしいです。
6ヶ月以上だと、ヘボプログラマでも上級者クラスに出るしかないのか?
0308ksoNGNG
ヘボはヘボなりに奇策を考えれば(・∀・)イイ!! って俺のことかw
0309デフォルトの名無しさんNGNG
>>303
とりあえずやってみ。結構何とかなるもんだ。
簡単なロボット同士の闘いもこれはこれで面白いし。
0310デフォルトの名無しさんNGNG
キタ━━━━━━(゚∀゚)━━━━━━━!!!!!
http://www-6.ibm.com/jp/developerworks/java/robojcup/
> Robocode ジャパンカップ 開幕!
> 最強のロボットを創り出すのは、誰だ!?
0311デフォルトの名無しさんNGNG
アルゴウォーズ。
0312デフォルトの名無しさんNGNG
Javaを対戦ゲームで学ぶRobocode日本カップ開催
http://slashdot.jp/article.pl?sid=02/08/27/0555200&mode=nested
0313デフォルトの名無しさんNGNG
javaを勉強すればパトレイバーの起動用
OSが作れるようになるでしょうか?
0314shigeNGNG
COBOLが必要です。
0315デフォルトの名無しさんNGNG
http://www.ibm.com/news/jp/2002/08/08261.html
>■ Robocode Japan cup開催スケジュール(予定)
> 2002年 8月26日 参加者用情報サイトの開設
> 2002年 9月19日 ロボットの登録およびプレーシーズン・リーグの開始
> 2002年11月25日 応募締切及びプレシーズン・リーグの終了
> 2002年11月25日 予選、決勝リーグ(12月8日まで)
> 2002年12月10日 結果発表
0316デフォルトの名無しさんNGNG
チュートリアルってどっかになかった?
教えて!!
0317デフォルトの名無しさんNGNG
せめて公式サイトで、日本語APIドキュメントとか用意して欲しいな。
0318デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/9155/
「Robocodeマスターの秘密」改め「Robocodeの達人たちから秘訣を学ぶ」
を改訳してかなりアップしました。相変わらず人のふんどしで相撲を取ってます。
>>316
宣伝になるけど、おれのページ経由でチュートリアルは結構読めるのでは。
スキルがわからないので具体的にどれをお奨めするべきかわからない。
>>317
禿同。
0319デフォルトの名無しさんNGNG
レーダー、大砲の旋回速度ってどれぐらいかわかりますか?>詳しい人
0320デフォルトの名無しさんNGNG
>>319
それぞれ1フレームにつき45度、20度。
ただし大砲はロボットの、レーダーは大砲の上に乗っているので
影響を受ける。FAQ参照。
http://robocode.alphaworks.ibm.com/help/robocode.faq.txt
0321デフォルトの名無しさんNGNG
でも絶対影響受けないようにした方がやりやすい。影響受けるままでやってる人居る?
0322デフォルトの名無しさんNGNG
Class ScannedRobotEventの

getHeading() の説明の意味がわからんです、ロボットの向いている方向を角度で返す
らしいんだけど、この角度がどこを基準に計っているのか知っている人教えてほしい。
getBearing()のほうには向いている向きを基準にして角度を返すって書いてあるのに。

これと関連して、

Class HitByBulletEventの
getHeading() メソッドは
Returns the direction the bullet was heading when it hit you, in degrees
(0 <= getHeading() < 360) This is not relative to the direction you are facing.
って書いてあるんだけど、
自分の向いている方向からの相対的な角度じゃないっていうから、どっかの方角が
12時で(バトルフィールドの画面の上のほうとか)そこから時計回りに360度を測っている
んでしょうか?

ところで、玉あたってから砲塔旋回させるときにみんなどうしていますか?
0323デフォルトの名無しさんNGNG
Robotクラスのドキュメントを読むべし。
ヘディングは画面真上方向が0度、で、時計回りに正。
真右方向が90度、真下方向が180度、真左方向が270度
0324デフォルトの名無しさんNGNG
Robot#onBulletHit(BulletHitEvent)使えばいいんじゃないの。
0325デフォルトの名無しさんNGNG
>>322
この辺も参考になるかと
ttp://www.javadeveloper.jp/static/robocode/robo1.html
0326なべPNGNG
他人の作ったロボットをダウンロードして,バトルすることができますけど,
そのダウンロードしたロボットのソースコードってどうやって見ることが
できるのですか?
Robot EditerのExtract downloaded robot for editingで見られるかと
思ったのですが,ダウンロードしたロボットがでてきません。
0327デフォルトの名無しさんNGNG
コンパイルしてるから無理じゃないの?
0328デフォルトの名無しさんNGNG
逆コンパイルすれば
0329なべPNGNG
やっぱり他人のソースは見れないんだ〜
だよね〜
0330デフォルトの名無しさんNGNG
JARファイルを解凍してみた?ロボットによってはソースが見つかるはず。
0331デフォルトの名無しさんNGNG
JollyNinja,MadHatter,TheArtOfWarにはソースが入ってたよ。
バージョンによっては入ってないものもあるかもしれないけど。
でも最初のうちはデフォルトでついてくるサンプルロボットの
ソースを見るだけでもかなり勉強になる。
0332デフォルトの名無しさんNGNG
Robotのプログラムを書くのに、
eclipseを使いたいんですけど、
どうやったらいいんでしょうか?
0333なべPNGNG
デフォルトの名無しさんへ
いくつかのロボットのファイルを解凍してみたけど,
ソースコードはありませんでした。
どうもありがとうございます。
これから勉強して強いロボット作ってみます
0334デフォルトの名無しさんNGNG
自己成長型のプログラムってどう書けばいいんだろう?
自分自身と対戦を繰り返して、徐々に強くなっていくようなRobotつくれないかな?
0335デフォルトの名無しさんNGNG
>>333

328の言うように、逆コンパイルするって方向はないの?
それもまたRobocodeの目的の「Javaの勉強」の一環だとおもうのだが
0336デフォルトの名無しさんNGNG
>>332
http://robocode.alphaworks.ibm.com/help/ide/ide.html
http://www.geocities.co.jp/SiliconValley/9155/help/ide.html
>>333
http://apps.alphaworks.ibm.com/rumble/botdetails.jsp?botid=1000
ここでTheArtOfWarのJARファイルをダウンロードして解凍しる。
>>334
もし作れるのなら、おれも知りたい。
>>335
http://www-6.ibm.com/jp/developerworks/java/011026/j_j-obfus.html
■ このスレッドは過去ログ倉庫に格納されています