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

Define-Nueva-Instruccion Pone Como
Inicio
    Mientras No-Orientado-al-Sur Hacer Gira-Izquierda;
    Mientras Frente-Libre Hacer Avanza;
    Gira(3);
    Mientras Frente-Libre Hacer Avanza;
    Gira(3);
Fin;

Define-Nueva-Instruccion Divide Como
Inicio
    Si Frente-Libre Entonces
     Inicio
         Repetir 2 Veces Avanza;
         Divide;
         Avanza;
     Fin
     Sino
      Inicio
          Gira(2);
      Fin;
Fin;

Define-Nueva-Instruccion Acomoda Como
Inicio
    Si Frente-Libre Entonces
     Inicio
         Avanza;
         Gira(3);
         Si Frente-Libre Entonces Avanza;
         Gira-Izquierda;
     Fin;
Fin;

Define-Nueva-Instruccion Acomoda1 Como
Inicio
    Si Frente-Libre Entonces
     Inicio
         Avanza;
         Gira-Izquierda;
         Si Frente-Libre Entonces Avanza;
         Gira(3);
     Fin;
Fin;

Define-Nueva-Instruccion Deja Como
Inicio
    Mientras Frente-Libre Hacer
     Inicio
         Si No-Junto-a-Zumbador Entonces Deja-Zumbador;
         Si Orientado-al-Norte Entonces Acomoda;
         Si Orientado-al-Sur Entonces Acomoda1;
         Si Frente-Bloqueado Entonces Deja-Zumbador;
     Fin;
Fin;

    inicia-ejecucion
        Pone;
        Si Frente-Libre Entonces
         Inicio
             Divide;
             Deja-Zumbador;
             Mientras Frente-Libre Hacer Avanza;
             Gira-Izquierda;
             Divide;
             Deja-Zumbador;
             Mientras Frente-Libre Hacer Avanza;
             Gira(3);
         Fin;
         Deja;
         Gira-Izquierda;
         Mientras Frente-Libre Hacer Avanza;
         Gira-Izquierda;
         Deja;
         Gira(3);
         Avanza;
         Mientras No-Junto-a-Zumbador Hacer Avanza;
         Gira(3);
         Avanza;
         Mientras Frente-Libre Hacer
          Inicio
              Si No-Junto-a-Zumbador Entonces
               Inicio
                   Deja-Zumbador;
                   Avanza;
               Fin
               Sino Avanza;
          Fin;
          Si Frente-Bloqueado Entonces Deja-Zumbador;
          Gira(2);
          Mientras Frente-Libre Hacer Avanza;
          Gira(3);
          Mientras Frente-Libre Hacer Avanza;
          Gira(3);
          Avanza;
          Mientras No-Junto-a-Zumbador Hacer Avanza;
          Gira(3);
          Avanza;
          Mientras Frente-Libre Hacer
           Inicio
               Si no-Junto-a-Zumbador Entonces
                Inicio
                    Deja-Zumbador;
                    Avanza;
                Fin
                 Sino Avanza;
           Fin;
           Si Frente-Bloqueado Entonces Deja-Zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
