iniciar-programa
define-nueva-instruccion norte como inicio
   mientras no orientado-al-norte hacer gira-izquierda;
fin;
define-nueva-instruccion sur como inicio
mientras no orientado-al-sur hacer gira-izquierda;
fin;
define-nueva-instruccion este como inicio
mientras no orientado-al-este hacer gira-izquierda;
fin;
define-nueva-instruccion oeste como inicio
mientras no orientado-al-oeste hacer gira-izquierda;
fin;
define-nueva-instruccion marca como inicio
    si no junto-a-zumbador entonces inicio
       deja-zumbador;
         norte;
         si frente-libre entonces inicio
             avanza;
             marca;
            sur;
            avanza;
         fin;
          sur;
         si frente-libre entonces inicio
             avanza;
              marca;
              norte;
                avanza
         fin;
              este;
         si frente-libre entonces inicio
              avanza;
              marca;
                oeste;
                avanza;
         fin;
              oeste;
         si frente-libre entonces inicio
              avanza;
             marca;
              este;
              avanza;
         fin;
    fin;
fin;
define-nueva-instruccion ir11 como inicio
     sur;
     mientras frente-libre hacer avanza;
     oeste;
     mientras frente-libre hacer avanza;
     este;
fin;
define-nueva-instruccion camina como inicio
  si frente-libre entonces inicio
    avanza;
  fin  sino inicio
  si orientado-al-oeste  entonces inicio
     norte;
     si frente-libre entonces inicio
          avanza;
          este;
     fin;
  fin sino inicio
     norte;
     si frente-libre entonces inicio
        avanza;
        oeste;
     fin;
  fin;
  fin;
fin;
    inicia-ejecucion
    ir11;
    marca;
    oeste;
      mientras no orientado-al-norte hacer inicio
      mientras junto-a-zumbador y no orientado-al-norte hacer inicio
          camina;
      fin;
      si no junto-a-zumbador entonces inicio
        marca;
        ir11;
        deja-zumbador;
      fin;
      fin;
        ir11;
        coge-zumbador;

        apagate;
    termina-ejecucion
finalizar-programa
