class Mover : Robot { void getAroundWall(); void getAround(); Boolean rightIsBlocked(); void turnRight(); }; void Mover :: turnRight() { loop(3) { turnLeft(); } // turn right } Boolean Mover :: rightIsBlocked() { turnRight(); if(frontIsClear() ) { turnLeft(); return false; } // not blocked else { turnLeft(); return true; } // blocked! } void Mover :: getAroundWall() { turnLeft(); getAround(); turnLeft(); } void Mover :: getAround() { if(rightIsBlocked()) { move(); getAround(); move(); } else { turnRight(); move(); turnRight(); } } task { Mover Alex(6, 8, North, 0); Alex.getAroundWall(); }