player_8c-source.html
来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 545 行 · 第 1/5 页
HTML
545 行
00367 }00368 <font class="keywordflow">else</font>00369 {00370 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( soc = <a class="code" href="classBasicPlayer.html#b12">turnBodyToObject</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a> ) );00371 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( <a class="code" href="classBasicPlayer.html#b13">turnNeckToObject</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a>, soc ) );00372 }00373 }00374 }00375 <font class="keywordflow">else</font> <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a73">isFreeKickUs</a>() == <font class="keyword">true</font> || <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a83">isGoalKickUs</a>() == <font class="keyword">true</font> )00376 {00377 <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a128">isBallKickable</a>() )00378 {00379 <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a1">getTimeSinceLastCatch</a>() == 25 && <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a73">isFreeKickUs</a>() )00380 {00381 <font class="comment">// move to position with lesser opponents.</font>00382 <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a114">getNrInSetInCircle</a>( <a class="code" href="SoccerTypes_8h.html#a241a116">OBJECT_SET_OPPONENTS</a>, 00383 <a class="code" href="classCircle.html">Circle</a>(posRightTop, 15.0 )) <00384 <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a114">getNrInSetInCircle</a>( <a class="code" href="SoccerTypes_8h.html#a241a116">OBJECT_SET_OPPONENTS</a>, 00385 <a class="code" href="classCircle.html">Circle</a>(posLeftTop, 15.0 )) )00386 soc.<a class="code" href="classSoccerCommand.html#a2">makeCommand</a>( <a class="code" href="SoccerTypes_8h.html#a247a187">CMD_MOVE</a>, posRightTop.<a class="code" href="classVecPosition.html#a26">getX</a>(),posRightTop.<a class="code" href="classVecPosition.html#a28">getY</a>(),0.0);00387 <font class="keywordflow">else</font>00388 soc.<a class="code" href="classSoccerCommand.html#a2">makeCommand</a>( <a class="code" href="SoccerTypes_8h.html#a247a187">CMD_MOVE</a>, posLeftTop.<a class="code" href="classVecPosition.html#a26">getX</a>(), posLeftTop.<a class="code" href="classVecPosition.html#a28">getY</a>(), 0.0);00389 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( soc );00390 }00391 <font class="keywordflow">else</font> <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a1">getTimeSinceLastCatch</a>() > 28 )00392 {00393 soc = <a class="code" href="classBasicPlayer.html#b17">kickTo</a>( <a class="code" href="classVecPosition.html">VecPosition</a>(0,posAgent.<a class="code" href="classVecPosition.html#a28">getY</a>()*2.0), 2.0 ); 00394 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( soc );00395 }00396 <font class="keywordflow">else</font> <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a1">getTimeSinceLastCatch</a>() < 25 )00397 {00398 <a class="code" href="classVecPosition.html">VecPosition</a> posSide( 0.0, posAgent.<a class="code" href="classVecPosition.html#a28">getY</a>() ); 00399 <font class="keywordflow">if</font>( fabs( (posSide - posAgent).getDirection() - angBody) > 10 )00400 {00401 soc = <a class="code" href="classBasicPlayer.html#b1">turnBodyToPoint</a>( posSide );00402 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( soc );00403 }00404 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( <a class="code" href="classBasicPlayer.html#b13">turnNeckToObject</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a>, soc ) );00405 }00406 }00407 <font class="keywordflow">else</font> <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a83">isGoalKickUs</a>() )00408 {00409 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( soc = <a class="code" href="classBasicPlayer.html#b20">intercept</a>( <font class="keyword">true</font> ) );00410 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( <a class="code" href="classBasicPlayer.html#b13">turnNeckToObject</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a>, soc ) );00411 }00412 <font class="keywordflow">else</font>00413 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( <a class="code" href="classBasicPlayer.html#b13">turnNeckToObject</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a>, soc ) );00414 }00415 <font class="keywordflow">else</font>00416 {00417 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( soc = <a class="code" href="classBasicPlayer.html#b12">turnBodyToObject</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a> ) );00418 <a class="code" href="classBasicPlayer.html#n0">ACT</a>-><a class="code" href="classActHandler.html#a1">putCommandInQueue</a>( <a class="code" href="classBasicPlayer.html#b13">turnNeckToObject</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a>, soc ) );00419 }00420 00421 }00422 <a name="l00434"></a><a class="code" href="classPlayer.html#a1">00434</a> <a class="code" href="classVecPosition.html">VecPosition</a> <a class="code" href="classPlayer.html#a1">Player::getStrategicPosition</a>( <font class="keywordtype">int</font> iPlayer )00435 {00436 <font class="comment">// -1 is default -> get player number in formation</font>00437 <font class="keywordflow">if</font>( iPlayer == -1 )00438 iPlayer = <a class="code" href="classPlayer.html#o0">formations</a>-><a class="code" href="classFormations.html#a7">getPlayerInFormation</a>();00439 00440 <font class="comment">// get maximal allowed x coordinate, this is offside x coordinate</font>00441 <font class="keywordtype">double</font> dMaxX = <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a140">getOffsideX</a>();00442 00443 <font class="comment">// after standing offside we are not allowed to move for ball</font>00444 <font class="comment">// with a goal kick of them we are not allowed to move into penalty area</font>00445 <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a77">isOffsideUs</a>( ) )00446 dMaxX = <a class="code" href="Geometry_8h.html#a2">min</a>( dMaxX, <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a47">getBallPos</a>().<a class="code" href="classVecPosition.html#a26">getX</a>() - 1.0 );00447 <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a84">isGoalKickThem</a>() );00448 dMaxX = <a class="code" href="Geometry_8h.html#a2">min</a>( dMaxX, <a class="code" href="SoccerTypes_8h.html#a18">PENALTY_X</a> - 1.0 );00449 00450 00451 <font class="keywordflow">if</font>( <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a61">getConfidence</a>( <a class="code" href="SoccerTypes_8h.html#a240a24">OBJECT_BALL</a> ) > <a class="code" href="classBasicPlayer.html#n3">PS</a>-><a class="code" href="classPlayerSettings.html#a5">getBallConfThr</a>() )00452 <font class="keywordflow">return</font> <a class="code" href="classPlayer.html#o0">formations</a>-><a class="code" href="classFormations.html#a2">getStrategicPosition</a>( iPlayer, <a class="code" href="classBasicPlayer.html#n1">WM</a>-><a class="code" href="classWorldModel.html#a47">getBallPos</a>(), dMaxX );00453 <font class="keywordflow">else</font>00454 <font class="keywordflow">return</font> <a class="code" href="classPlayer.html#o0">formations</a>-><a class="code" href="classFormations.html#a2">getStrategicPosition</a>( iPlayer, <a class="code" href="classVecPosition.html">VecPosition</a>(0,0), dMaxX );00455 }00456 <a name="l00468"></a><a class="code" href="classPlayer.html#a5">00468</a> <font class="keywordtype">void</font> <a class="code" href="classPlayer.html#a5">Player::handleStdin</a>( )00469 {00470 <font class="keywordtype">char</font> buf[<a class="code" href="SoccerTypes_8h.html#a6">MAX_MSG</a>];00471 00472 <font class="keywordflow">while</font>( bContLoop )00473 {00474 fgets( buf, <a class="code" href="SoccerTypes_8h.html#a6">MAX_MSG</a>, stdin ); 00475 <a class="code" href="classPlayer.html#a7">executeStringCommand</a>( buf );00476 }00477 }00478 <a name="l00484"></a><a class="code" href="classPlayer.html#a6">00484</a> <font class="keywordtype">void</font> <a class="code" href="classPlayer.html#a6">Player::showStringCommands</a>( ostream& out )00485 {00486 out << <font class="stringliteral">"Basic commands:"</font> << endl <<00487 <font class="stringliteral">" a(ctions)"</font> << endl <<00488 <font class="stringliteral">" c(atch) direction"</font> << endl <<00489 <font class="stringliteral">" cs(lientsettings"</font> << endl <<00490 <font class="stringliteral">" d(ash) power [ times ]"</font> << endl <<00491 <font class="stringliteral">" g(oto) x y"</font> << endl <<00492 <font class="stringliteral">" h(elp)"</font> << endl <<00493 <font class="stringliteral">" i(ntercept) x y"</font> << endl <<00494 <font class="stringliteral">" k(ick) power angle"</font> << endl <<00495 <font class="stringliteral">" ka x y endspeed "</font> << endl <<00496 <font class="stringliteral">" m(ove) x y"</font> << endl <<00497 <font class="stringliteral">" n(eck) angle"</font> << endl <<00498 <font class="stringliteral">" o(pponents in cone) width dist"</font> << endl <<00499 <font class="stringliteral">" p(redict cycles to) x y"</font> << endl <<00500 <font class="stringliteral">" q(uit)"</font> << endl <<00501 <font class="stringliteral">" s(ay) message"</font> << endl <<00502 <font class="stringliteral">" ss(erversettings)"</font> << endl <<
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?