aboutsummaryrefslogtreecommitdiff
path: root/Week14 Route 66/src/OO14route66/Direction.java
diff options
context:
space:
mode:
Diffstat (limited to 'Week14 Route 66/src/OO14route66/Direction.java')
-rw-r--r--Week14 Route 66/src/OO14route66/Direction.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/Week14 Route 66/src/OO14route66/Direction.java b/Week14 Route 66/src/OO14route66/Direction.java
new file mode 100644
index 0000000..b8c1636
--- /dev/null
+++ b/Week14 Route 66/src/OO14route66/Direction.java
@@ -0,0 +1,55 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package OO14route66;
+
+/**
+ * OO1route66 initial class
+ * @author Pieter Koopman
+ *
+ * Enumeration class for driving directions
+ */
+public enum Direction
+{
+ North, East, South, West;
+
+ /**
+ * convert integer to direction
+ * if number of directions is 2 only East and West are used,
+ * otherwise all 4 directions are used
+ * @param i the integer
+ * @return the direction
+ */
+ public static Direction intToDirection(int i) {
+ if (Model.DIRECTIONS == 2) {
+ switch (i % 2) {
+ case 0: return East;
+ default: return West;
+ }
+ } else {
+ switch (i % 4) {
+ case 0: return North;
+ case 1: return East;
+ case 2: return South;
+ default: return West;
+ }
+ }
+ }
+
+ /**
+ * override standard toString
+ * @return string representation of this value
+ */
+ @Override
+ public String toString() {
+ switch (this) {
+ case North: return "North";
+ case East: return "East";
+ case South: return "South";
+ case West: return "West";
+ default: return "Unknown direction";
+ }
+ }
+}