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

Define-Nueva-Instruccion Vende Como
Inicio
 Mientras Junto-a-Zumbador Hacer
  Inicio
    Mientras Algun-Zumbador-en-la-Mochila y Junto-a-Zumbador Hacer
     Inicio
         Si Junto-a-Zumbador Entonces
          Inicio
              Coge-Zumbador;
              Gira-Izquierda;
              Avanza;
              Repetir 2 Veces Deja-Zumbador;
              Gira(2);
              Avanza;
              Gira-Izquierda;
          Fin
          Sino Avanza;
         Si No Junto-a-Zumbador y Algun-Zumbador-en-la-Mochila Entonces Avanza;
     Fin;
     Si Junto-a-Zumbador y Ningun-Zumbador-en-la-Mochila Entonces
      Inicio
          Gira(2);
          Si Frente-Libre Entonces
           Inicio
               Avanza;
               Gira(2);
           Fin
           Sino
            Inicio
                sal-de-instruccion;
            Fin;
      Fin;
   Fin;
Fin;

Define-Nueva-Instruccion Acomoda Como
Inicio
    Si Frente-Libre Entonces Avanza
     Sino Sal-de-instruccion;
    Mientras Frente-Libre y Junto-a-Zumbador Hacer Avanza;
    Si Frente-Bloqueado Entonces Gira(2)
     Sino
      Inicio
          Gira(2);
          Avanza;
      Fin;
Fin;

Define-Nueva-Instruccion Recorre Como
Inicio
    Si Junto-a-Zumbador Entonces
     Inicio
         Coge-Zumbador;
         Si Frente-Libre Entonces Recorre
          Sino
           Inicio
               Deja-Zumbador;
               sal-de-instruccion;
           Fin;
         Deja-Zumbador;
     Fin
     Sino
      Inicio
          Avanza;
          Si Junto-a-Zumbador Entonces
           Inicio
               Recorre;
               Avanza;
           Fin
           Sino
            Inicio
                Mientras Frente-Libre Hacer Avanza;
                Gira(2);
            Fin;
      Fin;
Fin;

    inicia-ejecucion
        Vende;
        Acomoda;
        Recorre;
        apagate;
    termina-ejecucion
finalizar-programa
