iniciar-programa
define-nueva-instruccion ireste como
inicio
   mientras no-orientado-al-sur hacer gira-izquierda;
   mientras frente-libre hacer avanza;
   gira-izquierda;
   mientras frente-libre hacer avanza;
   si junto-a-zumbador entonces coge-zumbador;

fin;

define-nueva-instruccion ireskina como
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 2 veces gira-izquierda;
fin;

define-nueva-instruccion bloques(n) como
inicio
  si junto-a-zumbador entonces
    inicio
       coge-zumbador;
       bloques(sucede(n));
    fin
  sino
    inicio
      si frente-bloqueado entonces
        inicio
          gira-izquierda;
        fin;
      repetir n veces
        inicio
           mientras no-junto-a-zumbador hacer
              inicio
                si frente-libre entonces avanza
                sino gira-izquierda;
                si orientado-al-este y no-junto-a-zumbador y frente-bloqueado entonces
                  inicio
                     si algun-zumbador-en-la-mochila entonces deja-zumbador;
                     si frente-libre entonces avanza
                     sino
                       inicio
                         gira-izquierda;
                         avanza;
                       fin;
                     mientras no-junto-a-zumbador hacer
                       inicio
                         si frente-libre entonces avanza
                         sino gira-izquierda;
                       fin;
                     si orientado-al-este y frente-bloqueado entonces
                       inicio
                         ireskina;
                          repetir n veces deja-zumbador;
                         apagate;
                        fin
                     sino ireste;   

                  fin;
              fin;
           si junto-a-zumbador entonces
              inicio
                si frente-libre entonces avanza
                sino
                   inicio
                    gira-izquierda;
                    avanza;
                 fin;
             fin;
        fin;
      repetir 2 veces gira-izquierda;
      si frente-libre entonces
        inicio
           avanza;
           repetir 2 veces gira-izquierda;
        fin
       fin;

fin;




    inicia-ejecucion
        ireskina;
        mientras junto-a-zumbador hacer bloques(0);
        apagate;
    termina-ejecucion
finalizar-programa
