iniciar-programa
   define-nueva-instruccion mediavuelta como
       inicio
          repetir 2 veces gira-izquierda;
          mientras frente-libre hacer avanza;
          repetir 2 veces gira-izquierda;
       fin;

    define-nueva-instruccion checar(x) como
        inicio
           si junto-a-zumbador entonces
               inicio
                  mientras junto-a-zumbador hacer coge-zumbador;
                  checar(sucede(x));
               fin sino
                   inicio
                      si frente-libre entonces
                          inicio
                             avanza;
                             checar(x);
                          fin sino si no-junto-a-zumbador entonces
                              inicio
                                 mediavuelta;
                                 repetir x veces deja-zumbador;
                              fin;
                   fin;
        fin;

     define-nueva-instruccion acomodar(x) como
        inicio
           si junto-a-zumbador entonces
               inicio
                  coge-zumbador;
                  acomodar(sucede(x));
               fin sino
                   inicio
                      si frente-libre entonces
                          inicio
                             avanza;
                             acomodar(0);
                             si no si-es-cero(x) entonces
                                 inicio
                                    repetir x veces avanza;
                                    deja-zumbador;
                                    mediavuelta;
                                 fin;
                          fin sino mediavuelta;
                   fin;
        fin;
    inicia-ejecucion
        acomodar(0);
        checar(0);
        apagate;
    termina-ejecucion
finalizar-programa
