summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/App.java3
-rw-r--r--src/Q9/MovingRobot.java19
2 files changed, 22 insertions, 0 deletions
diff --git a/src/App.java b/src/App.java
index e1c9498..4fdb55f 100644
--- a/src/App.java
+++ b/src/App.java
@@ -38,6 +38,9 @@ public class App {
case 8:
Q8.BadmintonScoring.main(args);
break;
+ case 9:
+ Q9.MovingRobot.main(args);
+ break;
default:
System.out.println("Bye");
System.exit(0);
diff --git a/src/Q9/MovingRobot.java b/src/Q9/MovingRobot.java
index a7b462c..c063c14 100644
--- a/src/Q9/MovingRobot.java
+++ b/src/Q9/MovingRobot.java
@@ -53,6 +53,8 @@ public class MovingRobot extends Robot {
public void move() {
this.nextMove = generateNextMove();
+ if (!validateNextMove(this.nextMove)) this.move();
+
this.move(this.nextMove);
}
@@ -125,4 +127,21 @@ public class MovingRobot extends Robot {
private void moveLeft() {
this.setX(this.getX() - 1);
}
+
+ public static void main(String[] args) {
+ System.out.println("=== Question 9 ===");
+ MovingRobot r1 = new MovingRobot(0, 0);
+ MovingRobot r2 = new MovingRobot(9, 9);
+ while (!MovingRobot.sameSlot(r1, r2)) {
+ r1.move();
+ r2.move();
+ }
+
+ System.out.println(String.format("Collision at: (%d, %d)", r1.getX(), r1.getY()));
+ System.out.println("R1 Route:");
+ System.out.println(r1.printMoves());
+
+ System.out.println("R2 Route:");
+ System.out.println(r2.printMoves());
+ }
}