class program { define halfturn() { turnleft(); turnleft(); } define miraNorte() { while( notFacingNorth ) turnleft(); } define miraOeste() { while( notFacingWest ) turnleft(); } define miraSur() { while( notFacingSouth ) turnleft(); } define miraEste() { while( notFacingEast ) turnleft(); } define escogeCamino() { pickbeeper(); if( nextToABeeper ) { pickbeeper(); if( nextToABeeper ) { pickbeeper(); if( nextToABeeper ) caminaOeste(); else caminaSur(); } else caminaEste(); } else caminaNorte(); } define caminaNorte() { if( frontIsClear ) { move(); escogeCamino(); } miraNorte(); move(); } define caminaEste() { if( frontIsClear ) { move(); escogeCamino(); } miraEste(); move(); } define caminaSur() { if( frontIsClear ) { move(); escogeCamino(); } miraSur(); move(); } define caminaOeste() { if( frontIsClear ) { move(); escogeCamino(); } miraOeste(); move(); } program() { while( nextToABeeper && frontIsClear ) move(); halfturn(); if( notNextToABeeper ) move(); escogeCamino(); turnoff(); } }