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

君のマシーンは生き残れるか!?
0449デフォルトの名無しさんNGNG
>>448
thanks。
Developer Works で記事を探していた。(どおりで見つからないわけだ)
0450デフォルトの名無しさんNGNG
Javadevのリンク集
http://www.javadeveloper.jp/static/robocode/robolink.html
0451デフォルトの名無しさんNGNG
ちょっと確認したいんだけど・・。
getX()、getY()で取得される値って左下角が(0,0)ですか?
0452デフォルトの名無しさんNGNG
コンテストのフィールドって1000*1000なのかな?
Yngwieはそれだと強いね。
800*600でやるとSandBoxLumpがえらい強い。
SandBoxLumpはSampleTeamとやっても勝っちゃうし・・・。
回避する動きはある程度の(着弾時間?)時間たったら
半円運動してるみたいだけどそんな単純じゃないのかな。
0453デフォルトの名無しさんNGNG
>>451
>getX()、getY()で取得される値って左下角が(0,0)ですか?
そうです。

All coordinates are expressed as (x,y).
All coordinates are positive.
The origin (0,0) is at the bottom left of the screen.
Positive x is right.
Positive y is up.

Robocode のAPIドキュメントの一番最初の部分に書いてあります。
0454デフォルトの名無しさんNGNG
>453
THX
落ち着いてAPIに目を通します。
0455デフォルトの名無しさんNGNG
>>452
1000*1000でやってもSandBoxLumpが凶悪なまでにつよいのですが、、、
本当にYngwie 優勝できたんですか?
0456デフォルトの名無しさんNGNG
>>455
meleeではSandboxLumpが驚異的な成績を上げたが
http://apps.alphaworks.ibm.com/rumble/botdetails.jsp?botid=921
準決勝の1対1でYngwieがSandboxLumpに勝ちそのまま優勝した。
http://apps.alphaworks.ibm.com/rumble/
0457デフォルトの名無しさんNGNG
Yngwieを改造したやつを、大会に参加させるのは違反ですか?
0458デフォルトの名無しさんNGNG
それで勝ってうれしいか?
買ってないのに偽装肉の代金返せとか言ってるDQNと同じ。
0459デフォルトの名無しさんNGNG
>>457
http://www-6.ibm.com/jp/developerworks/java/robojcup/rules.html
によれば
> 提出ロボットは参加者自己のオリジナルの作品でなければなりません。
> 第三者の権利を侵害せず、同種の賞を受賞しておらず、
> 出版にふさわしいものでなければなりません。
なので、違反ですね

