sensehandler_8c-source.html

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

HTML
583
字号
00538   pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00539   pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00540   vel.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00541   vel.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00542   obj = <a class="code" href="classSoccerTypes.html#d15">SoccerTypes::getTeammateObjectFromIndex</a>( iPlayer - 1 );00543 00544   <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a91">processPerfectHearInfo</a>( obj, pos, 1.00 ); <font class="comment">// vel is not parsed.</font>00545 00546   <font class="comment">// parse the information from the ball, the confidence is subtracted with</font>00547   <font class="comment">// dDiff that denotes the confidence difference between the sent time and</font>00548   <font class="comment">// the heard time. When message is heard one cycle later than it is sent,</font>00549   <font class="comment">// confidence should be lower.</font>00550   <a class="code" href="classParse.html#d3">Parse::gotoFirstOccurenceOf</a>( <font class="charliteral">'('</font>, &amp;strMsg );00551   strMsg++;00552   <font class="keywordflow">if</font>( *strMsg != <font class="charliteral">')'</font> )                                  <font class="comment">// ball info available</font>00553   {00554     pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00555     pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00556     vel.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00557     vel.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00558     dConf = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg );00559     <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a92">processPerfectHearInfoBall</a>( pos, vel, dConf - dDiff );00560   }00561 00562   <a class="code" href="classParse.html#d3">Parse::gotoFirstOccurenceOf</a>( <font class="charliteral">')'</font>, &amp;strMsg );          <font class="comment">// go to teammate info</font>00563   strMsg++; <font class="comment">// skip ')'</font>00564   strMsg++; <font class="comment">// skip '('</font>00565   <font class="keywordflow">while</font>( *strMsg != <font class="charliteral">')'</font> )                               <font class="comment">// as long as new info</font>00566   {00567     iPlayer = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );          <font class="comment">// get the number</font>00568     <font class="keywordflow">if</font>( iPlayer == -1 )                                 <font class="comment">// if illegal</font>00569       obj = <a class="code" href="SoccerTypes_8h.html#a240a96">OBJECT_TEAMMATE_UNKNOWN</a>;                    <font class="comment">// we don't know nr</font>00570     <font class="keywordflow">else</font>00571       obj = <a class="code" href="classSoccerTypes.html#d15">SoccerTypes::getTeammateObjectFromIndex</a>( iPlayer - 1 );00572     pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00573     pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00574     dConf = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) ;00575     <a class="code" href="classParse.html#d4">Parse::gotoFirstNonSpace</a>( &amp;strMsg );00576     <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a91">processPerfectHearInfo</a>( obj, pos, dConf - dDiff ); <font class="comment">// process all info</font>00577   }00578 00579   <font class="keywordtype">bool</font> bIsGoalie = <font class="keyword">false</font>;00580 00581   strMsg++; <font class="comment">// skip ')'                                 // go to opponent info</font>00582   strMsg++; <font class="comment">// skip '('</font>00583   <font class="keywordflow">while</font>( *strMsg != <font class="charliteral">')'</font> )00584   {00585     iPlayer = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );00586     <font class="keywordflow">if</font>( iPlayer == -1 )                                 <font class="comment">// if illegal</font>00587       obj = <a class="code" href="SoccerTypes_8h.html#a240a108">OBJECT_OPPONENT_UNKNOWN</a>;                    <font class="comment">// we don't know nr</font>00588     <font class="keywordflow">else</font>00589       obj = <a class="code" href="classSoccerTypes.html#d16">SoccerTypes::getOpponentObjectFromIndex</a>( iPlayer - 1 );00590     bIsGoalie = ( *strMsg == <font class="charliteral">'g'</font> );                     <font class="comment">// i.e. 1g</font>00591     pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00592     pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00593     dConf = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) ;00594     <a class="code" href="classParse.html#d4">Parse::gotoFirstNonSpace</a>( &amp;strMsg );00595     <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a91">processPerfectHearInfo</a>( obj, pos, dConf - dDiff, bIsGoalie );00596   }00597   <font class="keywordflow">return</font> <font class="keyword">true</font>;00598 }00599 <a name="l00606"></a><a class="code" href="classSenseHandler.html#a12">00606</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a12">SenseHandler::analyzeCheckBall</a>( <font class="keywordtype">char</font> *strMsg )00607 {00608   <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a28">setTimeCheckBall</a>( <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg ) );00609   strMsg++;00610   <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a30">setCheckBallStatus</a>( <a class="code" href="classSoccerTypes.html#d34">SoccerTypes::getBallStatusFromStr</a>( strMsg ) );00611   <font class="keywordflow">return</font> <font class="keyword">true</font>;00612 }00613 <a name="l00620"></a><a class="code" href="classSenseHandler.html#a10">00620</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a10">SenseHandler::analyzeChangePlayerTypeMessage</a>( <font class="keywordtype">char</font> *strMsg )00621 {00622   <font class="keywordtype">int</font> iPlayer = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );00623   <font class="keywordflow">if</font>( *strMsg != <font class="charliteral">')'</font> &amp;&amp; <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a14">getPlayerNumber</a>() == iPlayer )00624   {00625     <font class="keywordtype">int</font> iPlayerType = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &amp;strMsg );00626     <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#o0">WM</a>-&gt;<a class="code" href="classWorldModel.html#a99">updateSSToHeteroPlayerType</a>( iPlayerType );00627   }00628   <font class="keywordflow">return</font> <font class="keyword">false</font>;00629 }00630 <a name="l00637"></a><a class="code" href="classSenseHandler.html#a11">00637</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a11">SenseHandler::analyzeServerParamMessage</a>( <font class="keywordtype">char</font> *strMsg )00638 {00639   <font class="comment">// get the server parameters one by one</font>00640   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a3">setGoalWidth</a>            ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00641   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a43">setInertiaMoment</a>        ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00642   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a5">setPlayerSize</a>           ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00643   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a7">setPlayerDecay</a>          ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00644   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a9">setPlayerRand</a>           ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00645   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a11">setPlayerWeight</a>         ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00646   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a13">setPlayerSpeedMax</a>       ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00647   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a15">setPlayerAccelMax</a>       ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00648   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a17">setStaminaMax</a>           ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00649   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a19">setStaminaIncMax</a>        ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00650   <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ); <font class="comment">// skip recover_init = 0</font>00651   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a21">setRecoverDecThr</a>        ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00652   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a25">setRecoverMin</a>           ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00653   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a23">setRecoverDec</a>           ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00654   <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ); <font class="comment">// skip effort_init = 0</font>00655   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a27">setEffortDecThr</a>         ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00656   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a35">setEffortMin</a>            ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00657   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a29">setEffortDec</a>            ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00658   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a31">setEffortIncThr</a>         ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00659   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a33">setEffortInc</a>            ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00660   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a83">setKickRand</a>             ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00661   <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ); <font class="comment">// skip team_actuator noise</font>00662   <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ); <font class="comment">// skip prand_factor_l</font>00663   <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ); <font class="comment">// skip prand_factor_r</font>00664   <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ); <font class="comment">// skip kick_rand_factor_l</font>00665   <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ); <font class="comment">// skip kick_rand_factor_r</font>00666   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a57">setBallSize</a>             ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00667   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a59">setBallDecay</a>            ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00668   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a61">setBallRand</a>             ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00669   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a63">setBallWeight</a>           ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &amp;strMsg ) );00670   <a class="code" href="classSenseHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a65">setBallSpeedMax</a>         ( <a class="code" hre

⌨️ 快捷键说明

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