iniciar-programa
Define-Nueva-Instruccion Gira(N) Como
Inicio
    Repetir N Veces Gira-Izquierda;
Fin;

Define-Nueva-Instruccion Acomoda Como
Inicio
    Mientras Junto-a-Zumbador Hacer Coge-Zumbador;
    Mientras No Orientado-al-Norte Hacer Gira-Izquierda;
    Avanza;
    Mientras Algun-Zumbador-en-la-Mochila Hacer Deja-Zumbador;
    Gira(2);
    Avanza;
    Gira-Izquierda;
    Repetir 2 Veces Avanza;
Fin;

Define-Nueva-Instruccion Ordena Como
Inicio
    Mientras Algun-Zumbador-en-la-Mochila Hacer
     Inicio
       Gira(3);
       Avanza;
       Gira(3);
       Repetir 2 Veces Avanza;
       Mientras Junto-a-Zumbador Hacer Avanza;
       Gira(2);
       Avanza;

       Mientras Algun-Zumbador-en-la-Mochila Hacer
        Inicio
            Deja-Zumbador;
            Avanza;
        Fin;

        Gira(2);
        Avanza;
        Mientras Junto-a-Zumbador Hacer Avanza;
        Gira(3);
        Avanza;
        Gira(3);
        Avanza;

        Mientras Frente-Libre Hacer
         Inicio
             Si Junto-a-Zumbador Entonces
              Inicio
                  Coge-Zumbador;
                  Avanza;
              Fin
              Sino Avanza;
         Fin;
     Fin;
Fin;

Define-Nueva-Instruccion Base Como
Inicio
    Mientras Junto-a-Zumbador Hacer
     Inicio
         Coge-Zumbador;
         Avanza;
     Fin;
     Gira-Izquierda;
     Avanza;
     Gira-Izquierda;
     Avanza;

     Mientras Algun-Zumbador-en-la-Mochila Hacer
      Inicio
          Deja-Zumbador;
          Avanza;
      Fin;
      Gira(2);
      Avanza;
      Mientras Junto-a-Zumbador Hacer Avanza;
      Gira(3);
      Avanza;
      Gira(3);
      Avanza;

      Mientras Frente-Libre Hacer
       Inicio
           Si Junto-a-Zumbador Entonces
            Inicio
                Coge-Zumbador;
                Avanza;
            Fin
             Sino Avanza;
       Fin;

      Ordena;

Fin;

Define-Nueva-Instruccion Cuenta(N) Como
Inicio
    Si Junto-a-Zumbador Entonces
    Mientras Junto-a-Zumbador Hacer Coge-Zumbador;

    Mientras Algun-Zumbador-en-la-Mochila Hacer
     Inicio
         Deja-Zumbador;
         Repetir 2 Veces Avanza;

     Fin;
Fin;

Define-Nueva-Instruccion Termina Como
Inicio
    Gira(3);
    Avanza;
    Gira(3);
    Repetir 2 Veces Avanza;

    Mientras Junto-a-Zumbador Hacer
     Inicio
         Mientras Junto-a-Zumbador Hacer Coge-Zumbador;
         Gira(3);
         Avanza;
         Mientras Algun-Zumbador-en-la-Mochila Hacer Deja-Zumbador;
         Gira(2);
         Avanza;
         Gira(3);
         Avanza;


     Fin;
Fin;

    inicia-ejecucion
        Acomoda;
        Base;
        Termina;
        apagate;
    termina-ejecucion
finalizar-programa
