Exemple #1
0
 private Point anticipateSheepMovement(Point me, Point targetSheep) {
   double angleDogToSheep = Calculator.getAngleOfTrajectory(me, targetSheep);
   if (Calculator.withinRunDistance(targetSheep, me)) {
     targetSheep =
         Calculator.getMoveInDirection(targetSheep, angleDogToSheep, 1.0 /*SHEEP_RUN_SPEED*/);
   } else if (Calculator.withinWalkDistance(targetSheep, me)) {
     targetSheep = Calculator.getMoveInDirection(targetSheep, angleDogToSheep, .1 /*sheep walk*/);
   }
   return targetSheep;
 }
Exemple #2
0
  public Point chaseSheepTowardGoal(int dogNum, int sheepNum, Point goal) {
    Point dogPoint = dogs[dogNum];
    Point sheepPoint = sheeps[sheepNum];
    sheepPoint = anticipateSheepMovement(dogPoint, sheepPoint);

    double angleGapToSheep = Calculator.getAngleOfTrajectory(goal, sheepPoint);
    Point idealLocation = Calculator.getMoveInDirection(sheepPoint, angleGapToSheep, 1.0);
    Point moveLocation = Calculator.getMoveTowardPoint(dogPoint, idealLocation);

    return moveLocation;
  }