iniciar-programa

    define-nueva-instruccion media-vuelta como inicio
        repetir 2 veces
            gira-izquierda;
    fin;

    define-nueva-instruccion gira-derecha como inicio
        repetir 3 veces
            gira-izquierda;
    fin;

    define-nueva-instruccion avanza-hasta-topar como inicio
        mientras frente-libre hacer
            avanza;
    fin;

    define-nueva-instruccion cantidad como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            cantidad;
            deja-zumbador;
        fin
        sino
            si frente-libre entonces inicio
                avanza;
                cantidad;
            fin
            sino inicio
                media-vuelta;
                avanza-hasta-topar;
                gira-derecha;
                avanza-hasta-topar;
            fin;
    fin;

    define-nueva-instruccion viga como inicio
        coge-zumbador;
        si frente-libre entonces inicio
            avanza;
            viga;
            avanza;
        fin
        sino
            media-vuelta;
    fin;

    define-nueva-instruccion altura(flag) como inicio
        si junto-a-zumbador entonces inicio
            gira-derecha;
            viga;
            gira-derecha;
            altura(sucede(flag));
        fin
        sino
            si frente-libre entonces inicio
                avanza;
                altura(flag);
            fin
            sino
                si no(si-es-cero(flag)) entonces
                    deja-zumbador;
    fin;

    define-nueva-instruccion cuenta como inicio
        mientras frente-libre hacer inicio
            gira-izquierda;
            altura(0);
            media-vuelta;
            avanza-hasta-topar;
            gira-izquierda;
            si frente-libre entonces
                avanza;
        fin;
        gira-izquierda;
        altura(0);
    fin;

    inicia-ejecucion
        avanza;
        gira-izquierda;
        avanza-hasta-topar;
        media-vuelta;
        cuenta;
        gira-izquierda;
        cantidad;
        media-vuelta;
        avanza;
        apagate;
    termina-ejecucion
finalizar-programa
