コード例 #1
0
ファイル: Player.java プロジェクト: FranckRo/tools
 /**
  * Can i kill enemy in one shoot at the next turn
  *
  * @param en
  * @param enemyLife
  * @return
  */
 private boolean enoughDamageToKillInOneShootNextTurn(Enemy en, DataPoint dp) {
   int dist =
       computeDistance(
           getCoordX(), getCoordY(), getNextXForEnemy(en, dp), getNextYForEnemy(en, dp));
   int damage = computeImpactEfficiency(dist);
   return damage >= en.getEnemyLife() ? true : false;
 }
コード例 #2
0
ファイル: Player.java プロジェクト: FranckRo/tools
 private int getTurnToKillEnemyInThisPosition(Enemy en, DataPoint dp) {
   int i = 0;
   int enemyLife = en.getEnemyLife();
   int currentX = en.getCoordX();
   int currentY = en.getCoordY();
   while (enemyLife > 0) {
     currentX = getNextXForEnemy(currentX, currentY, dp);
     currentY = getNextYForEnemy(currentX, currentY, dp);
     int dist = computeDistance(getCoordX(), getCoordX(), currentX, currentY);
     enemyLife -= computeImpactEfficiency(dist);
     i++;
   }
   return i;
 }
コード例 #3
0
ファイル: Player.java プロジェクト: FranckRo/tools
 private boolean willBeAbleToKillInOneShoot(int turnLeft, Enemy en, DataPoint dp) {
   int playerX = getCoordX();
   int playerY = getCoordY();
   int currentX = en.getCoordX();
   int currentY = en.getCoordY();
   while (turnLeft > 0) {
     currentX = getNextXForEnemy(currentX, currentY, dp);
     currentY = getNextYForEnemy(currentX, currentY, dp);
     playerX = getXCoordsCloser(currentX, currentY);
     playerY = getYCoordsCloser(currentX, currentY);
     turnLeft--;
   }
   int dist = computeDistance(playerX, playerY, currentX, currentY);
   if (enoughDamageToKillInOneShootInGivenDistance(dist, en.getEnemyLife())) {
     return true;
   } else {
     return false;
   }
 }