iniciar-programa

define-prototipo-instruccion contar(a);

define-nueva-instruccion gira(z) como repetir z veces gira-izquierda;

define-nueva-instruccion dibujar_panorama(a) como inicio
    si frente-libre o junto-a-zumbador entonces inicio
        repetir a veces si junto-a-zumbador entonces coge-zumbador;
        si junto-a-zumbador entonces inicio
            repetir a veces deja-zumbador;
            contar(0);
        fin sino inicio
            si frente-libre entonces avanza;
            dibujar_panorama(a);
        fin;
    fin sino inicio
        gira(2);
        mientras frente-libre hacer avanza;
        gira(2);
        repetir a veces inicio
            deja-zumbador;
            si frente-libre entonces avanza;
        fin;
    fin;
fin;

define-nueva-instruccion contar(a) como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        contar(sucede(a));
    fin sino inicio
        dibujar_panorama(a);
    fin;
fin;

define-nueva-instruccion resolver como inicio
    mientras orientado-al-norte hacer inicio
        dibujar_panorama(0);
        gira(2);
        mientras frente-libre hacer avanza;
        si izquierda-libre entonces inicio
            gira(1);
            avanza;
            gira(1);
        fin sino gira(3);
    fin;
fin;

    inicia-ejecucion

    resolver;

        apagate;
    termina-ejecucion
finalizar-programa
