[rc-simjp 56] Re: TsubameGaeshiソース

アーカイブの一覧に戻る

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に投げてくれると嬉しいです。



Rc-oz-simjp メーリングリストの案内
アーカイブの一覧に戻る