class Rover: instructions = "" def __init__(self, name, initial_X, initial_Y, initial_direction, plateau): Position.checkValidDirection(self, initial_direction) self.name = name self.initial_X = initial_X self.initial_Y = initial_Y self.direction = initial_direction self.plateau = plateau self.position = Position(self.initial_X,self.initial_Y, plateau) def getPosition(self): return self.position.X(), self.position.Y() def getDirection(self): return self.direction def getName(self): return self.name def rotateLeft(self): Rover.rotate(self, True) def rotateRight(self): Rover.rotate(self, False) def rotate(self, is_left = False): direction_index = Position.valid_directions.index(self.direction) if(is_left): new_direction = (direction_index - 1) else: new_direction = (direction_index + 1) new_direction %= len(Position.valid_directions) self.direction = Position.valid_directions[new_direction] def oneStep(self): self.position = self.position.move(self.direction)