>>458
それをやった人がうれしいかどうかは別にして
他の人はうれしくないね
0460デフォルトの名無しさんNGNG
Yngwieってそんなに強いかなぁ?
0461デフォルトの名無しさんNGNG
>>460
日本のコンテストに出したら、結構いいとこいくとおもうが
0462デフォルトの名無しさんNGNG
>>461
そういう意味じゃなく、トーナメントで優勝した割りに弱いという意味でしょう。
上で何度もあがっているけど。
0463デフォルトの名無しさんNGNG
盛り下がってるね
0464デフォルトの名無しさんNGNG
海外の大会で入賞したロボットのソースコードが公開されているのは、
これから大会を催す側にとってかなりやりにくいんじゃない?
参加する側が盛り下がっているのはどうでもいいとしても。
0465デフォルトの名無しさんNGNG
MogBotなどが採用しているPattern Matchingによる標的あわせを
実装できないかとがんばってるのだが難しいっす。
Robocode Repositoryとかのフォーラムには
レベルの高い戦術のコンセプトが以前からたくさん書かれてるよ。
だからソースを読まなくても理解できる人には理解できるんじゃないかな。
0466デフォルトの名無しさんNGNG
自分のロボットの色、かなり気に入ってたんだが
MOGBOTとソクーリだった (´・ω・`)
みんなもそういう経験ない?
0467デフォルトの名無しさんNGNG
junitとか標準でないAPIを使いたい場合はどうするんでしょう?
自分ちでやる分には、classpathを指定すれば良いんだけど。
クラスローダーを使わなければならんのでしょうか?
0468デフォルトの名無しさんNGNG
ちょっと質問です。
敵を倒したときに、コンソールに
SYSTEM: Bonus for killing ak.Fermat: 16
とか出てきますが、この最後の数字はなんでしょうか
0469デフォルトの名無しさんNGNG
ム板って略すの? 本当?
0470デフォルトの名無しさんNGNG
嘘。
0471デフォルトの名無しさんNGNG
>>468
文字通り"フェルマーを殺したので、ボーナス16万円"ということでは?
規定回数のラウンド終了後のスコア報告でちゃんと足されてるよね?
0472468NGNG
>>471
あっなるほど、単位は万円だったのか
どうもでした
0473デフォルトの名無しさんNGNG
これからはじめようと思う初心者です。
で、さっそく(笑)コンテストを意識していきたいのでつが、
コンテストの「ルール」とかはどんな感じなんでしょう?
まず 1:1 なのか 10体ぐらいで生き残りするのか というあたりが一番興味
あるのですが、なんかそんなこと書いてあるようなページありますかね?
0474デフォルトの名無しさんNGNG
>>1を見てからカキコ
0475474NGNG
>>1には書いてなかった。ここですた。
http://www-6.ibm.com/jp/developerworks/java/robojcup/
0476デフォルトの名無しさんNGNG
セミナー行く人っている?
0477デフォルトの名無しさんNGNG
>>475
>>473の求める事はそこにはない様に読めるが?
0478デフォルトの名無しさんNGNG
これのことを言いたかったのでは?
http://www-6.ibm.com/jp/developerworks/java/robojcup/rules.html
予選は1対1、決勝は1対1とmeleeの両方、という解釈でいいのかな…
0479473NGNG
>>475 >>478
ありがとう!
1vs1とかmeleeとかそのへんが知りたかったのでドンピシャでした。探したりなくてスマンです。

いまは特定tick後の敵の位置、エネルギーをある値で発射したときの弾の移動方程式との
交点をもとめてうんぬん…つまり敵が線形に動いてるなら確実にあてることができるロジック
を磨いてます

高校の教科書とかひっぱりだして (´Д`A;)
0480デフォルトの名無しさんNGNG
テラリウムスレは消滅したのに、このスレは息長いねぇ。
あたかも、将来におけるC#とJavaの縮図。
0481デフォルトの名無しさんNGNG
デリリウムってビールは結構不味い。
0482デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/9155/roboleague/LeagueJP.html
http://user.cs.tu-berlin.de/~lulli/roboleague/
RobocodeにおけるRoboLeagueのようなものがあれば
おれはテラリウムをやってみたいけど。
0483デフォルトの名無しさんNGNG
>>482
http://www.gotdotnet.com/terrarium/server/
っていうのがあるけど、テラの場合はPeerが集まらないと面白くないと思う

http://www.gotdotnet.com/community/messageboard/MessageBoard.aspx?id=10
とか見るとUSサーバでやってる人はまだいるみたい

>>480
コンテスト前にしては書き込みが少ないと思う、何でだろ?
0484デフォルトの名無しさんNGNG
Cマガについてた付録はなに?
0485デフォルトの名無しさんNGNG
>>480
息は長いが盛り上がってもいない。
>>479みたいな話題がもっと出てきても良さそうなもんだが。
ちなみに線形予測は正弦定理使えばイパーツだよ。
当たるまでの時間も当たる位置も求める必要なし。
0486デフォルトの名無しさんNGNG
>>484
オフィシャルサイトから辿れるTipsの日本語訳をただ活字にしただけみたいね…。
つまんないことに。
特に後半の部分は「外套と砲塔」そのものなので、developerWorksからPDFで
入手できるのに…。

