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 al-frente como mientras frente-libre hacer avanza;
  define-nueva-instruccion buscar como inicio
      si junto-a-zumbador entonces inicio
          coge-zumbador;
          si junto-a-zumbador entonces inicio
              coge-zumbador;
              si junto-a-zumbador entonces inicio
                  repetir 2 veces deja-zumbador;
              fin sino inicio
                  repetir 2 veces deja-zumbador;
              fin;
          fin sino inicio
              deja-zumbador;
          fin;
      fin sino inicio

          deja-zumbador;
          sur;
          si frente-libre entonces inicio
              avanza;
              buscar;
              norte;
              avanza;
          fin;
          oeste;
          si frente-libre entonces inicio
              avanza;
              buscar;
              este;
              avanza;
          fin;
      fin;
  fin;
  define-nueva-instruccion incrementa2 como inicio
      si frente-libre entonces inicio
          avanzA;
          incrementa2;
          avanza;
      fin sino inicio
          deja-zumbador;
          sur;
      fin;
  fin;
  define-nueva-instruccion incrementa como inicio
      si frente-libre entonces inicio
          avanza;
          incrementa;
          avanza;
      fin sino inicio
          norte;
          incrementa2;
          oeste;
      fin;
  fin;
  define-nueva-instruccion cuenta-unos como inicio
      si junto-a-zumbador entonces inicio
          coge-zumbador;
          si junto-a-zumbador entonces inicio
              coge-zumbador;
              si junto-a-zumbador entonces inicio
                  repetir 2 veces deja-zumbador;
              fin sino inicio
                  repetir 2 veces deja-zumbador;
              fin;
          fin sino inicio
              este;
              incrementa;
              sur;
              si frente-libre entonces inicio
                  avanza;
                  cuenta-unos;
                  norte;
                  avanza;
              fin;
              oeste;
              si frente-libre entonces inicio
                  avanza;
                  cuenta-unos;
                  este;
                  avanzA;
              fin;
          fin;
      fin;
  fin;
  define-nueva-instruccion esq-sup-der como inicio
      norte;
      al-frente;
      este;
      al-frente;
  fin;
  define-nueva-instruccion revisa-dos como inicio
      si junto-a-zumbador entonces inicio
          coge-zumbador;
          si junto-a-zumbador entonces inicio
              coge-zumbador;
          fin sino inicio
              deja-zumbador;
          fin;
      fin;
  fin;
    inicia-ejecucion
        esq-sup-der;
        buscar;
        revisa-dos;
        cuenta-unos;
        apagate;
    termina-ejecucion
finalizar-programa
