From acaf931651ef985e8d23e180381011284f8ecad0 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Wed, 30 Apr 2025 20:03:20 +0200
Subject: [PATCH] updating move functions in order to make the rover move the
correct directions.
---
rover.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/rover.py b/rover.py
index f314232..2d9adc9 100644
--- a/rover.py
+++ b/rover.py
@@ -88,6 +88,18 @@ class Rover:
self.x += 1
elif self.direction == 'W':
self.x -= 1
+ elif self.direction == 'NE':
+ self.x += 1
+ self.y += 1
+ elif self.direction == 'NW':
+ self.x -= 1
+ self.y += 1
+ elif self.direction == 'SE':
+ self.x += 1
+ self.y -= 1
+ elif self.direction == 'SW':
+ self.x -= 1
+ self.y -= 1
def move_backward(self):
if self.direction == 'N':
@@ -98,6 +110,18 @@ class Rover:
self.x -= 1
elif self.direction == 'W':
self.x += 1
+ elif self.direction == 'NE':
+ self.x -= 1
+ self.y -= 1
+ elif self.direction == 'NW':
+ self.x += 1
+ self.y -= 1
+ elif self.direction == 'SE':
+ self.x -= 1
+ self.y += 1
+ elif self.direction == 'SW':
+ self.x += 1
+ self.y += 1
def turn_left(self):
current_index = self.directions.index(self.direction)
@@ -265,5 +289,31 @@ class TestRover(unittest.TestCase):
control.execute_command('R')
self.assertEqual(rover.direction, 'NW')
+ # Test Sequence Processing
+ def test_sequence_processing(self):
+ rover = Rover(3, 5, 'N')
+ control = MissionControl(rover)
+
+ control.execute_command('F')
+ self.assertEqual((rover.x, rover.y), (3,6))
+ self.assertEqual(rover.direction, 'N')
+
+ control.execute_command('RF')
+ self.assertEqual((rover.x, rover.y), (4,7))
+ self.assertEqual(rover.direction, 'NE')
+
+ control.execute_command('RFF')
+ self.assertEqual((rover.x, rover.y), (6,7))
+ self.assertEqual(rover.direction, 'E')
+
+ control.execute_command('BBBBBLL')
+ self.assertEqual((rover.x, rover.y), (1,7))
+ self.assertEqual(rover.direction, 'N')
+
+ control.execute_command('BRRRFLF')
+ self.assertEqual((rover.x, rover.y), (3,5))
+ self.assertEqual(rover.direction, 'E')
+
+
if __name__ == '__main__':
unittest.main()
\ No newline at end of file
--
GitLab