iniciar-programa
define-nueva-instruccion gira-derecha  como
inicio
repetir 3 veces
gira-izquierda;
fin;

define-nueva-instruccion regresa como
inicio
mientras no-orientado-al-oeste hacer
gira-izquierda;
mientras frente-libre hacer
avanza;
mientras no-orientado-al-norte hacer
gira-izquierda;
mientras frente-libre y izquierda-bloqueada hacer
avanza;
gira-izquierda;
avanza;
mientras no-orientado-al-sur hacer
gira-izquierda;
mientras frente-libre hacer
avanza;
fin;
    inicia-ejecucion
        mientras no-orientado-al-este hacer
        gira-izquierda;
        avanza;

        mientras frente-libre O junto-a-zumbador  hacer
        inicio
    mientras no-orientado-al-este hacer
    gira-izquierda;
    mientras frente-libre y no-junto-a-zumbador hacer
    avanza;
    mientras  junto-a-zumbador hacer
    coge-zumbador;
    mientras frente-libre hacer
    avanza;
    mientras no-orientado-al-norte hacer
       gira-izquierda;
       mientras frente-libre y derecha-bloqueada  hacer
       avanza;
         gira-derecha;
         avanza;
         mientras no-orientado-al-sur hacer
         gira-izquierda;
         mientras frente-libre hacer
         avanza;
         si no-junto-a-zumbador entonces
         inicio
         mientras algun-zumbador-en-la-mochila hacer
        deja-zumbador;
        regresa;
        fin
        sino
        inicio
        mientras no-orientado-al-este hacer
        gira-izquierda;
        mientras frente-libre y junto-a-zumbador hacer
        avanza;
        mientras algun-zumbador-en-la-mochila hacer
        deja-zumbador;
        regresa;
           fin;
          mientras no-orientado-al-oeste hacer
          gira-izquierda;
          mientras frente-libre   hacer
          avanza;
          gira-izquierda;
         gira-izquierda;
         mientras frente-libre y no-junto-a-zumbador hacer
         avanza;
         fin;
         apagate;
    termina-ejecucion
finalizar-programa
