iniciar-programa

define-nueva-instruccion gira(n) como inicio
repetir n veces gira-izquierda;
fin;

define-nueva-instruccion checar como inicio
repetir 5 veces coge-zumbador;
    si junto-a-zumbador entonces inicio
    coge-zumbador;
        si junto-a-zumbador entonces inicio
        repetir 4 veces coge-zumbador;
            si junto-a-zumbador entonces inicio
            repetir 9 veces deja-zumbador;
            apagate;
            fin sino inicio
            repetir 10 veces deja-zumbador;
            fin;
        fin sino inicio
        repetir 5 veces deja-zumbador;
        apagate;
        fin;
    fin sino inicio
    repetir 5 veces deja-zumbador;
    fin;
fin;

define-nueva-instruccion zaz como inicio
repetir 4 veces deja-zumbador;
    si algun-zumbador-en-la-mochila entonces inicio
    deja-zumbador;
    fin sino inicio
    apagate;
    fin;
si orientado-al-oeste y frente-bloqueado entonces checar;
fin;

    inicia-ejecucion

    deja-zumbador;
    mientras izquierda-bloqueada hacer inicio
        mientras frente-libre y izquierda-bloqueada hacer avanza;

            si frente-bloqueado y izquierda-bloqueada entonces inicio
            zaz;
            gira(3);
            mientras frente-libre y izquierda-bloqueada hacer avanza;
            fin;

            si izquierda-libre entonces inicio
            zaz;
            gira(1);
            mientras frente-libre y izquierda-libre hacer avanza;
            fin;


    fin;

        apagate;
    termina-ejecucion
finalizar-programa
