soccertypes_8c-source.html

来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 627 行 · 第 1/5 页

HTML
627
字号
00771 {00772   <font class="keywordflow">if</font>( <a class="code" href="classSoccerCommand.html#o0">SS</a>-&gt;<a class="code" href="classServerSettings.html#a100">getMinMoment</a>( ) &lt;= <a class="code" href="classSoccerCommand.html#m2">dAngle</a> &amp;&amp; <a class="code" href="classSoccerCommand.html#m2">dAngle</a> &lt;= <a class="code" href="classSoccerCommand.html#o0">SS</a>-&gt;<a class="code" href="classServerSettings.html#a98">getMaxMoment</a>( ) )00773     sprintf( <a class="code" href="classSoccerCommand.html#m8">str</a>,<font class="stringliteral">"(turn %d)"</font>, (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m2">dAngle</a> );00774   <font class="keywordflow">else</font>00775   {00776     printf( <font class="stringliteral">"(SoccerCommand::makeTurnCommand) argument %d incorrect (%d, %d)\n"</font>,00777       (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m2">dAngle</a>, <a class="code" href="classSoccerCommand.html#o0">SS</a>-&gt;<a class="code" href="classServerSettings.html#a100">getMinMoment</a>( ), <a class="code" href="classSoccerCommand.html#o0">SS</a>-&gt;<a class="code" href="classServerSettings.html#a98">getMaxMoment</a>( ) );00778     <a class="code" href="classSoccerCommand.html#m2">dAngle</a> = 0.0;00779     sprintf( <a class="code" href="classSoccerCommand.html#m8">str</a>, <font class="stringliteral">"(turn 0)"</font> );00780     <font class="keywordflow">return</font> <font class="keyword">false</font>;00781   }00782   <font class="keywordflow">return</font> <font class="keyword">true</font>;00783 }00784 <a name="l00791"></a><a class="code" href="classSoccerCommand.html#c8">00791</a> <font class="keywordtype">bool</font> <a class="code" href="classSoccerCommand.html#c8">SoccerCommand::makeTurnNeckCommand</a>( <font class="keywordtype">char</font> *str  )00792 {00793   <font class="keywordflow">if</font>( <a class="code" href="classSoccerCommand.html#o0">SS</a>-&gt;<a class="code" href="classServerSettings.html#a104">getMinNeckMoment</a>( ) &lt;= (int)<a class="code" href="classSoccerCommand.html#m2">dAngle</a> &amp;&amp;00794       (int)<a class="code" href="classSoccerCommand.html#m2">dAngle</a>             &lt;= <a class="code" href="classSoccerCommand.html#o0">SS</a>-&gt;<a class="code" href="classServerSettings.html#a102">getMaxNeckMoment</a>( ) )00795     sprintf( <a class="code" href="classSoccerCommand.html#m8">str</a>,<font class="stringliteral">"(turn_neck %d)"</font>, (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m2">dAngle</a> );00796   <font class="keywordflow">else</font>00797   {00798     printf( <font class="stringliteral">"(SoccerCommand::makeTurnNeckCommand) argument %d is wrong\n"</font>,00799                                                      (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m2">dAngle</a> );00800     <a class="code" href="classSoccerCommand.html#m2">dAngle</a> = 0.0;00801     sprintf( <a class="code" href="classSoccerCommand.html#m8">str</a>, <font class="stringliteral">"(turn_neck 0)"</font> );00802     <font class="keywordflow">return</font> <font class="keyword">false</font>;00803   }00804   <font class="keywordflow">return</font> <font class="keyword">true</font>;00805 }00806 <a name="l00816"></a><a class="code" href="classSoccerCommand.html#c9">00816</a> <font class="keywordtype">bool</font> <a class="code" href="classSoccerCommand.html#c9">SoccerCommand::makeChangePlayerCommand</a>( <font class="keywordtype">char</font> *str  )00817 {00818   <font class="keywordflow">if</font>( (int)<a class="code" href="classSoccerCommand.html#m6">dX</a> &gt; 0  &amp;&amp; (int)<a class="code" href="classSoccerCommand.html#m6">dX</a> &lt;= <a class="code" href="SoccerTypes_8h.html#a0">MAX_TEAMMATES</a> &amp;&amp;00819       (int)<a class="code" href="classSoccerCommand.html#m7">dY</a> &gt;= 0 &amp;&amp; (int)<a class="code" href="classSoccerCommand.html#m7">dY</a> &lt; <a class="code" href="SoccerTypes_8h.html#a4">MAX_HETERO_PLAYERS</a>  )00820     sprintf( <a class="code" href="classSoccerCommand.html#m8">str</a>,<font class="stringliteral">"(change_player_type %d %d)"</font>, (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m6">dX</a>, (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m7">dY</a> );00821   <font class="keywordflow">else</font>00822   {00823     printf( <font class="stringliteral">"(SoccerCommand::makeChangePlayerCommand) argument %d or %d is wrong\n"</font>,00824                                                (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m6">dX</a>, (<font class="keywordtype">int</font>)<a class="code" href="classSoccerCommand.html#m7">dY</a>  );00825     <font class="keywordflow">return</font> <font class="keyword">false</font>;00826   }00827   <font class="keywordflow">return</font> <font class="keyword">true</font>;00828 }00829 00830 <font class="comment">/******************************************************************************/</font>00831 <font class="comment">/********************** CLASS SOCCERTYPES *************************************/</font>00832 <font class="comment">/******************************************************************************/</font>00833 <a name="l00838"></a><a class="code" href="SoccerTypes_8C.html#a0">00838</a> <font class="keyword">const</font> <font class="keywordtype">char</font> * <a class="code" href="SoccerTypes_8C.html#a0">ObjectNames</a>[] =00839 {00840 <font class="stringliteral">"(b)"</font>, <font class="stringliteral">"(g l)"</font>, <font class="stringliteral">"(g r)"</font>, <font class="stringliteral">"(g ?)"</font>, <font class="stringliteral">"(l l)"</font>, <font class="stringliteral">"(l r)"</font>, <font class="stringliteral">"(l b)"</font>, <font class="stringliteral">"(l t)"</font>, <font class="stringliteral">"(f l t)"</font>,    00841 <font class="stringliteral">"(f t l 50)"</font>, <font class="stringliteral">"(f t l 40)"</font>, <font class="stringliteral">"(f t l 30)"</font>, <font class="stringliteral">"(f t l 20)"</font>, <font class="stringliteral">"(f t l 10)"</font>, <font class="stringliteral">"(f t 0)"</font>,00842 <font class="stringliteral">"(f c t)"</font>,    <font class="stringliteral">"(f t r 10)"</font>, <font class="stringliteral">"(f t r 20)"</font>, <font class="stringliteral">"(f t r 30)"</font>, <font class="stringliteral">"(f t r 40)"</font>,00843 <font class="stringliteral">"(f t r 50)"</font>, <font class="stringliteral">"(f r t)"</font>   , <font class="stringliteral">"(f r t 30)"</font>, <font class="stringliteral">"(f r t 20)"</font>, <font class="stringliteral">"(f r t 10)"</font>,00844 <font class="stringliteral">"(f g r t)"</font> , <font class="stringliteral">"(f r 0)"</font>   , <font class="stringliteral">"(f g r b)"</font> , <font class="stringliteral">"(f r b 10)"</font>, <font class="stringliteral">"(f r b 20)"</font>,00845 <font class="stringliteral">"(f r b 30)"</font>, <font class="stringliteral">"(f r b)"</font>   , <font class="stringliteral">"(f b r 50)"</font>, <font class="stringliteral">"(f b r 40)"</font>, <font class="stringliteral">"(f b r 30)"</font>,00846 <font class="stringliteral">"(f b r 20)"</font>, <font class="stringliteral">"(f b r 10)"</font>, <font class="stringliteral">"(f c b)"</font>   , <font class="stringliteral">"(f b 0)"</font>   , <font class="stringliteral">"(f b l 10)"</font>,00847 <font class="stringliteral">"(f b l 20)"</font>, <font class="stringliteral">"(f b l 30)"</font>, <font class="stringliteral">"(f b l 40)"</font>, <font class="stringliteral">"(f b l 50)"</font>, <font class="stringliteral">"(f l b)"</font>,00848 <font class="stringliteral">"(f l b 30)"</font>, <font class="stringliteral">"(f l b 20)"</font>, <font class="stringliteral">"(f l b 10)"</font>, <font class="stringliteral">"(f g l b)"</font> , <font class="stringliteral">"(f l 0)"</font>,00849 <font class="stringliteral">"(f g l t)"</font> , <font class="stringliteral">"(f l t 10)"</font>, <font class="stringliteral">"(f l t 20)"</font>, <font class="stringliteral">"(f l t 30)"</font>, <font class="stringliteral">"(f p l t)"</font>,00850 <font class="stringliteral">"(f p l c)"</font>, <font class="stringliteral">"(f p l b)"</font>,   <font class="stringliteral">"(f p r t)"</font>,  <font class="stringliteral">"(f p r c)"</font>,  <font class="stringliteral">"(f p r b)"</font>, <font class="stringliteral">"(f c)"</font> } ;00851 <a name="l00859"></a><a class="code" href="classSoccerTypes.html#d0">00859</a> <font class="keywordtype">char</font>* <a class="code" href="classSoccerTypes.html#d0">SoccerTypes::getObjectStr</a>( <font class="keywordtype">char</font>* strBuf, <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o, <font class="keyword">const</font> <font class="keywordtype">char</font> *strTeamName )00860 {00861   <font class="keywordflow">if</font>( o &gt;= <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a> &amp;&amp; o &lt;=   <a class="code" href="SoccerTypes_8h.html#a240a84">OBJECT_FLAG_C</a> )00862     sprintf( strBuf, <a class="code" href="SoccerTypes_8C.html#a0">ObjectNames</a>[(<font class="keywordtype">int</font>)o] );00863   <font class="keywordflow">else</font> <font class="keywordflow">if</font>( <a class="code" href="classSoccerTypes.html#d13">isKnownPlayer</a>( o ) )00864     sprintf( strBuf, <font class="stringliteral">"(p %s %d)"</font>, strTeamName, <a class="code" href="classSoccerTypes.html#d14">getIndex</a>( o ) + 1);00865   <font class="keywordflow">else</font> <font class="keywordflow">if</font>( o == <a class="code" href="SoccerTypes_8h.html#a240a108">OBJECT_OPPONENT_UNKNOWN</a> || o == <a class="code" href="SoccerTypes_8h.html#a240a96">OBJECT_TEAMMATE_UNKNOWN</a> )00866     sprintf( strBuf, <font class="stringliteral">"(p %s)"</font>, strTeamName );00867   <font class="keywordflow">else</font> <font class="keywordflow">if</font>( o == <a class="code" href="SoccerTypes_8h.html#a240a109">OBJECT_PLAYER_UNKNOWN</a> )00868     sprintf( strBuf, <font class="stringliteral">"(p)"</font> );00869   <font class="keywordflow">else</font> <font class="keywordflow">if</font>( o == <a class="code" href="SoccerTypes_8h.html#a240a110">OBJECT_UNKNOWN</a> )00870     sprintf( strBuf, <font class="stringliteral">"(unknown)"</font> );00871   <font class="keywordflow">else</font>00872     sprintf( strBuf, <font class="stringliteral">"illegal: %d"</font>, (<font class="keywordtype">int</font>)o );00873   <font class="keywordflow">return</font> strBuf;00874 }00875 <a name="l00885"></a><a class="code" href="classSoccerTypes.html#d1">00885</a> <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> <a class="code" href="classSoccerTypes.html#d1">SoccerTypes::getObjectFromStr</a>( <font class="keywordtype">char</font>** str, <font class="keywordtype">bool</font> *isGoalie,00886                                        <font class="keyword">const</font> <font class="keywordtype">char</font>* strMyTeamName )00887 {00888   <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o = <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>;00889   <font class="keywordtype">char</font>* ptrStr = *str;00890   *<a class="code" href="classSoccerTypes.html#d11">isGoalie</a> = <font class="keyword">false</font>;00891 00892   <font class="keywordflow">switch</font>( ptrStr[1] )00893   {00894     <font class="keywordflow">case</font> <font class="charliteral">'b'</font>:                       <font class="comment">// (ball)</font>00895     <font class="keywordflow">case</font> <font class="charliteral">'B'</font>:                       <font class="comment">// (B) in case of ball very close</font>00896        o = <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a>; <font class="keywordflow">break</font>;00897     <font class="keywordflow">case</font> <font class="charliteral">'G'</font>:00898        o = <a class="code" href="SoccerTypes_8h.html#a240a27">OBJECT_GOAL_UNKNOWN</a>;      <font class="comment">// (G) in case of goal very close, ignored</font>00899       <font class="keywordflow">break</font>;                        <font class="comment">// (g l) or (g r) goal left or goal right</font>00900     <font class="keywordflow">case</font> <font class="charliteral">'g'</font>: o = (ptrStr[3] == <font class="charliteral">'l'</font>) ? <a class="code" href="SoccerTypes_8h.html#a240a25">OBJECT_GOAL_L</a> : <a class="code" href="SoccerTypes_8h.html#a240a26">OBJECT_GOAL_R</a>; <font class="keywordflow">break</font>;00901     <font class="keywordflow">case</font> <font class="charliteral">'l'</font>:                       <font class="comment">// (l l), (l r), (l b) or (l t)</font>00902       <font class="keywordflow">switch</font>( ptrStr[3] )00903       {00904         <font class="keywordflow">case</font> <font class="charliteral">'l'</font>: o = <a class="code" href="SoccerTypes_8h.html#a240a28">OBJECT_LINE_L</a>;  <font class="keywordflow">break</font>;00905         <font class="keywordflow">case</font> <font class="charliteral">'r'</font>: o = <a class="code" href="SoccerTypes_8h.html#a240a29">OBJECT_LINE_R</a>;  <font class="keywordflow">break</font>;00906         <font class="keywordflow">case</font> <font class="charliteral">'b'</font>: o = <a class="code" href="SoccerTypes_8h.html#a240a30">OBJECT_LINE_B</a>;  <font class="keywordflow">break</font>;00907         <font class="keywordflow">case</font> <font class="charliteral">'t'</font>: o = <a class="code" href="SoccerTypes_8h.html#a240a31">OBJECT_LINE_T</a>;  <font class="keywordflow">break</font>;00908         <font class="keywordflow">default</font>:  o = <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>; <font class="keywordflow">break</font>;00909       }00910       <font class="keywordflow">break</font>;00911     <font class="keywordflow">case</font> <font class="charliteral">'F'</font>:                       <font class="comment">// (F) unkown flag very close.. ignored</font>00912       o = <a class="code" href="SoccerTypes_8h.html#a240a110">OBJECT_UNKNOWN</a>; <font class="keywordflow">break</font>;00913     <font class="keywordflow">case</font> <font class="charliteral">'f'</font>:                       <font class="comment">// (f ...),  many options...</font>00914       <font class="keywordflow">switch</font>( ptrStr[3] )00915       {00916         <font class="keywordflow">case</font> <font class="charliteral">'l'</font>:                   <font class="comment">// (f l ... lines on left part of field</font>00917           <font class="keywordflow">if</font>( ptrStr[6] == <font class="charliteral">')'</font> )    <font class="comment">// only one character at index '5'</font>00918           {00919             <font class="keywordflow">switch</font>( ptrStr[5] )00920             {00921               <font class="keywordflow">case</font> <font class="charliteral">'0'</font>: o = <a class="code" href="SoccerTypes_8h.html#a240a73">OBJECT_FLAG_L_0</a>; <font class="keywordflow">break</font>; <font class="comment">// (f l 0)</font>00922               <font class="keywordflow">case</font> <font class="charliteral">'t'</font>: o = <a class="code" href="SoccerTypes_8h.html#a240a32">OBJECT_FLAG_L_T</a>; <font class="keywordflow">break</font>; <font class="comment">// (f l t)</font>00923               <font class="keywordflow">case</font> <font class="charliteral">'b'</font>: o = <a class="code" href="SoccerTypes_8h.html#a240a68">OBJECT_FLAG_L_B</a>; <font class="keywordflow">break</font>; <font class="comment">// (f l b)</font>00924               <font class="keywordflow">default</font>:  o = <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>;  <font class="keywordflow">break</font>;00925             }00926           }00927           <font class="keywordflow">else</font>                      <font class="comment">// more than one character from index '5'</font>00928 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?