ム板のみんなでRobocode (・∀・)ヤローウヨ!1台目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://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
君のマシーンは生き残れるか!?
0577デフォルトの名無しさん
NGNGBulletItemのメンバ
public double Distance;
public double EnemyVelocity;
public double EnemyBearing;
public double firePower;
public double Deviation;
public double DeviationAngle;
public double Duration;
public boolean OneOnOne;
何が何かわかる?
0578デフォルトの名無しさん
NGNGごめん、素で間違えたよ。
でもいい情報をありがとう!
なんだか胸がすっきりしましたよ。
今日ms.Aresと10回タイマンで勝負して8回勝ったのが以上にうれしかった。
ただ、Ares依存な戦略だからなぁ。
ほかのやつには勝てない罠。
0579デフォルトの名無しさん
NGNG> 今日ms.Aresと10回タイマンで勝負して8回勝ったのが以上にうれしかった。
それはかなり強いんじゃないの、すごいね。
0580デフォルトの名無しさん
NGNGもっとソースコード量の少ないものから読んだらどう?
ほんとに全部わからんのか?
それぞれを代入してるところをみればわかるはず
たとえばDurationはDistance/My.getBulletVelocity(firePower)となってるわけで
そのまま相手までの距離を算出したfirePowerを引数にした弾の速度で割ってるわけだ
これでどんなことに使われるかわかるよな?
OneOnOneは1on1なのかmeleeなのかのflugでしかないんじゃないか?
代入してるところを探すとYngwie.javaの111行目あたりに
OneOnOne (getOthers() == 1);
ってあるよな?
つまりほかのロボットが1体の時はOneOnOneモードってこった
EnemyVelocityやEnemyBearingまでほんとにわからんのなら
Yngwieのソース読む前にsampleとrobocodeAPIを嫁
0581580
NGNGこれは
OneOnOne = (getOthers() == 1);
の間違い・・・
たまに親切心なんか出すからこんなことになるんだYO
逝ってきます(鬱
0582デフォルトの名無しさん
NGNGいや、10戦8勝とはいえ最初から1対1で戦ってたからねぇ。
1対1でいいならLumpとも10戦7勝で勝ったよ。
しかも動きに関しては全部で10行未満のコードで。
砲台の操作が鍵なのかなぁ?
とはいえ1対多の試合だと全然だめ!
だから実際の試合では結局勝てない。。。。
いまからこの弱点を克服します。
初心者の部での優勝を目指して。。。。。。
(↑夢ぐらい見たっていいじゃないですか。。。)
0583582
NGNG反重力移動を実装したロボットって多いと思うんですけど、重力点はどのように
決めてますか?
俺の場合、基本的には敵の位置、弾丸の位置、壁、中心付近の一点っていう教科書
通りな決め方なんですけど、いまいち良くない。
動きにランダム性が出にくいというか、弱いというか。。。
0584デフォルトの名無しさん
NGNGそのままだとコーナにはまって多数のRobotに乱れ打ちされない?(藁
漏れはまだ弾の位置を含めてないのでどこにいても
乱れ打ちされてかなり鬱・・・
ランダム性はどやってだすのがええのかのぉ?
適当なことやると今度は壁がいやんな感じになる・・・さらに鬱
0585583
NGNGそう! そうなんすよ!
んで、コーナーにも重力点をおいたらコーナーからちょっと離れたところで
はまってしまうし、、、ほら、強いロボットってある程度の範囲の中を縦横無尽に
動き回ったり、的確に弾丸を避けたりっていうふうにランダムっぽさを出しつつきっちり
制御できているじゃないですか。
あれはどうやるのかなぁって。。。
それとも俺みたいな弱いロボット前後に揺れてろってことですかね?
0586584
NGNG今ちょいと改良中
ランダムっぽさとやらがうまくいったら
ここに・・・・書かないな(藁
強い奴って反重力移動のみというわけではないだろうし微妙かと・・・
漏れもYngwieみたいなながーいソース読みこなすスキルは無いし(鬱
0587585
NGNG>>それとも俺みたいな弱いロボット前後に揺れてろってことですかね?
って書いたけど実はこれも弄れば使える戦略なんですよね。
582は俺なんだけど、AresとLumpに勝ったのも基本的に揺れているだけ(藁
ただ、揺れてるだけだと捕まっちゃうけどね。。
なんだかRobocodeばっかやってたら普通にアプリを書きたくなってきた。。(撃つだ市脳
0588デフォルトの名無しさん
NGNG震えたり、誰かが爆破されたら笑ったりするような楽しいロボット作ろうかな?
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG> 1対1でいいならLumpとも10戦7勝で勝ったよ。
Lumpに10戦7勝できるなら、日本のコンテストでは圧勝出来ると思うぞ。
0591デフォルトの名無しさん
NGNG忘れました。。。検索してみては。。。
>>590
ところがどっこいいわゆる強豪ロボット6個ぐらいとサンプルをすべてまぜて(19機)
50試合させると10位から7位ぐらいにしかならないんですよ(平均的には8位か7位)
つまり大勢で試合させるとAres, Lump, yngwieなどのいわゆる強いロボット全てに
負けてその上たまにサンプルに負けちゃうんですよ。
要するに敵がいっぱいいると弱いんです。
そして一対一でも安定性がない!
たまに角にはまってすぐ負けたりするし、、、
取りあえずもう少しがんばってみます。
ちなみにLumpとAresに勝った方法は、三つのシンプルな移動アルゴリズム
(揺れる、ストップ&ゴー、、、等)をローテーションして、攻撃アルゴリズムは
現在の状況に一番近い過去のデータを引っ張ってきてそれを修正して撃つ。
これだけなんです。誰でもできますよ、俺もプログラムを初めて半年弱ですから。
0592デフォルトの名無しさん
NGNGむ?もしかしてその攻撃アルゴリズムはパターンマッチングを使った照準算定かな?
今おれはそれを実装しようとふんばってるところなんだけど。
0593591
NGNGえ!?いや、そんなにたいしたものではないですよ。。。
ふと思い付いて実装してみただけなので。。。
そのパターンマッチングに関するドキュメントってあるんですか?
あ!?ごめんなさい、自分で探します。
0594デフォルトの名無しさん
NGNGパターンマッチングって、下手な実装すると
すごい時間かかるんじゃないの?
これから組み込もうと思ってるんだけど...
SkippedTurn発生しまくりの予感。
0595593
NGNGみんなが考えてるよりもあるかに単純なコードなんですよ。
その証拠にスキップは一回するかしないですし、その一回
はファイルの読み込みだと思われますし。。。
でもずいぶん単純なコードの割には当たる確率がずいぶん
あがったんですよ。
だから完璧を目指さない方がかえっていいのかな?って思ったりして。。。
0596デフォルトの名無しさん
NGNG0597592
NGNG勉強させてもらってる。多分Vapourあたりもパターンマッチングを使ってるんじゃないかな。
http://www.realj.com/robots/MogBot.html#aiming
http://robocoderepository.com/jive/thread.jsp?forum=18&thread=706
http://robocoderepository.com/jive/thread.jsp?forum=18&thread=706&start=15&msRange=15
0599デフォルトの名無しさん
NGNG既出?
http://www.javadeveloper.jp/static/robocode/0212/
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGグッジョブ!
と、思ったけど、内容的にはたいしたこと書いていないなぁ。
いや、599さんは悪くないしナイス情報提供だと思うんだけど。。。
この時期になってそのレベルの話が雑誌に載るとは。。。
とはいえ、それ以上のことを書かれると困るがな(藁
っていうか、学生の部に一つ強いのがいて勝てない。
どうっすかな〜?
0602デフォルトの名無しさん
NGNG> どうっすかな〜?
どのロボット?
WhiteCowardは一位になっている割に、あんまり強くない印象だし。
Novice03とBeginner01が、わりと単純な動きなのにmeleeで強いような…。
あんまりダウンロードしていないから、他にも強いロボットがあるかもしれないけど。
0603デフォルトの名無しさん
NGNGそそ。
WhiteCowardって、1vs1だとMyFirstRobotの方が強いね…4行のやつ。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGそうだね。
IBMがもっと試合をやってくれないとダメだと思う。
>>603
冗談かと思ったら、ホントなのね。
でも俺のはWhiteCowardにボロ負けする。ってことは…
>>601
で、どれ?
0606601
NGNG会話の流れ的に言いにくいんだけど、『WhiteCoward』に勝てない。
苦手なタイプなのよ、きっと。
そしてやつにとって俺は狙いやすいタイプなのよ。
つまり相性が悪いのだと思う(と願いたい)
いない?そういうやつ。
でもおかげさまで自分の弱点が分かったから今改善中。。。
克服したら・・・・、がはははははははh!
そういえば一部でアメリカの大会よりもレベルが高くなるって
話を聞いたけど、そういうこともなさそうだね。。。
それとも上級レベルはすげぇのかなぁ?
見てないからわかんねーや。
そういや、みんなのロボットの調子はどう?
0607602
NGNGIwan00とかKiBotが、結構、強いと思う。
他に強いロボットを見つけたら、教えて欲しいな。
(相性の問題があるので、公式リーグの結果は参考程度にしかならないし)。
俺のロボットは、そのIwan00とかKiBotには勝てるようになってきたので、
ちょっと自信あり。
0608601
NGNG他に強いのかぁ。。。
目立って強いのはないんじゃないかな?
トップ3ぐらいのロボットをダウンロードしてみては?
俺は学生の部のトップ20をダウンロードしちゃった。。。。
思ったよりも苦戦。。。(泣
0609デフォルトの名無しさん
NGNG>IBMがもっと試合をやってくれないとダメだと思う。
RoboLeagueを自前で開催すべし
0610デフォルトの名無しさん
NGNGたとえばHitRobotEventなら0.6のダメージを受けた後のエネルギー
なのかな? それとも受ける前?
0611デフォルトの名無しさん
NGNG一度実行したノンブロッキング処理(setTurnLeftなど)
をexecute()した後
取り消す方法はどうすればいいんでしょうか?
例えば、
setAhead(dist);
excecute();
//ちょっと進む
***()//止まる
って事はできないのでしょうか?
0612デフォルトの名無しさん
NGNGsetAhead(dist);
execute();
setAhead(0.0);
execute();
これでいけるはずだが。
0613おほほ
NGNG0614デフォルトの名無しさん
NGNG痛っ!
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNGどゆこと?
0617デフォルトの名無しさん
NGNG俺615じゃないけど、昨日の夜見えなくなってたよ。
なんか修正したりしてたんじゃない? 知らないけど。。。
今では見えるみたいだからご安心を。。
0618デフォルトの名無しさん
NGNG戦意喪失
0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNGでも強いrobotつくれん
0621デフォルトの名無しさん
NGNG漏れも動きの種類を増やそうとしておかしくなった
今全体を書き直しようやく動き始めたYO
0622デフォルトの名無しさん
NGNGありがちだよね…。漏れもときどき組んでてわけ分からなくなることあるよ。
今日も新戦略だ!とかいって新たにメソッド起こしたら、あさっての方角に
弾丸を放つようになってしまった…現在鋭意デバッグ中。
(でも明日も仕事だ…早めに切りあげざるをえん…鬱)
0623デフォルトの名無しさん
NGNG思わずageてしまった…ゴメソ。
どうやら意識が朦朧としてきたらしい…やっぱりおとなしく寝よ。
0624618
NGNG俺もがんばろうっと。取りあえずまともに動くようにはなった、というか
619が言うようにちょっと強くなった。
多分こうやっってRobocodeにはまっていくんだろうな。。。
0625621
NGNGちょっと強くなったってのはどういう指標で判断してるんだろ?
漏れのrobotは良いときは10体中トップとってみたり悪いと9位くらいまでおちる
さすがにエラーで止まったとき以外はペケはなかった気がするが10戦だとかなり変動があるね
500戦くらいやったらほんとのレベルがわかりそうだけど時間がかかるしな
今は寝る前に200〜300戦仕掛けて朝結果をみてます
みんなどうやって自分の強さを計ってる?
0626デフォルトの名無しさん
NGNG今からでも大丈夫ですか?
いちおうCとVBとDelphiは経験ありますが、JAVA初心者です。
0627デフォルトの名無しさん
NGNG大丈夫。結構楽しめるはず。
それに現在日本IBMが主催している競技会が終わったとしても
誰かが競技会を開いてくれるんじゃないかな。それに参戦するもいいだろうし。
0628デフォルトの名無しさん
NGNGなんで初心者部門に出せないんだとか思いつつ。
0629デフォルトの名無しさん
NGNGウィンドウを最小化しておくと早く終わるよ。
ちなみに漏れのロボットは、
根本的な問題をハケーンして書き直し中...(´Д⊂
0630デフォルトの名無しさん
NGNGhttp://www-6.ibm.com/jp/event/robocode/robojcup/season.jsp?gameid=34&season=6&bybot=bybot&rankst=1
ここでロボットをハイライトしている紫色がとっても見づらくないですか?
なんとかならんものかな。
0631デフォルトの名無しさん
NGNG↓ ↓ ↓
http://www.dream-express-web.com/entertainment.htm
0633デフォルトの名無しさん
NGNGつーかRoboLeague使ったら?
0634625
NGNG0635デフォルトの名無しさん
NGNGけど実装して実戦してみるとたいした効果無かったりするんだよね〜。
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNGそれが研究ってもんだよ。
0638デフォルトの名無しさん
NGNGhttp://stsmaxi.infoseek.livedoor.com/
0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNGすげー謎なんだがどこが面倒?
0642622
NGNG逆効果っぷりにガクっとなることもあるし、逆に単純すぎんじゃ
ないか?と思っていたことが案外有効だったりもするし。そこが
楽しさなんじゃないかな。と言ってみたりする。
この間の弾丸が変な方に飛んでいっちゃう問題は、Mathパッケージ
のAPIの使用ミスだったことが判明して、ちょっとほっとしてる
ところ。落ちついてSittingDuckだけを狙わせるようにしてデバッグ
してみて気がついた。試行錯誤しているうちにちょっとずつうまい
こといくようになる。そうしているうちにハマっている自分に気付く
という感じかな。
ところで、自作自演カコイイヨ >>638
日記見たら果てしなく厨だった…
0645デフォルトの名無しさん
NGNG> こんなのハケーンしますた。
> http://stsmaxi.infoseek.livedoor.com/
Rbocode掲示板TOP となっています。
Rbocode -> Robocode
ではないですか?
と言ってみたりする。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG俺もMathパッケージ使い方間違えたことあった。
しかもそれがRobocode用にはじめに作ったutilクラス。
これは絶対正しいっていう先入観があって見つから
ないこと、見つからないこと。。。
しかも使用頻度の薄いメソッドだったからたまにしかミスらないんだもん。
まいったよ。。。
ps...
ロボットのコメント欄に学生番号と名前入れっぱなしのやつ!
みるとやる気がなくなるだろ!
しかも同じ学校だと思われるのが数人。。。。
ちょっとうけたけどね。
0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNG学籍番号まで入れてるのは授業かなんかかね?
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG間に合わないっす。
もうだめぽ。。
0652デフォルトの名無しさん
NGNGRoundごとにまったくロボットが動かない時がある
エラーはでてないしDebugできん(涙
同じような症状になった人いる?
addCustomEvent(new RadarTurnCompleteCondition(this));
を使ってレーダの回転が終わってるかtestしてまふ
また他のCustomイベントとして
ttp://www-6.ibm.com/jp/developerworks/java/020930/j_j-tipbullet.html
を参考につかそのまま実装してまふ
むーん…原因がわからん
0653デフォルトの名無しさん
NGNG原因が同じかわかりませんが、私のRobotは 1on1 で敵の弾を食らうと全ての
動きがおかしくなります。(レーダーは回らなくなるし、攻撃もしなくなる......)
いろいろ実験した結果、1on1 で敵の弾を食らうとgetGunTurnRemaining()
の戻り値が 0 のはずが NaN という値になっていました。( out.printlnで確認 )
TurnCompleteイベントが TurnRemainingが 0 の時発生する仕様であれば、
この状態ではTurnCompleteイベントが起きません。 < こうなってると思う
これはRobocodeのバグ? 私のプログラムミス? すげー悩んでます。
0654652
NGNGinit();//まあ普通のことが書いてあります。
turnRadarRightRadians(2*Math.PI);
out.println(""+getGunTurnRemaining());
while (true) {
hogefuga;
}
}
>>653
こんなコーディングでテストしてみました
こちらでは動くときは0.0が表示されるのに対し
動かないときはなにも表示されずにレーダーのみ動いてる状態です
同じような原因かもしれませんねぇ
ただ当方では同様のレーダの機能を実装したテストロボットだと
同様の現象は発生せずにちゃんと動いてる状態です
原因はなんなんだ?
この問題にすでに4日ほど費やしましたが糸口さえつかめず
モチベーションがかなり下がり気味です
なにかわかったらまたここで・・・(涙
0655622
NGNGうーん、私のところではそういった現象に出くわしたことはないなぁ…。
>>654 のコードと似たような処理をしているんだけれどね。
addCustomEvent(new RadarTurnCompleteCondition(this));
ってした後で、
setAdjustRadarForGunTurn(true);
とやってはおりますが…。あんまり関係なさそうだし。お役に立てなくて
ゴメン。ちなみに当方、Debian GNU/Linux 3.0(woody) + Blackdown Java2
SDKを使っているけど、VMの違いなのかな?
私の方はというと、反重力移動を実装してみたものの(攻撃を受けた敵には
重力を負の方向に大きくし、逆にうまく当てられた奴には正の方向に大きく
してる)、これだと壁に近いところで敵から攻撃を受けると壁に向かって
後ずさりしかできなくなっちゃうことに今さら気付いてボーゼンとしてます。
冷静に考えてみりゃあたり前なんだけれどね。しょうがないので、反重力
移動で大きく移動できないことが数ターン続いたら移動方法を変えるように
しようかと思っているところ。いろいろ奥が深いですねぇ…ふぅ。
0657656
NGNG深読みする相手には有効なフェイントかと。
0658652
NGNGBulletTrackingとRadarSweepを天秤にかけ
BulletTrackingをはずすことにしますた
結果
とりあえず止まることは無くなったでつ
結論
CustomEventの発生あたりでバグを仕込んでしまったか
robocode側のバグか・・・追求はせず終了(藁
0659652
NGNG別の方法(カスタムイベントを使わない)でほぼ同じことを
無理やり実装してBulletTrackingも残すことにしますた(藁
たまにはage
0660653
NGNG今までGunTurnRemaining()だけだったのが、今度はレーダーの
方がおかしくなってます ;><;
バグ入る前のは今総合順位30位以内に入ってるんですが、
バグを抱えてもそれより強いです、でもこんなの恥ずかしくて
UP出来ない...もうだめぽ。
0661デフォルトの名無しさん
NGNGけどあまりに思うとおりに動かないので
他の人のロボットを継承して作る・・・。これって販促?
0662デフォルトの名無しさん
NGNG反則云々以前に人としてプライドってものがあるだろうに。
0663652
NGNGとりあえずなにを実装したらおかしくなったのかを
よーく思いだしてもしそのころのソースを持ってるならば
考えながら別実装してみるのも手かと・・・
なんとかパターン解析を実装したいのだが
やり方わからん・・・漏れもだめぽ
順位も着実に落ちてるし
もしかして弱くなってるのかも
0664652
NGNG0665661
NGNGべつにプライドは・・・。
継承自体も一応立派な技術じゃん。
メソッド追加して動きのパターン増やせば強くなるし。
んじゃ、662タンはどこのサイトも見ずにjavadocだけ見て
弾の感知とか動きのパタンとか考えてるの?
サイト見てソース書いても同じだろ?
あっ、そうじゃないとプライドが傷つくのか(ワラ
漏れはへタレなのでいろいろサイト見てますが。
662タンほどJAVA得意でもないんで。
0666デフォルトの名無しさん
NGNG>提出ロボットは参加者自己のオリジナルの作品でなければなりません。
に引っかかるだろ
0667デフォルトの名無しさん
NGNG662じゃないけど、
強い敵に対抗するときに実装の根幹に手を出せないのは
もどかしいと思うですが。。。
Σ(゚д゚)まさか複数のロボットをパクって
状況で動的に入れ替える!?
0668デフォルトの名無しさん
NGNGこれってどの辺まで適用されるんだろうねぇ
継承はまあアレとして参考にしたり部分的に頂いて実装する事なんて
9割方の人がやってると思われ・・・
という漏れも完全オリジナルがあるか?と問われたら
自信をもってこれは漏れのオリジナルだYOと
いえる部分ってほとんど無いかも・・・はげしく鬱
0669デフォルトの名無しさん
NGNG名前で動きを決めるのはアリなの?
getName()って"作者名.ロボット名"って感じで出てくるから
特定の作者の時だけ攻撃とかもできるんだけど。。。イジメ?
0670デフォルトの名無しさん
NGNGとりたててそのロボット自身つよくはないよな・・・たぶん(藁
かといって多数のロボットにそれぞれmethod作るってのも非現実的だなぁ
それでJapanCupの上位陣はClassのダウソさえさせないのかモナー(藁
0671622
NGNGそれやろうかとも思ったけれど、さすがに汎用性がなくなっちゃうし、
相手のロボットがバージョンアップしたら意味ないし…ということで
やってないけどね。芸がない!とも思ったから、というのもあるけど。
>>670
そうそう!上位のロボットはのきなみクラス公開してくれてないよね。
まぁ、逆アセンブルとかされたら嫌だからということなのかもしれない
けど、でも私としては、毎日少しずつアイディアを練って試行錯誤して
いるところなので、是非もっと勝負させてもらえたらと思っているんだ
けどね。胸を借りてみたいっす。(藁 私に身のほどというのを教えて
ほすぃ。
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNGさすがにonWinとかonDeathだけオーバーライド(w)してもダメだろうけど
0674デフォルトの名無しさん
NGNG理解してるかコピペしてるかは一目瞭然だろうな
0675デフォルトの名無しさん
NGNG。。。そりゃそうか
0676デフォルトの名無しさん
NGNG> 胸を借りてみたいっす。(藁 私に身のほどというのを教えてほすぃ。
コンテスト終わったらね
>>675
そりゃそうだ
■ このスレッドは過去ログ倉庫に格納されています