クラス SamplePlayer0

java.lang.Object
  上位を拡張 SamplePlayer0
すべての実装されたインタフェース:
java.lang.Runnable
直系の既知のサブクラス:
SamplePlayer1

public class SamplePlayer0
extends java.lang.Object
implements java.lang.Runnable

NUIS ローカルロボカップ サンプルプログラム created by Toyohisa Nakada (2008.11.15)


入れ子のクラスの概要
(package private) static class SamplePlayer0.Obj
          オブジェクト(旗、ライン、ボール、相手、味方、ゴールなどの視覚的に見える物)の情報を取り扱うクラス
 
フィールドの概要
protected  int m_number
          背番号(1~11)
protected  java.lang.String m_opposing_team_name
          相手のチーム名
protected  java.lang.String m_our_team_name
          味方のチーム名
protected  java.lang.String m_play_mode
          現在のゲーム状態
private  java.lang.String m_server_ip
          サッカーサーバのホスト名
private  int m_server_port
          サッカーサーバの初期接続のポート番号
private  java.lang.String m_server_version
          サッカーサーバのバージョンを指定する。
protected  java.lang.String m_side
          自軍のサイド
private  java.net.DatagramSocket m_socket
          UDBソケット
 
コンストラクタの概要
SamplePlayer0()
           
 
メソッドの概要
protected  boolean checkInitialMode()
          ゲームが停止しているかどうかを確認する。
protected  boolean checkPlayingMode()
          ゲーム中であるかどうかを確認する。
private static double d2r(double degree)
          角度をディグリーからラジアンへの変換する。
protected  void dbg_print(java.lang.String msg)
          デバックプリント
protected  double getDirection(SExp exp)
          自分の向きを取得する。
protected  java.awt.geom.Point2D.Double getKickOffPosition(int number)
          背番号からキックオフ時のプレイヤの位置を取得する。
protected static SamplePlayer0.Obj getObject(SExp exp, java.lang.Object name)
          オブジェクト情報を取得する。
protected static SamplePlayer0.Obj getObject(SExp exp, java.lang.Object name, java.awt.geom.Point2D.Double my_position, double my_direction)
          オブジェクト情報を絶対位置を含めて取得する。
protected static java.util.Vector<SamplePlayer0.Obj> getObjects(SExp exp, java.lang.Object name)
          複数のオブジェクト情報を取得する。
protected static java.util.Vector<SamplePlayer0.Obj> getObjects(SExp exp, java.lang.Object name, java.awt.geom.Point2D.Double my_position, double my_direction)
          複数のオブジェクト情報を絶対位置を含めて取得する。
private  java.lang.String getOpposingTeamName(SExp exp)
          相手のプレイヤから相手のチーム名を取得する。
protected  java.awt.geom.Point2D.Double getPosition(SExp exp, double my_direction)
          自分の位置を取得する。
 void initialize(int number)
          プレイヤの初期化(サーバーへの登録)を行う。
protected  boolean isNearest(SExp exp, SamplePlayer0.Obj ball, java.util.Vector<SamplePlayer0.Obj> our_players)
          ボールに一番近いかをチェックする。
protected  java.lang.String kick(SExp exp, SamplePlayer0.Obj opposing_goal, double my_direction)
          ゴールに向かってキックする
static void main(java.lang.String[] args)
          メイン関数
