From 04eb7f87bdd5e3ec2c0922234e8dc7cbc4f701be Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Wed, 30 Apr 2025 17:04:22 +0200
Subject: [PATCH] Base Model Creation - add all classes incl. Mars, Map, Rover,
 Mission Control, Plateau in order to have a basic concept of the
 implementation

---
 rover.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/rover.py b/rover.py
index 4e2e777..4a846d2 100644
--- a/rover.py
+++ b/rover.py
@@ -55,4 +55,53 @@
 
 # Bonus: Kombination mehrerer Features
 # Wenn der Rover die Sequenz "FFRBFRL" erhält, aber nach dem "R" auf ein Hindernis trifft, bleibt er stehen und ignoriert "BFRL".
-# Wenn der Rover bei (15,15) steht, Richtung Nord-Ost, und "FF" erhält, wird nach dem ersten Schritt gestoppt (Plateau-Rand), Position bei (16,16) erreicht nicht – Rover bleibt bei (15,15).
\ No newline at end of file
+# Wenn der Rover bei (15,15) steht, Richtung Nord-Ost, und "FF" erhält, wird nach dem ersten Schritt gestoppt (Plateau-Rand), Position bei (16,16) erreicht nicht – Rover bleibt bei (15,15).
+
+import unittest
+from abc import ABC, abstractmethod
+
+class Plateau:
+    def __init__(self, size_x:int, size_y:int):
+        self.size_x = size_x
+        self.size_y = size_y
+        self.grid = [[None for _ in range(size_x)] for _ in range(size_y)]
+        self.obstacles = []
+
+    def move(self, x:int, y:int):
+        if (x, y) in self.obstacles:
+            raise Exception("Obstacle detected!")
+        print(f"Rover moved to ({x}, {y})")
+
+class Rover:
+    def __init__(self, x=0, y=0, direction='N'):
+        self.x = x
+        self.y = y
+        self.direction = direction
+
+
+    def drive(self, cmd: str) -> str:
+        pass
+
+
+class Mars:
+    def __init__(self, plateau:Plateau, rover:Rover):
+        self.plateau = plateau
+        self.rover = rover
+        self.rover_x = 0
+        self.rover_y = 0
+
+    def drive(self, cmd: str) -> str:
+        return self.rover.drive(cmd)
+
+
+class Map:
+    def __init__(self):
+        self.map = []
+
+    def move(self, x:int, y:int):
+        print(f"Rover moved to ({x}, {y})")
+
+
+class MissionControl:
+    def __init__(self):
+        pass
\ No newline at end of file
-- 
GitLab