kubo****@jinda*****
kubo****@jinda*****
2005年 1月 24日 (月) 13:59:40 JST
久保です。 At Wed, 19 Jan 2005 13:44:31 +0700, Masahiro TAKATANI wrote: > > #久保さんへ > ソース公開ありがとうございます. > さっそく参考にさせて頂きます. もし分らないことがあれば聞いて下さい。 > 1:メッセージの解析はどうしてますか? 僕は1試合分のメッセージをログに出力し、そのログから構文をチェックして agenttestのソースを参考にプログラムを書きました。 また構文のチェックにサーバのソースも少し読んだと思います。 メッセージの出力には当初 printf や puts を使っていましたが、標準装備の Log クラスを使うようにしました。 Log クラスを利用するには以下コードを agenttest.rb に追加します。 # CVS 版の agenttest.rb には既に追加されています。 −−−−−−−−−−−−−−−ここから−−−−−−−−−−−−−−− # set up logging logServer = get('/sys/server/log') logServer.addStream(':cerr', 'eAll') −−−−−−−−−−−−−−−ここまで−−−−−−−−−−−−−−− > 2:座標計算はどうしてますか? 3Dシミュレーション では 2D と違い。全方位のオブジェクトが見えています ので、座標の計算は簡単だったと思います。 僕の場合はコーナーフラグとの相対座標から、フラグ毎に自分の位置を計算し て、それの平均を使っています。 平均とっているのはノイズ対策のつもりですが、効果のほどは不明です。 rcssserver3d.rb 中の以下の部分を true に設定するとサーバからのメッセー ジに自分の位置が付加されるようになりますから、サーバが送ってくる座標と 計算で得た座標を比較することができます。 −−−−−−−−−−−−−−−ここから−−−−−−−−−−−−−−− # set to true for debugging. will be set to false during competition visionPerceptor.setSenseMyPos(false); −−−−−−−−−−−−−−−ここまで−−−−−−−−−−−−−−− サーバから送られてくる自分の位置は、チームが右側になると右側のものになっ たと思うので、比較の際には注意が必要です。 他にも、エージェントの方向とか細かいことが色々あったと思うのですが、忘 れてしまったので、気付いた人はMLに投げてくれると嬉しいです。