private static double normalize_degree(double degree)
          ディグリー角度の正規化(-180
protected  void onHearMessage(SExp exp)
          聴覚情報に対応する処理を行う
protected  void onInitMessage(SExp exp)
          初期メッセージに対応する処理を行う
protected  void onSeeMessage(SExp exp)
          視覚情報に対応する処理を行う
protected  java.lang.String receive()
          サッカーサーバからメッセージを受信する。
 void run()
          スレッド処理
protected  void send(java.lang.String command)
          サッカーサーバへコマンドを送信する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

m_server_ip

private java.lang.String m_server_ip
サッカーサーバのホスト名


m_server_port

private int m_server_port
サッカーサーバの初期接続のポート番号


m_server_version

private java.lang.String m_server_version
サッカーサーバのバージョンを指定する。空文字にするとサーバのデフォルトのバージョンで接続する


m_socket

private java.net.DatagramSocket m_socket
UDBソケット


m_our_team_name

protected java.lang.String m_our_team_name
味方のチーム名


m_opposing_team_name

protected java.lang.String m_opposing_team_name
相手のチーム名


m_number

protected int m_number
背番号(1~11)


m_side

protected java.lang.String m_side
自軍のサイド


m_play_mode

protected java.lang.String m_play_mode
現在のゲーム状態

コンストラクタの詳細

SamplePlayer0

public SamplePlayer0()
メソッドの詳細

onSeeMessage

protected void onSeeMessage(SExp exp)
                     throws java.lang.Exception
視覚情報に対応する処理を行う

例外:
java.lang.Exception

onHearMessage

protected void onHearMessage(SExp exp)
                      throws java.lang.Exception
聴覚情報に対応する処理を行う

例外:
java.lang.Exception

onInitMessage

protected void onInitMessage(SExp exp)
                      throws java.lang.Exception
初期メッセージに対応する処理を行う

例外:
java.lang.Exception

getPosition

protected java.awt.geom.Point2D.Double getPosition(SExp exp,
                                                   double my_direction)
                                            throws java.lang.Exception
自分の位置を取得する。位置は絶対座標として得られる。

例外:
java.lang.Exception

getDirection

protected double getDirection(SExp exp)
                       throws java.lang.Exception
自分の向きを取得する。角度は、右(g r)のゴールの向きを0度として、右回転をプラス回転とする。

例外:
java.lang.Exception

isNearest

protected boolean isNearest(SExp exp,
                            SamplePlayer0.Obj ball,
                            java.util.Vector<SamplePlayer0.Obj> our_players)
                     throws java.lang.Exception
ボールに一番近いかをチェックする。

例外:
java.lang.Exception

d2r

private static double d2r(double degree)
角度をディグリーからラジアンへの変換する。


normalize_degree

private static double normalize_degree(double degree)
ディグリー角度の正規化(-180

kick

protected java.lang.String kick(SExp exp,
                                SamplePlayer0.Obj opposing_goal,
                                double my_direction)
                         throws java.lang.Exception
ゴールに向かってキックする

例外:
java.lang.Exception

getObjects

protected static java.util.Vector<SamplePlayer0.Obj> getObjects(SExp exp,
                                                                java.lang.Object name,
                                                                java.awt.geom.Point2D.Double my_position,
                                                                double my_direction)
                                                         throws java.lang.Exception
複数のオブジェクト情報を絶対位置を含めて取得する。

例外:
java.lang.Exception

getObjects

protected static java.util.Vector<SamplePlayer0.Obj> getObjects(SExp exp,
                                                                java.lang.Object name)
                                                         throws java.lang.Exception
複数のオブジェクト情報を取得する。

例外:
java.lang.Exception

getObject

protected static SamplePlayer0.Obj getObject(SExp exp,
                                             java.lang.Object name,
                                             java.awt.geom.Point2D.Double my_position,
                                             double my_direction)
                                      throws java.lang.Exception
オブジェクト情報を絶対位置を含めて取得する。

例外:
java.lang.Exception

getObject

protected static SamplePlayer0.Obj getObject(SExp exp,
                                             java.lang.Object name)
                                      throws java.lang.Exception
オブジェクト情報を取得する。

例外:
java.lang.Exception

getOpposingTeamName

private java.lang.String getOpposingTeamName(SExp exp)
                                      throws java.lang.Exception
相手のプレイヤから相手のチーム名を取得する。

例外:
java.lang.Exception

checkPlayingMode

protected boolean checkPlayingMode()
ゲーム中であるかどうかを確認する。


checkInitialMode

protected boolean checkInitialMode()
ゲームが停止しているかどうかを確認する。


dbg_print

protected void dbg_print(java.lang.String msg)
デバックプリント


getKickOffPosition

protected java.awt.geom.Point2D.Double getKickOffPosition(int number)
背番号からキックオフ時のプレイヤの位置を取得する。


initialize

public void initialize(int number)
                throws java.lang.Exception
プレイヤの初期化(サーバーへの登録)を行う。

例外:
java.lang.Exception

send

protected void send(java.lang.String command)
             throws java.lang.Exception
サッカーサーバへコマンドを送信する。

例外:
java.lang.Exception

receive

protected java.lang.String receive()
                            throws java.lang.Exception
サッカーサーバからメッセージを受信する。

例外:
java.lang.Exception

run

public void run()
スレッド処理

定義:
インタフェース java.lang.Runnable 内の run

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
メイン関数

例外:
java.lang.Exception