iniciar-programa
define-nueva-instruccion gi como inicio
gira-izquierda;
fin;
define-nueva-instruccion mv como inicio
repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion gd como inicio
repetir 3 veces gira-izquierda;
fin;
define-nueva-instruccion camino como inicio
    mientras orientado-al-sur hacer inicio
        si frente-libre entonces avanza;
        si frente-libre y derecha-bloqueada y izquierda-bloqueada entonces camino;
        si izquierda-libre entonces inicio
            gi;
            avanza;
            mientras izquierda-bloqueada y frente-libre hacer avanza;
            gd;
        fin;
        si frente-bloqueado y orientado-al-sur entonces inicio
            gd;
            mientras izquierda-bloqueada y frente-libre y orientado-al-oeste hacer avanza;
            si izquierda-libre entonces gi;
        fin;
    fin;
    deja-zumbador;
fin;
    inicia-ejecucion
    mv;
    mientras frente-libre hacer avanza;
    gd;
    mientras frente-libre hacer avanza;
    gd;
    mientras orientado-al-sur hacer camino;
    coge-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
