/* * This function doesn't take a random number each time, instead it adds a smaller random number to the existing speed and heading. */ public override void calculateNextMove(DoublePoint robotPosition, double speed, DoublePoint heading, List <Robot> neighbors, out double referenceSpeed, out DoublePoint referenceHeading) { this.heading = heading; this.position = robotPosition; referenceSpeed = speed + (2 * random.NextDouble() - 1) * this.maxSpeed / 10; referenceHeading = ControlStrategy.ang2Point(ControlStrategy.point2Ang(heading) + this.maxAngSpeed * (2 * random.NextDouble() - 1)); borderAvoidance.calculateNextMove(robotPosition, referenceSpeed, referenceHeading, neighbors, out referenceSpeed, out referenceHeading); }