Skip to content
Snippets Groups Projects
Commit acaf9316 authored by Daniel Rafeh's avatar Daniel Rafeh
Browse files

updating move functions in order to make the rover move the correct directions.

parent 9b38e1e2
No related branches found
No related tags found
No related merge requests found
Pipeline #20369 passed
...@@ -88,6 +88,18 @@ class Rover: ...@@ -88,6 +88,18 @@ class Rover:
self.x += 1 self.x += 1
elif self.direction == 'W': elif self.direction == 'W':
self.x -= 1 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): def move_backward(self):
if self.direction == 'N': if self.direction == 'N':
...@@ -98,6 +110,18 @@ class Rover: ...@@ -98,6 +110,18 @@ class Rover:
self.x -= 1 self.x -= 1
elif self.direction == 'W': elif self.direction == 'W':
self.x += 1 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): def turn_left(self):
current_index = self.directions.index(self.direction) current_index = self.directions.index(self.direction)
...@@ -265,5 +289,31 @@ class TestRover(unittest.TestCase): ...@@ -265,5 +289,31 @@ class TestRover(unittest.TestCase):
control.execute_command('R') control.execute_command('R')
self.assertEqual(rover.direction, 'NW') 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__': if __name__ == '__main__':
unittest.main() unittest.main()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment