iniciar-programa
define-nueva-instruccion norte como mientras no orientado-al-norte hacer gira-izquierda;
define-nueva-instruccion sur como mientras no orientado-al-sur hacer gira-izquierda;
define-nueva-instruccion este como mientras no orientado-al-este hacer gira-izquierda;
define-nueva-instruccion oeste como mientras no orientado-al-oeste hacer gira-izquierda;

   define-nueva-instruccion cuadrado como
        inicio
        coge-zumbador;

             repetir 20 veces deja-zumbador;
             apagate;
        fin;

    Define-nueva-instruccion ezquina como
        inicio
           si izquierda-bloqueada entonces
           inicio
               mientras frente-libre y izquierda-bloqueada  hacer avanza;
               si junto-a-zumbador y frente-bloqueado y izquierda-Bloqueada entonces
                  inicio
                     coge-zumbador;
                     si junto-a-zumbador entonces deja-zumbador;
                     si no junto-a-zumbador entonces
                     inicio

                        repetir 5 veces deja-zumbador;
                        si izquierda-bloqueada y derecha-bloqueada y frente-bloqueado entonces
                         repetir 5 veces deja-zumbador;

                        apagate;
                     fin;
                  fin;
              repetir 5 veces deja-zumbador;


              si frente-bloqueado y izquierda-bloqueada entonces
              repetir 3 veces gira-izquierda;

               mientras frente-libre y izquierda-bloqueada y no junto-a-zumbador hacer avanza;

                  inicio
                      si izquierda-libre entonces gira-izquierda;
                      si frente-libre y izquierda-libre entonces avanza;
                  fin;


              ezquina;

           fin;
        fin;

    inicia-ejecucion

    deja-zumbador;
     si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces
    cuadrado;
    si frente-bloqueado entonces este;


        ezquina;

        apagate;
    termina-ejecucion
finalizar-programa
