iniciar-programa
define-nueva-instruccion casa(x) como inicio

       si orientado-al-norte entonces inicio
       gira-izquierda;
           casa(sucede(x));
       fin
       sino
       inicio
       repetir 3 veces gira-izquierda;

          mientras no(derecha-bloqueada y frente-bloqueado ) hacer inicio
         si junto-a-zumbador entonces inicio
          repetir x veces inicio
          si junto-a-zumbador entonces coge-zumbador;
          fin;
          si no-junto-a-zumbador entonces inicio
          repetir 100 veces deja-zumbador;
          apagate;
          fin
          sino
          inicio
          repetir x veces deja-zumbador;
          fin;
         fin;
         si frente-libre entonces inicio
         avanza;
         fin
         sino
         inicio
         si frente-bloqueado y derecha-libre entonces inicio
         repetir 2 veces gira-izquierda;
          mientras frente-libre hacer avanza;
          gira-izquierda;
          avanza;
          gira-izquierda;
         fin;


         fin;
         fin;
          si frente-bloqueado y derecha-bloqueada entonces inicio
            si junto-a-zumbador entonces inicio
          repetir x veces inicio
          si junto-a-zumbador entonces coge-zumbador;
          fin;
          si no-junto-a-zumbador entonces inicio
          repetir 100 veces deja-zumbador;
          apagate;
          fin
          sino
          inicio
          repetir x veces deja-zumbador;
          fin;
         fin;

         si frente-bloqueado y derecha-bloqueada entonces inicio
            mientras no-orientado-al-sur hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    repetir 3 veces gira-izquierda;
         mientras frente-libre hacer avanza;
         repetir 3 veces gira-izquierda;
         gira-izquierda;
         casa(sucede(x));
         fin;
         fin;








       fin;


fin;
    inicia-ejecucion
    si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces
    inicio
    repetir 100 veces deja-zumbador;
    apagate;
    fin;
    mientras no-orientado-al-sur hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    repetir 3 veces gira-izquierda;
         mientras frente-libre hacer avanza;
         repetir 3 veces gira-izquierda;
         mientras no(derecha-bloqueada y frente-bloqueado ) hacer inicio
         si junto-a-zumbador entonces inicio
         casa(0);
         fin;
         si frente-libre entonces inicio
         avanza;
         fin
         sino
         inicio
         si frente-bloqueado y derecha-libre entonces inicio
         repetir 2 veces gira-izquierda;
          mientras frente-libre hacer avanza;
          gira-izquierda;
          avanza;
          gira-izquierda;
         fin;
         fin;




         fin;
        apagate;
    termina-ejecucion
finalizar-programa
