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

    define-nueva-instruccion esquina como
        inicio
            sur;
            mientras frente-libre hacer
                inicio
                    avanza;
                    si frente-bloqueado entonces
                        inicio
                            oeste;
                        fin;
                fin;
                norte;
        fin;

    define-nueva-instruccion diagonal1 como
        inicio
            mientras frente-libre hacer
                inicio
                    deja-zumbador;
                    norte;
                    avanza;
                    este;
                    avanza;
                fin;
                deja-zumbador;
        fin;

    define-nueva-instruccion diagonal2 como
        inicio
            mientras frente-libre hacer
                inicio
                    norte;
                    si junto-a-zumbador entonces
                        inicio
                            oeste;
                            avanza;
                            norte;
                            avanza;
                        fin;
                    deja-zumbador;
                    avanza;
                    oeste;
                    avanza;
                fin;
                si no junto-a-zumbador entonces
                deja-zumbador;
        fin;
    inicia-ejecucion
        esquina;
        diagonal1;
        sur;
        mientras frente-libre hacer
          inicio
              avanza;
          fin;
        norte;
        diagonal2;
        apagate;
    termina-ejecucion
finalizar-programa
