player_8c-source.html
来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 545 行 · 第 1/5 页
HTML
545 行
00503 <font class="stringliteral">" t(urn) angle"</font> << endl <<00504 <font class="stringliteral">" v(iewmode) narrow | normal | wide low | high"</font> << endl <<00505 <font class="stringliteral">" w(orldmodel)"</font> << endl;00506 }00507 <a name="l00512"></a><a class="code" href="classPlayer.html#a7">00512</a> <font class="keywordtype">bool</font> <a class="code" href="classPlayer.html#a7">Player::executeStringCommand</a>( <font class="keywordtype">char</font> *str)00513 {00514 <a class="code" href="classSoccerCommand.html">SoccerCommand</a> socCommand;00515 <font class="keywordtype">int</font> i;00516 <font class="keywordtype">double</font> x, y;00517 00518 <font class="keywordflow">switch</font>( str[0] )00519 {00520 <font class="keywordflow">case</font> <font class="charliteral">'a'</font>: <font class="comment">// actions</font>00521 <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a155">showQueuedCommands</a>();00522 <font class="keywordflow">break</font>;00523 <font class="keywordflow">case</font> <font class="charliteral">'c'</font>: <font class="comment">// catch dir or ps</font>00524 <font class="keywordflow">if</font>( strlen(str) > 1 && str[1] == <font class="charliteral">'s'</font> )00525 {00526 <a class="code" href="classBasicPlayer.html#n3">PS</a>-><a class="code" href="classGenericValues.html#a9">show</a>( cout, <font class="stringliteral">":"</font> );00527 <font class="keywordflow">break</font>;00528 }00529 socCommand.<a class="code" href="classSoccerCommand.html#a2">makeCommand</a>( <a class="code" href="SoccerTypes_8h.html#a247a185">CMD_CATCH</a>, <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &str ) );00530 <font class="keywordflow">break</font>;00531 <font class="keywordflow">case</font> <font class="charliteral">'d'</font>: <font class="comment">// dash</font>00532 socCommand.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a181">CMD_DASH</a>;00533 socCommand.<a class="code" href="classSoccerCommand.html#m3">dPower</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00534 socCommand.<a class="code" href="classSoccerCommand.html#m9">iTimes</a> = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a> ( &str );00535 <font class="keywordflow">if</font>( socCommand.<a class="code" href="classSoccerCommand.html#m9">iTimes</a> == 0 ) socCommand.<a class="code" href="classSoccerCommand.html#m9">iTimes</a> = 1;00536 <font class="keywordflow">break</font>;00537 <font class="keywordflow">case</font> <font class="charliteral">'h'</font>: <font class="comment">// help</font>00538 <a class="code" href="classPlayer.html#a6">showStringCommands</a>( cout );00539 <font class="keywordflow">return</font> <font class="keyword">true</font>;00540 <font class="keywordflow">case</font> <font class="charliteral">'k'</font>: <font class="comment">// kick or ka (kick advanced)</font>00541 socCommand.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a186">CMD_KICK</a>;00542 <font class="keywordflow">if</font>( str[1] == <font class="charliteral">'a'</font> ) <font class="comment">// advanced kick</font>00543 {00544 <font class="keywordtype">double</font> x = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00545 <font class="keywordtype">double</font> y = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00546 <font class="keywordtype">double</font> e = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00547 socCommand = <a class="code" href="classBasicPlayer.html#b17">kickTo</a>( <a class="code" href="classVecPosition.html">VecPosition</a>( x, y), e );00548 }00549 <font class="keywordflow">else</font>00550 {00551 socCommand.<a class="code" href="classSoccerCommand.html#m3">dPower</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00552 socCommand.<a class="code" href="classSoccerCommand.html#m2">dAngle</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00553 }00554 <font class="keywordflow">break</font>;00555 <font class="keywordflow">case</font> <font class="charliteral">'m'</font>: <font class="comment">// move</font>00556 socCommand.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a187">CMD_MOVE</a>;00557 socCommand.<a class="code" href="classSoccerCommand.html#m6">dX</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00558 socCommand.<a class="code" href="classSoccerCommand.html#m7">dY</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00559 socCommand.<a class="code" href="classSoccerCommand.html#m2">dAngle</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00560 <font class="keywordflow">break</font>;00561 <font class="keywordflow">case</font> <font class="charliteral">'n'</font>: <font class="comment">// turn_neck</font>00562 socCommand.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a183">CMD_TURNNECK</a>;00563 socCommand.<a class="code" href="classSoccerCommand.html#m2">dAngle</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00564 <font class="keywordflow">break</font>;00565 <font class="keywordflow">case</font> <font class="charliteral">'o'</font>: <font class="comment">// count nr opp in cone</font>00566 x = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00567 y = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00568 i = <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a115">getNrInSetInCone</a>( <a class="code" href="SoccerTypes_8h.html#a241a116">OBJECT_SET_OPPONENTS</a>, x, 00569 <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a43">getAgentGlobalPosition</a>(),00570 <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a43">getAgentGlobalPosition</a>()+<a class="code" href="classVecPosition.html">VecPosition</a>( y,00571 <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a37">getAgentGlobalNeckAngle</a>(), POLAR ) );00572 printf( <font class="stringliteral">"%d opponents\n"</font>, i );00573 <font class="keywordflow">return</font> <font class="keyword">true</font>;00574 <font class="keywordflow">case</font> <font class="charliteral">'p'</font>: <font class="comment">// predict cycles to point</font>00575 x = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00576 y = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00577 i = <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a109">predictNrCyclesToPoint</a>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a34">getAgentObjectType</a>(),00578 <a class="code" href="classVecPosition.html">VecPosition</a>( x, y ), <a class="code" href="classBasicPlayer.html#n3">PS</a>-><a class="code" href="classPlayerSettings.html#a9">getPlayerWhenToTurnAngle</a>() );00579 printf( <font class="stringliteral">"%d cycles\n"</font>, i );00580 <font class="keywordflow">return</font> <font class="keyword">true</font>;00581 <font class="keywordflow">case</font> <font class="charliteral">'q'</font>: <font class="comment">// quit</font>00582 <a class="code" href="classPlayer.html#o1">bContLoop</a> = <font class="keyword">false</font>;00583 <font class="keywordflow">return</font> <font class="keyword">true</font>;00584 <font class="keywordflow">case</font> <font class="charliteral">'s'</font>: <font class="comment">// ss (serversettings) or say</font>00585 <font class="keywordflow">if</font>( strlen(str) > 1 && str[1] == <font class="charliteral">'s'</font> )00586 {00587 <a class="code" href="classBasicPlayer.html#n2">SS</a>-><a class="code" href="classGenericValues.html#a9">show</a>( cout, <font class="stringliteral">":"</font> );00588 <font class="keywordflow">break</font>;00589 }00590 socCommand.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a189">CMD_SAY</a>;00591 <a class="code" href="classParse.html#d3">Parse::gotoFirstOccurenceOf</a>( <font class="charliteral">' '</font>, &str );00592 <a class="code" href="classParse.html#d4">Parse::gotoFirstNonSpace</a>( &str );00593 strcpy( socCommand.<a class="code" href="classSoccerCommand.html#m8">str</a>, str);00594 <font class="keywordflow">break</font>;00595 <font class="keywordflow">case</font> <font class="charliteral">'t'</font>: <font class="comment">// turn</font>00596 socCommand.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a182">CMD_TURN</a>;00597 socCommand.<a class="code" href="classSoccerCommand.html#m2">dAngle</a> = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &str );00598 <font class="keywordflow">break</font>;00599 <font class="keywordflow">case</font> <font class="charliteral">'v'</font>: <font class="comment">// change_view</font>00600 socCommand.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a184">CMD_CHANGEVIEW</a>;00601 <a class="code" href="classParse.html#d3">Parse::gotoFirstOccurenceOf</a>(<font class="charliteral">' '</font>, &str );00602 <a class="code" href="classParse.html#d4">Parse::gotoFirstNonSpace</a>( &str );00603 socCommand.<a class="code" href="classSoccerCommand.html#m5">va</a> = <a class="code" href="classSoccerTypes.html#d25">SoccerTypes::getViewAngleFromStr</a>( str );00604 <a class="code" href="classParse.html#d3">Parse::gotoFirstOccurenceOf</a>(<font class="charliteral">' '</font>, &str );00605 <a class="code" href="classParse.html#d4">Parse::gotoFirstNonSpace</a>( &str );00606 socCommand.<a class="code" href="classSoccerCommand.html#m4">vq</a> = <a class="code" href="classSoccerTypes.html#d28">SoccerTypes::getViewQualityFromStr</a>( str );00607 <font class="keywordflow">break</font>;00608 <font class="keywordflow">case</font> <font class="charliteral">'w'</font>: <font class="comment">// worldmodel</font>00609 <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a153">show</a>();00610 <font class="keywordflow">return</font> <font class="keyword">true</font>;00611 <font class="keywordflow">default</font>: <font class="comment">// default: send entered string</font>00612 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a6">sendMessage</a>( str );00613 <font class="keywordflow">return</font> <font class="keyword">true</font>;00614 }00615 <font class
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?