iniciar-programa
     define-nueva-instruccion deja(n) como inicio
       si no-junto-a-zumbador entonces inicio
          avanza;
          deja(sucede(n));
       fin
       sino inicio
          si frente-bloqueado y izquierda-bloqueada y orientado-al-oeste entonces
             apagate;
          repetir n veces
             deja-zumbador;
          gira-izquierda;
          avanza;
          mientras no-orientado-al-este hacer
             gira-izquierda;
          avanza;
          mientras no-junto-a-zumbador y frente-libre hacer
             avanza;
          si frente-bloqueado y no-junto-a-zumbador entonces inicio
             repetir 2 veces
                gira-izquierda;
             mientras no-junto-a-zumbador y frente-libre hacer
                avanza;
             apagate;
          fin;
          mientras no-orientado-al-oeste hacer
             gira-izquierda;
          si junto-a-zumbador entonces
             coge-zumbador;
          deja(0);
       fin;
    fin;
    define-nueva-instruccion checa como inicio
       mientras no-orientado-al-este hacer
          gira-izquierda;
       avanza;
       mientras no-junto-a-zumbador y frente-libre hacer
          avanza;
       mientras no-orientado-al-oeste hacer
          gira-izquierda;
       si junto-a-zumbador entonces
          coge-zumbador;
       deja(0);
    fin;
    inicia-ejecucion
       mientras no-orientado-al-sur hacer
          gira-izquierda;
       avanza;
       mientras no-junto-a-zumbador hacer inicio
          deja-zumbador;
          avanza;
       fin;
       mientras no-orientado-al-norte hacer
          gira-izquierda;
       mientras junto-a-zumbador y frente-libre hacer
          avanza;
       si frente-libre entonces inicio
          mientras no-orientado-al-sur hacer
             gira-izquierda;
          avanza;
          avanza;
       fin;
       si frente-bloqueado entonces inicio
          mientras no-orientado-al-sur hacer
             gira-izquierda;
          si frente-libre entonces
             avanza;
       fin;
       checa;
        apagate;
    termina-ejecucion
finalizar-programa