Alarm Clock Robot

An Experiment in Autonomous Morning Routines.

package Code;

import edu.cmu.ri.createlab.terk.robot.finch.Finch;
import java.util.Random;

public class RunAway {
    public static void main(final String[] args) {
        Finch myFinch = new Finch();
        Random rand = new Random();

        boolean isLeftLightSensor;
        boolean isRightLightSensor;
        boolean isObstacle;

        // Get initial light sensor values
        isLeftLightSensor = myFinch.getLeftLightSensor() > 50;  // adjust threshold as needed
        isRightLightSensor = myFinch.getRightLightSensor() > 50;

        while (isLeftLightSensor || isRightLightSensor) {
            isObstacle = myFinch.isObstacle(); // assumes any obstacle is present

            if (isObstacle) {
                // Turn left, then move forward
                myFinch.setWheelVelocities(0, 50, 500);
                myFinch.setWheelVelocities(50, 50, 500);
            } else {
                int random = rand.nextInt(6) + 1; // Generates number 1–6

                if (random == 1) {
                    myFinch.setWheelVelocities(50, 0, 200);
                    myFinch.setWheelVelocities(50, 50, 500);
                } else if (random == 2) {
                    myFinch.setWheelVelocities(0, 50, 200);
                    myFinch.setWheelVelocities(50, 50, 700);
                } else if (random == 3) {
                    myFinch.setWheelVelocities(50, 0, 200);
                    myFinch.setWheelVelocities(50, 50, 600);
                } else if (random == 4) {
                    myFinch.setWheelVelocities(50, 0, 200);
                    myFinch.setWheelVelocities(-50, -50, 400);
                } else if (random == 5) {
                    myFinch.setWheelVelocities(0, 50, 200);
                    myFinch.setWheelVelocities(50, 50, 500);
                } else {
                    // Optional fallback behavior
                    myFinch.setWheelVelocities(50, 50, 300);
                }
            }

            // Update light sensor readings again
            isLeftLightSensor = myFinch.getLeftLightSensor() > 50;
            isRightLightSensor = myFinch.getRightLightSensor() > 50;
        }

        myFinch.quit();
        System.exit(0);
    }
}