next up previous contents index
Next: References and Further Reading Up: 標準コーチ言語 Previous: 参考リソース   Contents   Index


構文

標準コーチ言語の完全な文法:
<MESSAGE> : <FREEFORM_MESS> | <DEFINE_MESS> | <RULE_MESS> | <DEL_MESS>

<RULE_MESS> : (rule <ACTIVATION_LIST>)

<DEL_MESS> : (delete <ID_LIST>)

<DEFINE_MESS> : (define <DEFINE_TOKEN_LIST>)

<FREEFORM_MESS> : (freeform <CLANG_STR>)

<DEFINE_TOKEN_LIST> : <DEFINE_TOKEN_LIST> <DEFINE_TOKEN>
                                        | <DEFINE_TOKEN>

<DEFINE_TOKEN> :  (definec <CLANG_STR> <CONDITION>)
                                | (defined <CLANG_STR> <DIRECTIVE>)
                                | (definer <CLANG_STR> <REGION>)
                                | (definea <CLANG_STR> <ACTION>)
                                | (definerule <DEFINE_RULE>)

<DEFINE_RULE> :   <CLANG_VAR> model <RULE>
                                | <CLANG_VAR> direc <RULE>

<RULE> : (<CONDITION> <DIRECTIVE_LIST>)
                | (<CONDITION> <RULE_LIST>)
                | <ID_LIST>


<ACTIVATION_LIST> : <ACTIVATION_LIST> <ACTIVATION_ELEMENT>
                                        | <ACTIVATION_ELEMENT>

<ACTIVATION_ELEMENT> : (on|off <ID_LIST>)


<ACTION> : (pos <REGION>)
                        | (home <REGION>)
                        | (mark <UNUM_SET>)
                        | (markl <UNUM_SET>)
                        | (markl <REGION>)
                        | (oline <REGION>)
                        | (htype <INTEGER>)
                        | <CLANG_STR>
                        | (pass <REGION>)
                        | (pass <UNUM_SET>)
                        | (dribble <REGION>)
                        | (clear <REGION>)
                        | (shoot)
                        | (hold)
                        | (intercept)
                        | (tackle <UNUM_SET>)

<CONDITION> : (true)
                        | (false)
                        | (ppos <TEAM> <UNUM_SET> <INTEGER> <INTEGER> <REGION>)
                        | (bpos <REGION>)
                        | (bowner <TEAM> <UNUM_SET>)
                        | (playm <PLAY_MODE>)
                        | (and <CONDITION_LIST>)
                        | (or <CONDITION_LIST>)
                        | (not <CONDITION>)
                        | <CLANG_STR>
                        | (<COND_COMP>)
                        | (unum <CLANG_VAR> <UNUM_SET>)
                        | (unum <CLANG_STR> <UNUM_SET>)

<COND_COMP> : <TIME_COMP>
                        | <OPP_GOAL_COMP>
                        | <OUR_GOAL_COMP>
                        | <GOAL_DIFF_COMP>

<TIME_COMP> : time <COMP> <INTEGER>
                        | <INTEGER> <COMP> time

<OPP_GOAL_COMP> : opp_goals <COMP> <INTEGER>
                        | <INTEGER> <COMP> opp_goals

<OUR_GOAL_COMP> : our_goals <COMP> <INTEGER>
                        | <INTEGER> <COMP> our_goals

<GOAL_DIFF_COMP> : goal_diff <COMP> <INTEGER>
                        | <INTEGER> <COMP> goal_diff

<COMP> : < | <= | == | != | >= | >

<PLAY_MODE> : bko | time_over | play_on | ko_our | ko_opp
              | ki_our | ki_opp | fk_our | fk_opp
              | ck_our | ck_opp | gk_opp | gk_our
                          | gc_our | gc_opp | ag_opp | ag_our


<DIRECTIVE> : (do|dont <TEAM> <UNUM_SET> <ACTION_LIST>)
                        | <CLANG_STR>

<REGION> : (null)
                        | (arc <POINT> <REAL> <REAL> <REAL> <REAL>)
                        | (reg <REGION_LIST>)
                        | <CLANG_STR>
                        | <POINT>
                        | (tri <POINT> <POINT> <POINT>)
                        | (rec <POINT> <POINT>)

<POINT> : (pt <REAL> <REAL>)
                | (pt ball)
                | (pt <TEAM> <INTEGER>)
                | (pt <TEAM> <CLANG_VAR>)
                | (pt <TEAM> <CLANG_STR>)
                | (<POINT_ARITH>)

<POINT_ARITH> : <POINT_ARITH> <OP> <POINT_ARITH>
                                | <POINT>

<OP> : + | - | * | /


<REGION_LIST> : <REGION_LIST> <REGION>
                        | <REGION>

<UNUM_SET> : { <UNUM_LIST> }

<UNUM_LIST> : <UNUM>
                        | <UNUM_LIST> <UNUM>

<UNUM> : <INTEGER> | <CLANG_VAR> | <CLANG_STR>

<ACTION_LIST> : <ACTION_LIST> <ACTION>
                                | <ACTION>

<DIRECTIVE_LIST> : <DIRECTIVE_LIST> <DIRECTIVE>
                                | <DIRECTIVE>

<CONDITION_LIST> : <CONDITION_LIST> <CONDITION>
                                | <CONDITION>

<RULE_LIST> : <RULE_LIST> <RULE>
                        | <RULE>

<ID_LIST> : <CLANG_VAR>
                        | (<ID_LIST2>)
                        | all

<ID_LIST2> : <ID_LIST2> <CLANG_VAR>
                        | <CLANG_VAR>

<CLANG_STR> : "[0-9A-Za-z\(\)\.\+\-\*\/\?\<\>\_ ]+"

<CLANG_VAR> : [abe-oqrt-zA-Z_]+[a-zA-Z0-9_]*

<TEAM> : our | opp

パラメータ名     説明
   
coach_port 6001 6001 トレーナの接続ポート
say_msg_size 512 256 トレーナまたはコーチが使用できる freeformメッセージの最大長
say_coach_cnt_max 128 128 オンラインコーチが使用できる freeformメッセージの最大回数
send_vi_step 100 100 コーチの視覚情報受信間隔
clang_win_size 100 100 コーチのメッセージの使用インターバル
clang_define_win 1 1 許可インターバル内でのdefineメッ セージの使用可能回数
clang_rule_win 1 1 許可インターバル内でのruleメッ セージの使用可能回数
clang_del_win 1 1 許可インターバル内でのdeleteメッ セージの使用可能回数
clang_mess_delay 50 50 コーチのメッセージの配信遅延サイクル
clang_mess_per_cycle 1 1 play_on以外のプレイモードでのサイ クル毎のメッセージ配信数



Table 7.1: トレーナとサーバの通信プロトコル



Table 7.2: オンラインコーチとサーバの通信プロトコル



Table 7.3: トレーナ/コーチとサーバとの通信プロトコル



next up previous contents index
Next: References and Further Reading Up: 標準コーチ言語 Previous: 参考リソース   Contents   Index
Hidehisa Akiyama 2004-11-21