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

Define-Nueva-Instruccion Deja(N) Como
Inicio
    Repetir N Veces Deja-Zumbador;
Fin;

Define-Nueva-Instruccion Recorre Como
Inicio
  Si No-Junto-a-Zumbador Entonces
   Inicio
    Si Frente-Libre y Izquierda-Bloqueada Entonces
     Inicio
         Avanza;
         Recorre;
         Si Frente-Libre Entonces Avanza;
     Fin
     Sino
      Si Izquierda-Libre Entonces
       Inicio
           Gira-Izquierda;
           Avanza;
           Recorre;
           Deja(5);
           Gira(3);
           Avanza;
       Fin
       Sino
        Si Derecha-Libre Entonces
         Inicio
             Gira(3);
             Avanza;
             Recorre;
             Deja(5);
             Gira-Izquierda;
             Avanza;
         Fin
         Sino
          Inicio
              Gira(2);
              Recorre;
              Deja(10);
              Gira(2);
              Avanza;
          Fin;
   Fin
   Sino
    Inicio
        Coge-Zumbador;
        Gira(2);
        Si Derecha-Bloqueada y Izquierda-Bloqueada Entonces Deja(10)
         Sino Deja(5);
        Avanza;
    Fin;
Fin;

    inicia-ejecucion
        Si Frente-Libre Entonces
         Inicio
             Deja-Zumbador;
             Avanza;
             Recorre;
         Fin
         Sino
          Inicio
              Si Derecha-Bloqueada y Izquierda-Bloqueada Entonces
               Inicio
                   Gira(2);
                   Si Frente-Bloqueado Entonces Deja(20);
               Fin;
          Fin;
        apagate;
    termina-ejecucion
finalizar-programa
