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>-><a class="code" href="classServerSettings.html#a100">getMinMoment</a>( ) <= <a class="code" href="classSoccerCommand.html#m2">dAngle</a> && <a class="code" href="classSoccerCommand.html#m2">dAngle</a> <= <a class="code" href="classSoccerCommand.html#o0">SS</a>-><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>-><a class="code" href="classServerSettings.html#a100">getMinMoment</a>( ), <a class="code" href="classSoccerCommand.html#o0">SS</a>-><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>-><a class="code" href="classServerSettings.html#a104">getMinNeckMoment</a>( ) <= (int)<a class="code" href="classSoccerCommand.html#m2">dAngle</a> &&00794 (int)<a class="code" href="classSoccerCommand.html#m2">dAngle</a> <= <a class="code" href="classSoccerCommand.html#o0">SS</a>-><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> > 0 && (int)<a class="code" href="classSoccerCommand.html#m6">dX</a> <= <a class="code" href="SoccerTypes_8h.html#a0">MAX_TEAMMATES</a> &&00819 (int)<a class="code" href="classSoccerCommand.html#m7">dY</a> >= 0 && (int)<a class="code" href="classSoccerCommand.html#m7">dY</a> < <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 >= <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a> && o <= <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 + -
显示快捷键?