Monty Karel Super Mixin

To add a set of additional capabilities to your basic UrRobot (or other classes) a Mixin Class helps. This class doesn't have UrRobot as a superclass, but is included in the list of inherited classes in your own robot classes such as

class StairClimber (UrRobot, SuperMixin): ...

This new class should be in its own module and imported as needed in your coding projects. It doesn't need a constructor. You can update this class as you learn more, so that it becomes increasingly useful. But, it should probably only have general purpose methods defining things that are commonly used, leaving more specific things to subclasses. For now, however, it should only use robot actions known by UrRobots.

class SuperMixin:

    def turnRight(self):
        self.turnLeft()
        self.turnLeft()
        self.turnLeft()

    def turnAround(self):
        self.turnLeft()
        self.turnLeft()

Other useful actions are

backUp - keeping the original direction at the end, but moving back one corner.

slideLeft - moving one corner to the left, keeping the original direction.

slideRight - moving one corner to the right.

Note in your documentation that some of these can fail. For example, a robot at the origin may not be able to backUp.