iniciar-programa
    define-nueva-instruccion linea como inicio
        si frente-libre entonces inicio
            avanza;
        si frente-libre entonces inicio
            avanza;
                linea;
      fin sino inicio
            gira-izquierda;gira-izquierda;
      fin;
      fin sino inicio
            gira-izquierda;gira-izquierda;
      fin;
        avanza;
    fin;
    define-nueva-instruccion recta como inicio
    avanza;
       linea;
            gira-izquierda; gira-izquierda;  gira-izquierda;
            mientras frente-libre hacer inicio
                si junto-a-zumbador entonces
                    coge-zumbador;
                    deja-zumbador;
                avanza;
            fin;

        deja-zumbador;
    fin;
    define-nueva-instruccion tache como inicio
        mientras frente-libre hacer
            avanza;
            gira-izquierda;gira-izquierda;
     mientras frente-libre hacer inicio
            si junto-a-zumbador entonces
            coge-zumbador;
            deja-zumbador;
            avanza;
            gira-izquierda; gira-izquierda;  gira-izquierda;
            avanza;
            gira-izquierda;
        fin;
        gira-izquierda;
        deja-zumbador;
    fin;
    inicia-ejecucion
        mientras no-orientado-al-oeste hacer
            gira-izquierda;
        mientras frente-libre hacer
            avanza;
        gira-izquierda;
       tache;
       tache;
       recta;
            gira-izquierda;
        mientras frente-libre hacer
            avanza;

            gira-izquierda;
        recta;
        apagate;
    termina-ejecucion
finalizar-programa
