本文整理汇总了C++中AI::estimateAndMove方法的典型用法代码示例。如果您正苦于以下问题:C++ AI::estimateAndMove方法的具体用法?C++ AI::estimateAndMove怎么用?C++ AI::estimateAndMove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AI
的用法示例。
在下文中一共展示了AI::estimateAndMove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
//.........这里部分代码省略.........
my_user->allow();
if (physics.objCollision(*users[0], *users[1])) //
{
// Returnerar true eller false => 0 eller 1 => LEFT eller RIGHT
DIR = (my_user->getX() > my_partner->getX());
my_user->reject(DIR);
}
if (physics.mapCollision(*my_user, farm))
{
if (my_user->getDir() == LEFT)
{
my_user->reject(RIGHT);
}
else
{
my_user->reject(LEFT);
}
}
}
// DATORNS TUR //
else if (!my_turn )
{
// Låt datorn "tänka"
if (seconds < 2)
{
g.printFont(g.getW()/2-75, g.getH()/2, 100, 20, 20, "COMPUTER'S TURN");
}
else
{
if(!grenade.isThrown())
{
// Datorn bestämmer hur den vill flytta och skjuta
ai.estimateAndMove(*enemy_user);
ai.estimateAndShoot(grenade, *enemy_user);
// Måla sikte
g.printFont(enemy_user->getX() + 20 +
(grenade.crossHair(PIG).first),
enemy_user->getY() + 30 -
(grenade.crossHair(PIG).second),
25, 25, 20, "+");
}
// Kollisionshantering, vapen
else if(grenade.isThrown())
{
for (int i = 0; i < 2; ++i)
{
if (physics.objCollision(grenade, *users[i]))
{
explosion.locate(grenade);
grenade.impact(true);
grenade.reset();
grenade.getsThrown(false, *enemy_user);
users[i]->decreaseHealth(34);
users[i]->setDir(LEFT);
users[i]->move();
++explosions;
break;
}
}
if (physics.objCollision(grenade, *enemy_partner))
{
explosion.locate(grenade);
grenade.impact(true);
grenade.reset();