>>485
そうね。そういう話題がないと盛りあがらない。
私は、1対1のときと、複数の敵がいるときとでは戦略を変えるべきかな、とか
考えて、カスタムイベントを作成して敵が1台になったときにイベントを発行
してonScannedRobotが呼ばれたときの処理とかを切りかえるようにしている。
(Strategyパターンそのものだね…)
でもまだ防御中心にしか考えてなくて、攻撃については2の次なんだけど(藁
0487デフォルトの名無しさんNGNG
たくさん敵がいる中でどれか1体だけを標的として選ぶわけだけど
どういう基準で選んでる?とりあえず今のところおれは一番近いものを選んでる。
敵の情報のクラスのインスタンスをハッシュテーブルにぶち込んで
各ターン毎にイタレーションしながら自分のロボットとの距離が最小のものを
選んで狙うことにしているんだけど。

レーダーは1on1のときとmeleeのときでは動かし方が違うけど
Robot#getOthers()の値が1かどうかだけで変えてます。
最初はレーダー制御をするクラスを2つつくろうかと思ったが
そこまですることはなかった。
ロボットの車両の制御は複数のクラスを作ってさしかえるほうが楽だけど。
0488デフォルトの名無しさんNGNG
サンプルロボット < 俺のロボット <<<<<<<<<< 大会で上位のロボット
0489デフォルトの名無しさん NGNG
あげていい??
>>487
俺は標的を選ぶ時にいくつかの項目で点数をつけて一番点数の高いやつを狙ってる。
例えば距離が100以内なら5点、200以内なら4点っていう風にね。
こういうのを数項目点数化してる。主に距離と敵のエネルギーを重視してるかな?

レーダー制御は一つで十分ですね。最初張り切って敵の数によって
三種類作ったんだけど結局は一つに落ち着いた。

>>488
気持ちはよ〜く分かる
0490デフォルトの名無しさんNGNG
>>489
レーダーまでは簡単にできるんだよね。
しかしその後が難しい...
スランプに陥りますた。
0491デフォルトの名無しさんNGNG
>>487
私の場合は、距離と相手の速度かなぁ。索敵したときの相手の速度が遅ければ
とりあえずエネルギーを少なめに設定して撃ってしまえといういい加減なことを
今のところしちゃってます。本当は相手の速度を参考に線形予測くらいさせない
といけないはずなのだが…。距離が近ければそれはもうイケイケって感じでエネ
ルギーを上げて撃ってる。
>敵の情報のクラスのインスタンスをハッシュテーブルにぶち込んで
>各ターン毎にイタレーションしながら
ってところはほとんど私と一緒っぽいですね。というか、他に有効な方法って
なかなか思いつかないし。

>>489
なるほど。点数をつけるというのは良いかもしれないですね。相手の距離とか
速度とかエネルギーとかの情報を重みづけの係数をかけた線形和にして点数化
するとかね。

>>488
あはは。それは言えてますわ(涙)。私もやられっぱなし。こんなんでいいのか
なぁ…。
0492デフォルトの名無しさん NGNG
みなさん、照準合わせってどうしてます?
俺はドキュメントをもとに線形予測と円形予測を実装したんだけど、反重力移動
してるやつには絶対に当たらない。
取りあえず当たらないやつには乱射してやってるけどね。
最近やっと ms.Ares に勝てるようになってきた。。。
0493デフォルトの名無しさんNGNG
>>492
そこが難しいところ。
まともに線形予測とかやっても、
コンテストに出てくるようなロボットにはまず当たらない。
今のところSandBoxLumpの方法が最強と思われ。
http://www.sandbox.dial.pipex.com/robocode/
0494デフォルトの名無しさんNGNG
>>493
まだよく読んでないけど難しそう。

敵がこのまま動くときと、方向が逆転するときと、その場にいるとき
っていう風にアルゴリズムを分けて統計をとってるって感じなのかなぁ?

↑ 鬼のような早さで斜め読みしただけなのでよく分かってませんが。。(とほほ

なんかロボコードって教育効果があるって言われてるけど、どうなのかな?
プログラムに興味を持たせるっていう意味ではすばらしいけど、ちょっとしたところで
悪い癖がつきそうで。。。
0495デフォルトの名無しさんNGNG
ゲームに教育要素を求める事自体が不純でしょう。
0496デフォルトの名無しさんNGNG
>>495
なんかすごい一般論だね。そういうのとはちょと違うと思うんだが。
robocodeは(いわゆる)ゲームじゃないし、教育目的でもない。
>>494
どんな競技でも、一番上の方まで行くといろいろ問題が出てくる。
サンプルロボットたちとマターリやってるうちは楽しいだけだし、
そういう楽しみ方もそれはそれでアリなのかなと。
...とは言ってもどうせならThinkPad欲しいし。(藁
0497デフォルトの名無しさんNGNG
>>495
教育的でないゲームなど不要でしょう。

少なくとも私はテラリウムでC#、これでjavaを覚えました。
0498デフォルトの名無しさんNGNG
>>496
ThinkPad欲しい!
でも照準合わせ、移動アルゴリズムっていうことに関して俺は無知だから
なかなかうまくいかないのよ。
せっかくだから大会には参加するつもりだけどね。
そういえば大会には何体ぐらいのロボットが参加するんだろ?

>>495
>教育的でないゲームなど不要でしょう。
同意!
0499デフォルトの名無しさんNGNG
>>498
> そういえば大会には何体ぐらいのロボットが参加するんだろ?
テラリウムでは1000人ぐらいだったそうです。

.NET人口よりもjava人口の方が多い事
IBMがプロモーションをがんばっている事
でもRobocodeが難しくて敷居が高い事

を考えて、私の予想ではやはり1000人ぐらいではないかと。
0500デフォルトの名無しさんNGNG
>>498
なるほど1000人ですか。。。
それだけいれば弱いやつも結構いるのかな?
目標は取りあえずThinkPadということでがんばってみます。

もし俺以外の999体がSandBoxLumpのコピーロボットだったら・・・((;゜Д゜)
0501デフォルトの名無しさんNGNG
Mathew Nelsonは
What made you want to use your programming skills to create an educational game for programmers rather than a flashy game just for fun's sake?
というインタビューに
Nothing. I wrote a flashy game just for fun's sake. We discovered the educational aspect later.
と答えているんだが。
http://www-106.ibm.com/developerworks/java/library/j-nelson/
0502デフォルトの名無しさんNGNG
>>501
> と答えているんだが。
ん、それがなにか?
0503495NGNG
>>497
>教育的でないゲームなど不要でしょう。
そういう発想が不純。
0504デフォルトの名無しさんNGNG
いよいよあと10数分で登録開始日

24日になったら登録サイトが公開されるんだろうか?
0505デフォルトの名無しさんNGNG
>>495=503
その話は別にスレ立ててやっとくなはれ。
そんなんそれぞれの解釈でよろしいがな。
0506デフォルトの名無しさんNGNG
sampleには勝てるようになったがその後が・・・
0507デフォルトの名無しさんNGNG
>>504
また延期だったらどうしよう...
なんか去年のYBB放置民だった頃を思い出すなあ...
0508504NGNG
>>507
同じことをされてたような覚えがあるなぁ
まだIBMサイトに変化はなし・・・
0509デフォルトの名無しさんNGNG
>>505
>そんなんそれぞれの解釈でよろしいがな
たしかに。。

>>506
そういう人が多数いると思われ。
かくいう俺も・・・・。
サンプルに勝つアルゴリズムは上位のロボットにまったく歯が立たない。
機械的な方法では勝てないから柔軟性が必要になってくると思うんですよ。
(当たり前のことを偉そうに言ってみました、逝ってきます)

0510デフォルトの名無しさんNGNG
何時からだろうね。
人は集まるのかね。
0511デフォルトの名無しさんNGNG
まあ夜中にWebを書き換える程のやる気があるとはもともと思ってないけどね。
0512デフォルトの名無しさんNGNG
OSXだと遅すぎる G3/550 576MB
0513デフォルトの名無しさんNGNG
夕方になってもwebを書き換えないIBM・・・
0514デフォルトの名無しさんNGNG
>>512
禿同
どうにかならんもんかな
0515デフォルトの名無しさんNGNG
>>512,514
まったくだ!
0516デフォルトの名無しさんNGNG
日本IBMが登録ページを作ったよ。
http://www-6.ibm.com/jp/event/robocode/robojcup/
http://www-6.ibm.com/jp/event/robocode/home/index.html
Robocode APIドキュメンテーションのオフィシャルな日本語訳もあった。ZIP形式。
JDK1.3API(英語)にリンクがはってあったけどなんで1.4や日本語じゃないんだろ。
0517デフォルトの名無しさんNGNG
>>516 サンクス!
とりあえず、ユーザー登録だけはしてきた。
0518デフォルトの名無しさんNGNG
勝者Walls!!
新たな強敵か?
0519デフォルトの名無しさんNGNG
>>518
サンプルだと思われ。
0520デフォルトの名無しさんNGNG
俺のロボットよりは強い
0521デフォルトの名無しさんNGNG
ユーザ登録しますた。
ロボットできてないけど。(;´Д`)
締め切りまでに間に合うかなぁ?
0522デフォルトの名無しさんNGNG
みんなで雑魚ロボットを大量生産して登録。
それらの名前を全て *.ch2 に統一。
そして本命ロボットはこの名前のロボットがいたら集中砲火。
ボーナスいっぱい!




なんてな。
0523デフォルトの名無しさんNGNG
トップページで最新登録ロボット名わかるし、すぐダウンロードできるね。
んで、ボーナスってなんだ????
0524デフォルトの名無しさんNGNG
ぼちぼちロボットがうぷろーどされてますな

まだ漏れは登録のみだが・・・

>>523
撃破するともらえるボーナスのこと
0525デフォルトの名無しさんNGNG
>>476
ウワーン セミナー締め切っとるやん 鬱
0526デフォルトの名無しさんNGNG
けっこうUPしてるじゃん!
日曜日が楽しみじゃ〜
0527デフォルトの名無しさんNGNG
ダウソロードできるロボットだとSwallow1.01が
なかなかつよい・・・つか勝てない
0528John ◆Re0z.4Is5E NGNG
俺も参加しようかな。
30日くらいあるしな。
ただ、4日くらいしか使える時間がないけどな。
0529デフォルトの名無しさんNGNG
>>528
まあ、がんがってくれ。
( ´,_ゝ`)プッ
0530デフォルトの名無しさんNGNG
>>522
すぐに他のロボットにも雑魚だとバレてボーナス持ってかれる罠。
それに、本当にやったら「不正行為」とみなされて失格だろうな。
0531デフォルトの名無しさんNGNG
このゲームって敵の弾を感知することは出来ないんだよね。
0532デフォルトの名無しさんNGNG
公式ページでリーグ戦が始まってるぞ!?
0533デフォルトの名無しさんNGNG
>>531
直接感知はできない。間接的に推測することはできる。
「外套と砲塔: ロボコードの達人たちから秘訣を学ぶ」の
「弾丸をよける」を読んでみそ。
http://www-6.ibm.com/jp/developerworks/java/020802/robocode_link.html
0534デフォルトの名無しさんNGNG
>>530
だろうね。

>>531
分からないから面白い!
ってか俺はできると思ってドキュメントを必死に探したけどな(泣笑
0535デフォルトの名無しさんNGNG
おまえらノートパソコンが目的ですか?
0536デフォルトの名無しさんNGNG
Robocode API documentationのオフィシャルな日本語訳は
v1.0.3からAdvancedRobotクラスに導入された3つのメソッド
getDataQuotaAvailable(), setFire(double), setFireBullet(double)
についての記述がないので要注意。
0537 NGNG
filewriterつかえないんだけど。。。
security関連よくわからん。
0538デフォルトの名無しさんNGNG
>>525
おりもぬかったよ 昼飯でたみたいだし
締め切られると申し込めばよかっと思うのはなぜ
 ヽ(´Д`)ノ ウワァァァァァァァァァン!!!
0539デフォルトの名無しさんNGNG
>>525>>538
残念だったな。記念品としてIBM developerWorksのファッション時計がもらえるのに。
0540デフォルトの名無しさんNGNG
>>537
ファイルに書き込んだりはできないんだ。
じゃあ、学習とかって絶対無理?
0541デフォルトの名無しさんNGNG
>>540
1回の戦闘中の間に学習して強くなる。
次の戦いでは一から出直し。
0542デフォルトの名無しさんNGNG
>>540
ファイルに書き込みたいなら
RobocodeFileOutputStreamかRobocodeFileWriterを使うべし。
sample.SittingDuckのソースも嫁。
>>541
ラウンドが変わっても前のラウンドのオブジェクトのインスタンスが残ってることがあるぞ。
ソースコードはもうデリートしてしまったのではっきりしたことはいえんけど
あれは確かstaticなフィールドだった。
0543デフォルトの名無しさんNGNG
>>542
情報ありがと。
調べてみます。

関係ないけど、
あるクラスというかネイティブメソッド?か何かわからないけど
FileWriterを使えなくする機構ってのは
リフレクションAPIを使ってるんだよね?
一個一個禁止クラスを記述してるのかな・・・
0544デフォルトの名無しさんNGNG
学習するにしても
自分で何回も実行するの面倒じゃない?
0545デフォルトの名無しさんNGNG
結論は
AdvancedRobotのgetDataFileを使えという事らしい。
RobocodeFileOutputStreamはなんのためにあるのかよくわからない。
0546デフォルトの名無しさんNGNG
質問ばかりで申し訳ないのだけど、
eclipse等の使い慣れたエディターで
コードを作成したりはできないのですか?

0547デフォルトの名無しさんNGNG
漏れeclipseでつくってます

ログ参照すれ
0548デフォルトの名無しさんNGNG
http://robocode.alphaworks.ibm.com/help/ide/ide2.html
サンクス
クラスパスにrobocode.jarを設定すればいいのか。
■ このスレッドは過去ログ倉庫に格納されています