|
|
|
@ -12,12 +12,10 @@ public class WindCommand implements Command {
|
|
|
|
private MockBoat boat;
|
|
|
|
private MockBoat boat;
|
|
|
|
private int direction;
|
|
|
|
private int direction;
|
|
|
|
|
|
|
|
|
|
|
|
private double offset = 3.0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public WindCommand(MockRace race, MockBoat boat, boolean upwind) {
|
|
|
|
public WindCommand(MockRace race, MockBoat boat, boolean upwind) {
|
|
|
|
this.race = race;
|
|
|
|
this.race = race;
|
|
|
|
this.boat = boat;
|
|
|
|
this.boat = boat;
|
|
|
|
this.direction = upwind? 1 : -1;
|
|
|
|
this.direction = upwind? -1 : 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@ -25,7 +23,11 @@ public class WindCommand implements Command {
|
|
|
|
double wind = race.getWindDirection().degrees();
|
|
|
|
double wind = race.getWindDirection().degrees();
|
|
|
|
double heading = boat.getBearing().degrees();
|
|
|
|
double heading = boat.getBearing().degrees();
|
|
|
|
|
|
|
|
|
|
|
|
if(wind - heading < 0) offset *= -1 * direction;
|
|
|
|
double offset = 3.0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
offset *= direction;
|
|
|
|
|
|
|
|
if(wind - heading < 0) offset *= -1;
|
|
|
|
|
|
|
|
|
|
|
|
boat.setBearing(Bearing.fromDegrees(heading + offset));
|
|
|
|
boat.setBearing(Bearing.fromDegrees(heading + offset));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|