diff --git a/tasks/java-evaluation/Elevator.java b/tasks/java-evaluation/Elevator.java new file mode 100644 index 0000000..078de30 --- /dev/null +++ b/tasks/java-evaluation/Elevator.java @@ -0,0 +1,22 @@ +public class Elevator { + int floor; + + public Elevator(int floor) { + this.floor = floor; + System.out.println("Elevator instantiated at floor " + this.floor); + } + + public void moveUp() { + this.floor++; + System.out.println("Moving up... now at floor " + this.floor); + } + + public void moveDown() { + this.floor--; + System.out.println("Moving down... now at floor " + this.floor); + } + + public int getCurrentFloor() { + return this.floor; + } +} diff --git a/tasks/java-evaluation/ElevatorController.java b/tasks/java-evaluation/ElevatorController.java new file mode 100644 index 0000000..f8c77e8 --- /dev/null +++ b/tasks/java-evaluation/ElevatorController.java @@ -0,0 +1,39 @@ +public class ElevatorController { + Elevator elevator; + int minFloor; + int maxFloor; + + public ElevatorController(Elevator elevator, int minFloor, int maxFloor) { + this.elevator = elevator; + this.minFloor = minFloor; + this.maxFloor = maxFloor; + } + + public void reset() { + this.elevator.floor = 1; + } + + public void goToFloor(int target) { + if (target < minFloor || target > maxFloor) { + System.out.println("Floor " + target + " is not a valid floor"); + return; + } + + if (elevator.floor == target) { + System.out.println("Already at floor " + target); + return; + } + + if (elevator.floor < target) { + while (elevator.floor < target) { + elevator.moveUp(); + } + } else { + while (elevator.floor > target) { + elevator.moveDown(); + } + } + + System.out.println("Arrived at floor " + target); + } +}