Esempio n. 1
0
 private void Navigate()
 {
     if (Robot.TurnRemaining == 0)
     {
         double distance = Robot.DetermineDistance(Robot.CurrentDirection);
         if (Robot.DistanceRemaining <= 0 && currentMeetAndGreetPhase == MeetAndGreetStep.DriveCurve)
         {
             if (distance > SMALLER_OFFSET)
             {
                 Robot.SetAhead(distance - OFFSET);
             }
             currentMeetAndGreetPhase = MeetAndGreetStep.MoveForward;
         }
         else if (Robot.DistanceRemaining <= 0 && currentMeetAndGreetPhase == MeetAndGreetStep.MoveForward)
         {
             if (Robot.DetermineDistance(Robot.DetermineLeftDirection(Robot.CurrentDirection)) > SMALLER_OFFSET && distance >= SMALLER_OFFSET)
             {
                 Robot.SetAhead(50);
             }
             Robot.SetTurnLeft(90);
             currentMeetAndGreetPhase = MeetAndGreetStep.DriveCurve;
         }
     }
 }
Esempio n. 2
0
 public override void ActivatePhase(RoboPhase previousPhase)
 {
     base.ActivatePhase(previousPhase);
     currentMeetAndGreetPhase = MeetAndGreetStep.MoveForward;
     Robot.SetTurnLeft(Robot.Heading % 90);
 }