iniciar-programa

  define-nueva-instruccion oeste como inicio
        mientras no orientado-al-oeste hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion este como inicio
        mientras no orientado-al-este hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion  norte como inicio
        mientras no orientado-al-norte hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion sur como inicio
        mientras no orientado-al-sur hacer inicio
            gira-izquierda;
        fin;
    fin;






    define-nueva-instruccion ir11 como inicio
          sur;
        mientras frente-libre hacer inicio
            avanza;
        fin;
          oeste;
        mientras frente-libre hacer inicio
            avanza;
        fin;
          gira-izquierda;

      fin;

     define-nueva-instruccion deja(m) como inicio
         repetir m veces inicio
             deja-zumbador;
         fin;
     fin;

       define-nueva-instruccion rodear-rectangulo(n) como inicio
        si izquierda-bloqueada y frente-libre entonces inicio
         si no-junto-a-zumbador entonces inicio
             deja-zumbador;

         fin sino inicio
            ir11;
            deja(n);
           repetir 4 veces inicio
            coge-zumbador;
           fin;
         fin;

         fin sino inicio
           gira-izquierda;

         fin;
         si frente-libre entonces inicio
          avanza;
          rodear-rectangulo(sucede(n));

         fin;

       fin;



    inicia-ejecucion
      norte;
      avanza;
      este;
      avanza;
    mientras izquierda-bloqueada y frente-libre  hacer inicio
      rodear-rectangulo(0);
    fin;



        apagate;
    termina-ejecucion
finalizar-programa
