iniciar-programa
define-nueva-instruccion regresafin como
inicio
   mientras no-orientado-al-oeste hacer gira-izquierda;
   mientras no-junto-a-zumbador y frente-libre hacer avanza;
   si frente-bloqueado y no-junto-a-zumbador entonces
   inicio
         gira-izquierda;
         si frente-libre entonces avanza;
         gira-izquierda;
         mientras no-junto-a-zumbador hacer avanza;
        gira-izquierda;
        apagate;
      fin
      sino
      inicio
         repetir 3 veces gira-izquierda;
          si frente-libre entonces avanza;
         gira-izquierda;
         regresafin;
       fin;
 fin;

define-nueva-instruccion regresa como
inicio
   mientras no-orientado-al-oeste hacer gira-izquierda;
   mientras no-junto-a-zumbador y frente-libre hacer avanza;
   si frente-bloqueado y no-junto-a-zumbador entonces
   inicio
        gira-izquierda;
        si frente-libre entonces avanza;
        gira-izquierda;
        mientras no-junto-a-zumbador hacer avanza;
        avanza;
        gira-izquierda;
        deja-zumbador;
      fin
      sino
      inicio
         repetir 3 veces gira-izquierda;
          si frente-libre entonces avanza;
         gira-izquierda;
         regresa;
       fin;
 fin;


define-nueva-instruccion construye como
inicio
    si frente-libre entonces avanza;
    deja-zumbador;
    repetir 3 veces gira-izquierda;
    si frente-libre entonces avanza;
    repetir 3 veces gira-izquierda;
    mientras frente-libre hacer
    inicio
       avanza;
       repetir 3 veces gira-izquierda;
       si frente-libre entonces avanza;
       si no-junto-a-zumbador entonces deja-zumbador;
       repetir 2 veces gira-izquierda;
       si frente-libre entonces avanza;
       repetir 3 veces gira-izquierda;
       deja-zumbador;
       gira-izquierda;
       si frente-libre entonces avanza;
       repetir 3 veces gira-izquierda;
     fin;
     si algun-zumbador-en-la-mochila entonces
     inicio
        regresa;
        construye;
      fin
      sino
      regresafin;
    fin;
    inicia-ejecucion
      mientras no-orientado-al-este hacer gira-izquierda;
    repetir 25 veces
    inicio
       repetir 25 veces
      inicio
          si junto-a-zumbador entonces coge-zumbador;
         avanza;
        fin;
        gira-izquierda;
        avanza;
        gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 2 veces gira-izquierda;
      fin;
      repetir 3 veces gira-izquierda;
      mientras frente-libre hacer avanza;
      gira-izquierda;
      si algun-zumbador-en-la-mochila entonces deja-zumbador
      sino apagate;
      si algun-zumbador-en-la-mochila entonces
      inicio
          avanza;
          deja-zumbador;
          gira-izquierda;
          construye;
        fin;

        apagate;
    termina-ejecucion
finalizar-programa

