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

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

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

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

define-nueva-instruccion  regresa como inicio
       orientarOeste;
       avanza;
       mientras  junto-a-zumbador hacer inicio
          avanza;
       fin;
       orientarEste;
    fin;



define-nueva-instruccion  compara(m) como inicio
   si no si-es-cero(m) entonces inicio
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          compara ( precede (m) );
          deja-zumbador;
      fin
      sino inicio
        (*mas grande el anterior*)
        repetir m veces  inicio
          deja-zumbador;
        fin;
     fin;
   fin
   sino inicio
     si junto-a-zumbador entonces inicio
        (*es mas grande el nuevo*)
     fin
     sino inicio
        (* son iguales*)
     fin;
   fin;
fin;




define-nueva-instruccion  tomaYcompara(n) como inicio
   si junto-a-zumbador entonces inicio
      coge-zumbador;
      tomaYcompara(sucede (n) );
      si algun-zumbador-en-la-mochila entonces inicio
         deja-zumbador;
      fin;
   fin
   sino inicio
   si frente-libre entonces
     avanza;
     compara(n);
     orientarOeste;
     avanza;
   fin;
fin;


define-nueva-instruccion  ordena(c) como
 inicio
    si junto-a-zumbador entonces
   inicio
       coge-zumbador;
       ordena(sucede(c));
   fin
   sino
   inicio
     si orientado-al-norte entonces
     inicio
        mientras algun-zumbador-en-la-mochila hacer
      inicio
          deja-zumbador;
      fin;
      orientarEste;
      avanza;
      avanza;
       fin;

     repetir c  veces
         inicio
      repetir c  veces
         inicio
        tomaYcompara(0);
        orientarEste;
        avanza;
        fin;
            mientras junto-a-zumbador hacer
         inicio
            coge-zumbador;
         fin;
         orientarOeste;
         avanza;
         mientras algun-zumbador-en-la-mochila hacer
         inicio
          deja-zumbador;
         fin;
        regresa;
        avanza;
       fin;
   fin;
 fin;





    inicia-ejecucion
         orientarnorte;
         ordena(0);
         orientarOeste;


        apagate;
    termina-ejecucion
finalizar-programa

 