iniciar-programa
    define-nueva-instruccion prueba como
    inicio
    si junto-a-zumbador entonces
    coge-zumbador;
    si junto-a-zumbador entonces
    coge-zumbador;
        si no-junto-a-zumbador entonces
        inicio
        deja-zumbador;
        deja-zumbador;
        mientras no-orientado-al-sur hacer
        gira-izquierda;
        si frente-libre entonces
        inicio
            avanza;
            si junto-a-zumbador entonces
            inicio
                mientras no-orientado-al-norte hacer
                gira-izquierda;
                SI FRENTE-LIBRE ENTONCES
                avanza;
                mientras no-orientado-al-este hacer
                gira-izquierda;
                si frente-libre entonces
                    inicio
                    avanza;
                    deja-zumbador;
                    fin;

            fin
        SINO
        INICIO
        MIENTRAS NO-ORIENTADO-AL-NORTE HACER
        GIRA-IZQUIERDA;
        SI FRENTE-LIBRE ENTONCES
        AVANZA;


        FIN;
    fin;
    fin;
    fin;

    define-nueva-instruccion recoge(n) como
    inicio
    si junto-a-zumbador entonces
    inicio
    coge-zumbador;
    recoge(sucede(n));
    fin;
    si no si-es-cero(n) y frente-libre entonces
    inicio
    repetir n veces
    inicio
    si no-junto-a-zumbador entonces
    repetir n veces
   deja-zumbador;
    si frente-libre entonces
    avanza;
    fin;

    mientras no-orientado-al-este hacer
    gira-izquierda;
    si( frente-libre y izquierda-libre) o no-junto-a-zumbador entonces
    inicio
    si frente-libre entonces
    inicio
    avanza;
    mientras no-orientado-al-sur hacer
    gira-izquierda;
    si frente-libre entonces
    avanza;
    fin;
    fin;
    mientras no-orientado-al-norte hacer
    gira-izquierda;

    fin;
    fin;

    define-nueva-instruccion abajo(n) como
    inicio
    mientras no-orientado-al-este hacer
    gira-izquierda;
    si frente-libre entonces
    avanza;
    mientras no-orientado-al-sur hacer
    gira-izquierda;
    repetir n veces
        inicio
        si no-junto-a-zumbador entonces
        repetir n veces
        deja-zumbador;
        si frente-libre entonces
        avanza;
        fin;
        si no-junto-a-zumbador entonces
            inicio
            gira-izquierda;
            gira-izquierda;
            avanza;
            abajo(sucede(n));

            fin;

    fin;

    define-nueva-instruccion mide como
    inicio
    si frente-libre entonces
    inicio
    avanza;
    mide;
    deja-zumbador;
    fin
    sino
    inicio
    mientras junto-a-zumbador hacer
    coge-zumbador;
    fin;
    fin;


    inicia-ejecucion
    mientras no-orientado-al-norte hacer
    gira-izquierda;
    recoge(0);
        prueba;
    si junto-a-zumbador entonces
        inicio
        mientras no-orientado-al-este hacer
        gira-izquierda;
        si frente-libre entonces
        inicio
        avanza;
        deja-zumbador;
        fin;
        fin
    sino
        deja-zumbador;
        mientras no-orientado-al-sur hacer
        gira-izquierda;
        si frente-libre entonces
        abajo(2);
    mientras no-orientado-al-sur hacer
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    mientras no-orientado-al-oeste hacer
    gira-izquierda;
    mide;
    deja-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
