iniciar-programa
    define-nueva-instruccion oeste como inicio
        mientras no-orientado-al-oeste hacer inicio
            gira-izquierda;
        fin;
    fin;
    define-nueva-instruccion este como inicio
        mientras no-orientado-al-este hacer inicio
            gira-izquierda;
        fin;
    fin;
    define-nueva-instruccion norte como inicio
        mientras no-orientado-al-norte hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion sur como inicio
        mientras no-orientado-al-sur hacer inicio
            gira-izquierda;
        fin;
    fin;
    define-nueva-instruccion a-tope como inicio
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
    define-nueva-instruccion ir1-1 como inicio
        oeste;
        a-tope;
    fin;
    define-nueva-instruccion come como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            come;
            deja-zumbador;
        fin
        sino inicio
            deja-zumbador;
            oeste;
            avanza;
        fin;
    fin;
    define-nueva-instruccion regresa como inicio
        este;
        avanza;
    fin;
    define-nueva-instruccion traga como inicio
        mientras junto-a-zumbador hacer inicio
            coge-zumbador;
        fin;
    fin;
    define-nueva-instruccion recursiva como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            recursiva;
            avanza;
       fin
       sino inicio
           ir1-1;
           este;
       fin;
   fin;
   define-nueva-instruccion portero como inicio
       si junto-a-zumbador entonces inicio
           come;
           regresa;
       fin
       sino inicio
           deja-zumbador;
       fin;
   fin;
   define-nueva-instruccion ancho como inicio
       si junto-a-zumbador entonces inicio
           coge-zumbador;
           ancho;
           deja-zumbador;
           avanza;
       fin
       sino inicio
           este;
           avanza;
       fin;
   fin;
   define-nueva-instruccion ancho2 como inicio
       si junto-a-zumbador entonces inicio
           coge-zumbador;
           ancho2;
           deja-zumbador;
           avanza;
       fin
       sino inicio
           ir1-1;
           este;
           mientras no-junto-a-zumbador hacer inicio
               avanza;
           fin;
       fin;
   fin;
   define-nueva-instruccion compara como inicio
       ir1-1;
       este;
       mientras no-junto-a-zumbador hacer inicio
           avanza;
       fin;
       norte;
       a-tope;
       deja-zumbador;
       sur;
       a-tope;
       este;
       avanza;
       mientras junto-a-zumbador hacer inicio
           norte;
           a-tope;
           deja-zumbador;
           sur;
           a-tope;
           este;
           avanza;
       fin;
       si no-junto-a-zumbador entonces inicio
           ir1-1;
           norte;
           a-tope;
           este;
       fin;
   fin;
   define-nueva-instruccion resuelve como inicio
       este;
       si no-junto-a-zumbador entonces inicio
           avanza;
           resuelve;
           si frente-libre entonces inicio
               avanza;
           fin;
       fin
       sino inicio
           mientras junto-a-zumbador y frente-libre hacer inicio
               avanza;
           fin;
           oeste;
           avanza;
           este;
        fin;
    fin;
    define-nueva-instruccion derecha como inicio
        si frente-libre y izquierda-bloqueada entonces inicio
            avanza;
            derecha;
            deja-zumbador;
        fin
        sino inicio
            si izquierda-libre entonces inicio
                sur;
                a-tope;
            fin
            sino inicio
            sur;
            a-tope;
            este;
            avanza;
            fin;
        fin;
    fin;
    define-nueva-instruccion gol como inicio
        si frente-libre entonces inicio
            oeste;
            a-tope;
            este;
            derecha;
            deja-zumbador;
            norte;
            avanza;
            si izquierda-libre entonces inicio
                sur;
                a-tope;
                coge-zumbador;
            fin;
        fin
        sino inicio
            este;
            a-tope;
            sur;
            a-tope;
            este;
            avanza;
            deja-zumbador;
        fin;
    fin;
    inicia-ejecucion
        este;
        avanza;
        avanza;
        traga;
        oeste;
        avanza;
        recursiva;
        oeste;
        avanza;
        portero;
        ir1-1;
        este;
        si frente-libre entonces inicio
            repetir 7 veces inicio
                avanza;
            fin;
        fin;
        si junto-a-zumbador entonces inicio
            ancho2;
        fin
        sino inicio
            oeste;
            avanza;
            ancho2;
        fin;
        compara;
        resuelve;
        gol;
        apagate;
    termina-ejecucion
finalizar-programa
