iniciar-programa
define-nueva-instruccion gira(x) como inicio
    repetir x veces gira-izquierda;
Fin;
define-nueva-instruccion NUEVO como inicio
    gira(2);
    Mientras fRente-libre hacer avanza;
    gira(3);
    avanza;
    gira(3);
Fin;
Define-nueva-instruccion IR como inicio
         Mientras no-orientado-al-oeste hacer gira-izquierda;
          Mientras Frente-libre hacer avanza;
          gira(3);
          avanza;
          gira(3);
 Fin;
Define-nueva-instruccion  Medir como inicio
    Si frente-libre y no-junto-a-zumbador entonces inicio
        avanza;
        Medir;
         si no-orientado-al-este entonces
          ir;
         avanza;
    Fin;
Fin;
define-nueva-instruccion UBICA como inicio
    Mientras FRente-libre hacer avanza;
    gira(1);
    avanza;
    gira(1);
Fin;
DEfine-nueva-instruccion PasosMinimos como  inicio
   Si frente-libre y no-junto-a-zumbador entonces inicio
        avanza;
         pasosMinimos;
          Si no-orientado-al-sur entonces inicio
           gira(2);
           Mientras Frente-libre hacer avanza;
           gira-izquierda;
           Mientras Frente-libre hacer avanza;
          Fin;
          Deja-zumbador;
   Fin;
Fin;
define-nueva-instruccion ACOMODA como inicio
    Si junto-a-zumbador entonces inicio
        coge-zumbador;
        Acomoda;
        Si derecha-bloqueada entonces
          Ir;
        avanza;
    Fin;
Fin;

define-nueva-instruccion REVISAR como inicio
      Mientras frente-libre hacer inicio
         Mientras no-junto-a-zumbador y Frente-libre hacer
          avanza;
         Si junto-a-zumbador entonces inicio
            Acomoda;
            gira(2);
            avanza;
            deja-zumbador;
            ubica;
         Fin;
      Fin;
Fin;
define-nueva-instruccion VERIFICA como inicio
    gira(3);
    Revisar;
    Nuevo;
    Mientras Frente-libre hacer inicio
     Mientras Frente-libre y no-junto-a-zumbador hacer avanza;
        Si junto-a-zumbador y frente-libre entonces inicio
           Avanza;
           Mientras no-junto-a-zumbador y Frente-libre hacer avanza;
           Si Junto-a-zumbador entonces inicio
              gira(2);
              avanza;
               Medir;
               si no-orientado-al-este entonces
                ir;
              deja-zumbador;
              gira(2);
               ubica;
               Mientras no-junto-a-zumbador y frente-libre hacer avanza;
               coge-zumbador;
           Fin;
        Fin;
    Fin;
    Nuevo;
    PasosMinimos;
     Si no-orientado-al-sur entonces inicio
           gira(2);
           Mientras Frente-libre hacer avanza;
           gira-izquierda;
           Mientras Frente-libre hacer avanza;
          Fin;
    deja-zumbador;
Fin;
    inicia-ejecucion
     Verifica;
        apagate;
    termina-ejecucion
finalizar-programa
 