iniciar-programa
    define-nueva-instruccion gira(n) como
    inicio
          repetir n veces gira-izquierda;
    fin;
    define-nueva-instruccion zumbador como
    inicio
          si junto-a-zumbador entonces
          coge-zumbador

    fin;
     define-nueva-instruccion checa como
     inicio
           si junto-a-zumbador entonces
         inicio
               coge-zumbador;
                    si junto-a-zumbador entonces
                    inicio
                          coge-zumbador;
                          si junto-a-zumbador entonces
                          inicio
                                coge-zumbador;
                                repetir 3 veces deja-zumbador;
                                apagate;
                         fin
                    sino
                         repetir 2 veces deja-zumbador;
                 fin
        sino
                       deja-zumbador;


         fin;
     fin;
     define-nueva-instruccion ubica como
     inicio
          mientras no orientado-al-oeste hacer
           gira(1);
           mientras frente-libre hacer
           inicio
           avanza;
           fin;
           si frente-bloqueado entonces
           gira(1);
           mientras frente-libre hacer
           inicio
           avanza;
           fin;
           si frente-bloqueado y orientado-al-sur entonces
           gira(2);


     fin;
    inicia-ejecucion
             ubica;
            checa;
    mientras frente-libre hacer
    inicio
          avanza;



           checa;
          si frente-bloqueado y orientado-al-norte entonces
          inicio
               gira(3);
               avanza;
               checa;
               gira(3);
          fin;
          si frente-bloqueado y orientado-al-sur entonces
          inicio
                gira(1);
                avanza;
                checa;
                gira(1);
          fin;


        fin;

        apagate;
    termina-ejecucion
finalizar-programa
