⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sensehandler_8c-source.html

📁 仿真人工智能是指用人工的方法和技术
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00143     <font class="keywordflow">if</font>( <a class="code" href="classSenseHandler.html#o5">iTriCounter</a> % 3 == 0 )              <font class="comment">// see will arrive</font>00144     {00145       <a class="code" href="classSenseHandler.html#o4">iTimeSignal</a> = (int)(<a class="code" href="classSenseHandler.html#o6">iSimStep</a> * <a class="code" href="classSenseHandler.html#o2">PS</a>-&gt;<a class="code" href="classPlayerSettings.html#a33">getFractionWaitSeeEnd</a>() );00146       <a class="code" href="classSenseHandler.html#o5">iTriCounter</a> = 0;00147     }00148     <font class="keywordflow">else</font>                                   <font class="comment">// no see will arrive</font>00149       <a class="code" href="classSenseHandler.html#o4">iTimeSignal</a> = (int)(<a class="code" href="classSenseHandler.html#o6">iSimStep</a> * <a class="code" href="classSenseHandler.html#o2">PS</a>-&gt;<a class="code" href="classPlayerSettings.html#a29">getFractionWaitNoSee</a>() );00150   }00151   <font class="keywordflow">else</font>                                     <font class="comment">// VA_NARROW AND VQ_HIGH</font>00152     <a class="code" href="classSenseHandler.html#o4">iTimeSignal</a> = (int)(<a class="code" href="classSenseHandler.html#o6">iSimStep</a> * <a class="code" href="classSenseHandler.html#o2">PS</a>-&gt;<a class="code" href="classPlayerSettings.html#a33">getFractionWaitSeeEnd</a>() );00153 00154   <a class="code" href="classSenseHandler.html#o5">iTriCounter</a>++;00155   <a class="code" href="classSenseHandler.html#o7">itv</a>.it_value.tv_usec = <a class="code" href="classSenseHandler.html#o4">iTimeSignal</a>;00156   setitimer( ITIMER_REAL, &amp;<a class="code" href="classSenseHandler.html#o7">itv</a>, NULL );00157 }00158 <a name="l00163"></a><a class="code" href="classSenseHandler.html#a3">00163</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a3">SenseHandler::analyzeMessage</a>( <font class="keywordtype">char</font> *strMsg )00164 {00165   <font class="keywordflow">switch</font>( strMsg[1] )00166   {00167     <font class="keywordflow">case</font> <font class="charliteral">'c'</font>:00168         <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#a10">analyzeChangePlayerTypeMessage</a>( strMsg );      <font class="comment">// ( c hange_</font>00169     <font class="keywordflow">case</font> <font class="charliteral">'o'</font>:                                                 <font class="comment">// ( o k</font>00170         <font class="keywordflow">if</font>( strlen(strMsg) &gt; 14 &amp;&amp; strMsg[4] == <font class="charliteral">'c'</font> &amp;&amp; strMsg[10] == <font class="charliteral">'b'</font> )00171           <a class="code" href="classSenseHandler.html#a12">analyzeCheckBall</a>( strMsg );                         <font class="comment">// (ok check_ball</font>00172         <font class="keywordflow">return</font> <font class="keyword">true</font>;00173     <font class="keywordflow">case</font> <font class="charliteral">'s'</font>:00174     {00175       <font class="keywordflow">switch</font>( strMsg[3] )00176       {00177         <font class="keywordflow">case</font> <font class="charliteral">'e'</font>:00178              <font class="keywordflow">if</font>( strMsg[5] == <font class="charliteral">'g'</font> )00179                   <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#a4">analyzeSeeGlobalMessage</a>  ( strMsg ); <font class="comment">// (se e_g</font>00180              <font class="keywordflow">else</font>00181                   <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#a5">analyzeSeeMessage</a>        ( strMsg ); <font class="comment">// (se e</font>00182         <font class="keywordflow">case</font> <font class="charliteral">'n'</font>: <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#a6">analyzeSenseMessage</a>      ( strMsg ); <font class="comment">// (se n se</font>00183         <font class="keywordflow">case</font> <font class="charliteral">'r'</font>: <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#a11">analyzeServerParamMessage</a>( strMsg ); <font class="comment">// (se r ver_param</font>00184         <font class="keywordflow">default</font> : <font class="keywordflow">break</font>;00185       }00186     }00187     <font class="keywordflow">case</font> <font class="charliteral">'i'</font>:     <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#a7">analyzeInitMessage</a>       ( strMsg ); <font class="comment">// ( i nit</font>00188     <font class="keywordflow">case</font> <font class="charliteral">'h'</font>:     <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#a8">analyzeHearMessage</a>       ( strMsg ); <font class="comment">// ( h ear</font>00189     <font class="keywordflow">case</font> <font class="charliteral">'p'</font>:     <font class="keywordflow">return</font> ( strMsg[8] == <font class="charliteral">'t'</font>)00190                   ? <a class="code" href="classSenseHandler.html#a13">analyzePlayerTypeMessage</a> ( strMsg )  <font class="comment">// (player_ t ype</font>00191                   : <a class="code" href="classSenseHandler.html#a14">analyzePlayerParamMessage</a>( strMsg ); <font class="comment">// (player_ p aram</font>00192     <font class="keywordflow">case</font> <font class="charliteral">'e'</font>:     printf(<font class="stringliteral">"%s"</font>, strMsg);                  <font class="comment">// ( error</font>00193     <font class="keywordflow">default</font>:      cerr &lt;&lt; <font class="stringliteral">"(SenseHandler::analyzeMessage) "</font> &lt;&lt;00194                      <font class="stringliteral">"ignored message: "</font> &lt;&lt; strMsg &lt;&lt; endl;00195                   <font class="keywordflow">return</font> <font class="keyword">false</font>;00196   }00197   <font class="keywordflow">return</font> <font class="keyword">false</font>;00198 }00199 00200 <a name="l00206"></a><a class="code" href="classSenseHandler.html#a5">00206</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a5">SenseHandler::analyzeSeeMessage</a>( <font class="keywordtype">char</font> *strMsg )00207 {00208   strcpy( <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#m3">strLastSeeMessage</a>, strMsg );00209   Log.logWithTime( 2, <font class="stringliteral">" incoming see message"</font> );00210 00211   <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o;00212   <font class="keywordtype">double</font>  dDist, dDistChange,    dDirChange,     dTemp;00213   <font class="keywordtype">int</font>     iDir,  iBodyFacingDir, iHeadFacingDir, iTime = <a class="code" href="SoccerTypes_8h.html#a22">UnknownTime</a>;00214   <a class="code" href="classTime.html">Time</a>    time = <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a12">getTimeLastSenseMessage</a>();00215   <font class="keywordtype">bool</font>    isGoalie;00216 00217   iTime = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );         <font class="comment">// get the time</font>00218   <font class="keywordflow">if</font>( time.<a class="code" href="classTime.html#a3">getTime</a>() != iTime )00219   {00220     cerr &lt;&lt; <font class="stringliteral">"(SenseHandler:analyzeSeeMessage) see with different time as sense:"</font>00221          &lt;&lt; time.<a class="code" href="classTime.html#a3">getTime</a>() &lt;&lt; <font class="stringliteral">" vs. "</font> &lt;&lt; iTime &lt;&lt; endl;00222     <font class="keywordflow">return</font> <font class="keyword">false</font>;00223   }00224 00225   <font class="comment">// reset the send pattern when previous cycle(s) no see arrived</font>00226   <font class="keywordflow">if</font>( <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a46">getAgentViewFrequency</a>() == 1.0 &amp;&amp; <font class="comment">// VA_NORMAL; previous cycle no see</font>00227       time.<a class="code" href="classTime.html#a5">getTimeDifference</a>( <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a10">getTimeLastSeeMessage</a>() )== 2 )00228     <a class="code" href="classSenseHandler.html#o5">iTriCounter</a> = 1;                <font class="comment">// see will arive in 2nd half in next cycle</font>00229   <font class="keywordflow">else</font> <font class="keywordflow">if</font>( <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a46">getAgentViewFrequency</a>() == 2.0 &amp;&amp; <font class="comment">// VA_WIDE; two cycles no see</font>00230            time.<a class="code" href="classTime.html#a5">getTimeDifference</a>( <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a10">getTimeLastSeeMessage</a>() ) == 3 )00231     <a class="code" href="classSenseHandler.html#o5">iTriCounter</a> = 1;                <font class="comment">// no see will arrive next two cycles</font>00232 00233   <font class="keywordflow">while</font>( *strMsg != <font class="charliteral">')'</font> )                          <font class="comment">// " ((objname.." or ")"</font>00234   {00235     dDist = dDistChange    = dDirChange     = dTemp = <a class="code" href="SoccerTypes_8h.html#a19">UnknownDoubleValue</a>;00236     iDir  = iBodyFacingDir = iHeadFacingDir =         <a class="code" href="SoccerTypes_8h.html#a21">UnknownIntValue</a>;00237     strMsg += 2;          <font class="comment">// get the object name</font>00238 00239     <font class="comment">// get the object name from the first part of the string</font>00240     o = <a class="code" href="classSoccerTypes.html#d1">SoccerTypes::getObjectFromStr</a>( &amp;strMsg, &amp;isGoalie, <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a18">getTeamName</a>() );00241     <font class="keywordflow">if</font>( o == <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a> )00242     {00243       Log.log( 4, <font class="stringliteral">"Illegal object in: "</font>, <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#m3">strLastSeeMessage</a> );00244       Log.log( 4, <font class="stringliteral">"rest of message: "</font>, strMsg );00245     }00246 00247     dTemp = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg );   <font class="comment">// parse first value</font>00248     <font class="keywordflow">if</font> ( *strMsg == <font class="charliteral">')'</font> )                         <font class="comment">// if it was the only value</font>00249       iDir = (int)dTemp;                          <font class="comment">// it was the direction</font>00250     <font class="keywordflow">else</font>00251     {00252       dDist = dTemp;                              <font class="comment">// else it was distance</font>00253       iDir = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );     <font class="comment">// and have to get direction</font>00254       <font class="keywordflow">if</font>( *strMsg != <font class="charliteral">')'</font> )                        <font class="comment">// stil not finished</font>00255       {                                           <font class="comment">// get dist and dir change</font>00256         dDistChange = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg );00257         dDirChange  = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg );00258       }00259       <font class="keywordflow">if</font>( *strMsg != <font class="charliteral">')'</font> )                        <font class="comment">// and stil not finished</font>00260       {                                           <font class="comment">// get also facing dir.</font>00261         iBodyFacingDir = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );00262         iHeadFacingDir = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );00263       }00264     }00265     <font class="comment">// skip ending bracket of object information.</font>00266     strMsg++;00267 00268     <font class="comment">// process the parsed information (unread values are Unknown...)</font>

⌨️ 快捷键说明

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