+ rightMotor.stop(true);
+ leftMotor.stop(true);
+
+ measMotor.backward();
+ while(!suppressed && !measMotor.isStalled()){
+ Thread.yield();
+ }
+ measMotor.forward();
+ while(!suppressed && !measMotor.isStalled()){
+ Thread.yield();
+ }
+ measMotor.stop(true);
+
+ rightMotor.backward();
+ leftMotor.backward();
+ while(System.currentTimeMillis()-time<1000){
+ Thread.yield();
+ }
+ turnRandom(30, 45);
+ }
+
+ protected void turnRandom(int from, int to){
+ int degrees = Marster.random.nextInt(to-from)+from;
+ if(Marster.random.nextBoolean()){
+ rightTurn(degrees);
+ } else {
+ leftTurn(degrees);
+ }
+ }
+
+ protected void rightTurn(int angle){
+ rightMotor.stop(true);
+ leftMotor.stop();
+ sensors.resetGyro();
+ rightMotor.backward();
+ leftMotor.forward();
+ while(!suppressed && Math.abs(sensors.gyro()) < angle){
+ Thread.yield();
+ }
+ rightMotor.stop(true);
+ leftMotor.stop(true);
+ System.out.println(Float.toString(sensors.gyro()));
+ }
+
+ protected void leftTurn(int angle){
+ rightMotor.stop(true);
+ leftMotor.stop();
+ sensors.resetGyro();
+ leftMotor.backward();
+ rightMotor.forward();
+ while(!suppressed && Math.abs(sensors.gyro()) < angle){
+ Thread.yield();
+ }
+ rightMotor.stop(true);
+ leftMotor.stop(true);
+ System.out.println(Float.toString(sensors.gyro()));