ム板のみんなで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
君のマシーンは生き残れるか!?
0002デフォルトの名無しさん
NGNG乙かれー!
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG乙ー
0006デフォルトの名無しさん
NGNGpackage itteyoshi;
import robocode.*;
public class Hexagon extends Robot {
public void run() {
while(true) {
ahead(360);
turnRight(60);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
fire(3);
}
public void onHitByBullet(HitByBulletEvent e) {
back(60);
}
}
0007デフォルトの名無しさん
NGNGMacの方はこちらのサイトを参考にすれば良いかと。
ttp://www.cool.giti.waseda.ac.jp/~acdc/robocode.html
0008デフォルトの名無しさん
NGNGロボコードのアップロード・ダウンロードができるサイトで
メジャーなものはこれかな。
http://robocoderepository.com/
http://robocode.diverman.com/
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG見れるよ。確かこんな手順だったかな。
[Robot]->[Editor]
[File]->[Extract downloaded robot for editing]
JollyNinjaを選択しSelectedRobots欄に追加->[Extract!]
間違ってたら誰かフォローお願い。
0012デフォルトの名無しさん
NGNG豪華商品くれくれ
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGthxです。まだやっと目的地に向かって直線移動できるようになった程度ですが、
がんばってみます。
ところで砲台回転しながら移動、とかってやっぱりスレッド立ち上げてやるのが
正解なんでしょうか?
001615
NGNGそっちを使えばいけそうな感じ。
自己レス失礼しました。
0017デフォルトの名無しさん
NGNG最初はメチャクチャに動き回って攻撃を回避し、
全体の数が減ったところで攻撃を始める戦法で作ってるよ
多数のバトルロイヤル形式だとけっこう生き残る
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGレはレモナのレ〜
ミは
0020デフォルトの名無しさん
NGNGAA辞典逝こうな。
0021デフォルトの名無しさん
NGNGトーナメントに参加するだろうし、
大会に出たやつらがここで実名さらして
自作のロボットを語ってくれるはずは
ないし…
==================終了==================
002215
NGNGJollyNinjaには全く歯が立たない・・・
結局照準調整がキモなのかな?
ルールは単純ですが、思ってたよりはずいぶん奥が深そうです。
>>21
ほっといても終わるのが分かってるならそう無理に終らせなくとも。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGいやーそんなことねえべ
完成したソースをやりとりするのもいいが、
移動や砲撃のちょっとしたアルゴリズムを語り合うことで
話題はあると思う
ていうか、そもそもRobocodeってゲームではなくて
Javaの学習用という意味合いが強いんでは?
0025デフォルトの名無しさん
NGNGレーダーが超高性能なので、敵の位置はほぼ常に把握できている。
ということはつまり、自分の位置も常に把握されている。
ということは、常に全速で動いてることが必須。
そのわりに砲弾が低速なので、予測しても当らない。
メインはチームバトルか?
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG減らないみたい。
import robocode.*;
public class WallHit extends Robot {
public void run() {
while(true)
ahead(200.0);
}
public void onHitWall(HitWallEvent e) {out.println(getEnergy());}
}
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGAdvancedだったら減るが普通のRobotなら減らない。
>>28
は?
0030デフォルトの名無しさん
NGNG所々で、Randamを入れてるよね?
サンプル見てるとどれも一定の動きなんだけど・・・
0031デフォルトの名無しさん
NGNG「敵と自機の座標において(x1-x2)/(y1-y2)の値が一定となるような
動きはなるべく避けろ。もし発射したいときは発射後速やかに
その(x1-x2)/(y1-y2)の値が一定となるような座標から離れるべし」
0033デフォルトの名無しさん
NGNG{
/**
* run: Sample's default behavior
*/
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) {
// Replace the next 4 lines with any behavior you would like
turnGunRight(8);
}
}
/**
* onScannedRobot: What to do when you see another robot
*/
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
/**
* onHitByBullet: What to do when you're hit by a bullet
*/
public void onHitByBullet(HitByBulletEvent e) {
back(100);
}
/**
* onHitRobot: What to do when you hit other robot
*/
public void onHitRobot(HitRobotEvent e){
fire(3);
}
/**
* onHitWall: What to do when you are close by wall
*/
public void onHitWall(HitWallEvent e){
turnRight(e.getBearing());
back(900);
}
}
的に弾に当たったときに連射をしません。
どうしてでしょうか?
またどのように対処すればよいのでしょうか?
お願いします。
0034デフォルトの名無しさん
NGNG1対1でも20機ぐらいで対戦させても
かなりのアベレージで生き残る。
003534
NGNG0036デフォルトの名無しさん
NGNGHitRobotEventは弾が当たったときのEventではなく、
他のRobotとcollide(衝突)したときのEventだから。
API見直してみ。
0037デフォルトの名無しさん
NGNG> 的に弾に当たったときに連射をしません。
この日本語の意味がよくわからないのですが、もしも
レーダーが敵を捕捉したら弾丸を発射し、
発射直後もまだ敵がレーダーで捕捉できる位置にいたら
大砲とレーダーを固定したまま弾丸を発射しつづけるようにしたい
という意味ならonScannedRobot()メソッドに以下のように
scan()メソッドを加えると実現できます。
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
scan();
}
scan()メソッドをあの場所で使わないと
大砲の発射直後にrun()メソッドが大砲(とレーダー)を回転させるため
敵がレーダーの有効範囲から外れてしまいでScannedRobotEventが発生しない
からではないかと思います。scan()については
http://robocode.alphaworks.ibm.com/docs/robocode/robocode/Robot.html#scan()
やサンプルロボットのソースの中のコメントを読んでみてください。
003837
NGNG0039デフォルトの名無しさん
NGNG1対1で戦うのと、バトルロイヤルで戦うのでは
明らかに考え方が異なるよなぁ
何種類かの動きをclassにしておいて
動的に切り替える方法がいいのか?
0040デフォルトの名無しさん
NGNGStrategyパターンやStateパターンが使えるんじゃないかと睨んでる。
実際、JollyNinjaはStrategyパターンを採用しているみたい。
Robotが死んだときのEventは拾えるから動的に切り替えることは可能なはず。
0041デフォルトの名無しさん
NGNG当たり前なことをパターン名で語られても間抜けな感じだな。
まあどうでもいいが。
0042デフォルトの名無しさん
NGNGなるほど。状況に応じて思考ルーチンをごそっと入れ替えるんだな。
Robotの名前考え付いたよ。Quadropheniaってのはどうだ?
0043デフォルトの名無しさん
NGNG失礼なんですけど・・・
レーダーで感知できるのは、相手の座標だけですか?
相手のGunの向きやレーダーの向きを知ることは
不可能ですか?
0044デフォルトの名無しさん
NGNG相手との距離、向き(相対角度)、相手の速度、エネルギー、名前
だけわかる。
ドキュメント嫁
0046デフォルトの名無しさん
NGNGhttp://robocode.alphaworks.ibm.com/docs/robocode/robocode/ScannedRobotEvent.html
レーダーで敵を感知したときのイベントのドキュメントは↑。念のため。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGテラリウムスレ
http://pc.2ch.net/test/read.cgi/tech/1013093589/
0050デフォルトの名無しさん
NGNGっていうのも考えないといけないよな
あんまり距離あるときに発射しても当たる可能性低いし・・・
いやこれ、設計難しいわ・・・
0051デフォルトの名無しさん
NGNGfire()のpowerを下げれば、弾は速くなる。
距離に応じてpower変えれば、とりあえずいいんでない?
0052デフォルトの名無しさん
NGNGRuleタブの[Gun cooling Rate]
ってありますよね
あれによってもかなり戦略変わると思うんですが
あの値(標準は0.1)って取得できます?
0053デフォルトの名無しさん
NGNGRobotクラスにgetGunCoolingRate()メソッドがあるよ。
0054デフォルトの名無しさん
NGNGRobot#getGunCoolingRate()だと思う
http://robocode.alphaworks.ibm.com/docs/robocode/robocode/Robot.html#getGunCoolingRate()
0055デフォルトの名無しさん
NGNGきっと
ROBOCODEのディレクトリをスキャンして、成績よさげなロボット
を自分でロードして、あとはBridgeパターンでそのロボットに
なりきっちゃうってのはどうだ?
0056デフォルトの名無しさん
NGNGでWallに対抗したいと思っているのですが実装の仕方がわかりません。
普通に
onHitWall(HitWallEvent e)
の中で仮にスキャンしても敵を見つけたときに砲火してくれません。
多分Javaの文法自体が分ってないと思うのですがどのようにすれば
私の望むような動作をしてくれるようになるのでしょうか?お願いします。
0057デフォルトの名無しさん
NGNGうーん、とりあえず。
onHitWall()メソッドを
public void onHitWall(HitWallEvent e) {
turnGunRight(180);
}
ってしてるようなら例えば AdvancedRobotを継承して
public void onHitWall(HitWallEvent e) {
setTurnGunRight(180);
execute();
}
とすると大砲の回転中に弾丸を発射できるようになる。
0058デフォルトの名無しさん
NGNG今、こんな感じで壁から離れるだけに設定しています。
public void onHitWall(HitWallEvent e){
turnRight(e.getBearing());
back(900);
}
この場合はどうすればいいのでしょうか?お願いします。
0059デフォルトの名無しさん
NGNGコンパイルしてないので自信はないけど
public void onHitWall(HitWallEvent e){
setTurnRight(e.getBearing());
setBack(900);
execute();
}
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGできないかな? 例えば自分の処理を10個のスレッドに分けると、
自分だけ計算時間を他のロボットの10倍つかえたりしない?
0063デフォルトの名無しさん
NGNGこれ↓を読んでみたけど出来なさそうだよ
http://www-6.ibm.com/jp/developerworks/java/020329/j_j-robocode.html#11
0064デフォルトの名無しさん
NGNGSkippedTurnEventがやたらと発生するだけ
0065デフォルトの名無しさん
NGNG結局自分の番がスキップされるだけってことか。
0066デフォルトの名無しさん
NGNG読みはじめたんだけどキリが無いっす
0067デフォルトの名無しさん
NGNGバトルマネージャから見えるスレッド以外に
daemonスレッドを作ってずっと動かしとけば良いのでは。
バトルマネージャからwakeupされるスレッドは
ちゃんと時間内にblocking APIを呼び出す。
他のスレッドは、他のロボットの番にたっぷり考えて
邪魔しつつ高度な処理を行う。自分の番になったら
情報を渡してsleepする。
0068デフォルトの名無しさん
NGNG2ちゃんでやる意味はこういうとこかも
0069デフォルトの名無しさん
NGNGhttp://apps.alphaworks.ibm.com/rumble/
0070デフォルトの名無しさん
NGNGいつ実行されるか予測のつかないデーモンスレッドの計算結果を
あてにしてもしょうがないし
バトルマネージャから見えないスレッドなら開始されることもないと思うがどうよ
0071デフォルトの名無しさん
NGNG壁(外壁じゃないよ)などの
障害物があることって
今後あるのだろうか?
0072デフォルトの名無しさん
NGNGあったような気がする。
http://robocode.net/robocode.todo.txt
0073デフォルトの名無しさん
NGNG「闘え、Robocode !ラウンド2」がアップされてた。
アドバンスドロボットやらチームプレイやらについて書かれてる。
APIドキュメントよりは分かりやすく解説されているんじゃないかな。
もっとも日本語版はまだらしいけど。
0074デフォルトの名無しさん
NGNG自分で開始させちゃえばバトルマネージャには止めようがないし
別に必須ではない付加的情報を計算させとけば良い(位置予測の精度を
上げるとか)と思うがどうよ。
0075デフォルトの名無しさん
NGNGしてうっとうしいんだけど何でだと思う?
0076デフォルトの名無しさん
NGNG別に計算サーバプログラム立ててSocketでw。
007759
NGNG後退する距離の値として900を使っていたが大きすぎる。
だからまず間違いなく別の壁にぶつかってしまうので
その時どういう現象が起こったかレポートがほしかったんだが。
0078デフォルトの名無しさん
NGNG強くねえ?
0079デフォルトの名無しさん
NGNGサンプルロボットの中ではWallsとSpinBotが強いね。
http://www.ecs.soton.ac.uk/~awo101/robocode.html
SnippetBotは敵が線形移動すると仮定して大砲を動かして
弾丸を発射するので相性的にWallsキラー。
0080デフォルトの名無しさん
NGNGタスクバー透明化してたりしない?
Javaは昔から透過ウィンドウと相性が悪い。
# 1.4で多少改善されたけど「多少」だし
0081デフォルトの名無しさん
NGNG俺のPCの場合チョイパワー不足なんで
フルスクリーンのほうがいいかなと・・・
0082デフォルトの名無しさん
NGNGフルスクリーン対応予定は>>72に書いてあるTODOリストには無かったと思うけど。
ところでRobocodeの最新バージョンは1.0.1になったみたいだけど
どこがかわったのかな。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGhttp://robocode.alphaworks.ibm.com/home/versions.txt
0087顔も名前も出さずに毎月100万円
NGNGなんと10,000円単位の収入
●10,000円単位の高収入
1件につき最大10、000円の高額収入。月収100万円以上も可能。
●画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
●誰でも出来ます!
インターネットが出来る環境の方なら誰でも参加可能です。
●専門的な知識は一切不要!
ビジネスに必要なツールはすべて当社で用意いたします。また、サポ
ートも万全です。
●詳細は今すぐHPをご覧ください。
http://www.future-web.tv/7823/
0088デフォルトの名無しさん
NGNG008975
NGNG透明化ではなかったけど tclock で時計の表示とかいじってたのが原因だった
みたいです。tclock 終了させたら点滅しなくなりました。
# よく考えたらスレ違いっぽいですね。すみません。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGC言語暦2,3、ヶ月ですけど、いまからJavaの勉強をはじめたとして、
いつぐらいからここに参加できますかね?
0092デフォルトの名無しさん
NGNGもう参加しとるやないかい。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG俺6時間。C++の勉強してたからだろうけど。
0095デフォルトの名無しさん
NGNGウェブにのっけたいと思うんだけどジオシティーズを利用すればいいのかな?
知的所有権は尊重したいからIBMがオフィシャルな日本語訳を作ってくれるのが
一番ありがたいんだけど。
0096デフォルトの名無しさん
NGNGスゴク(・∀・)イイ!
pop-up広告のないところだとうれしい。
ジオシティーズで悪くないと思います。
0097デフォルトの名無しさん
NGNGマンセーー!!
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG神降臨マンセ〜
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています