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 arcoiris como
    inicio
        mientras junto-a-zumbador hacer
        inicio
            mientras junto-a-zumbador y frente-libre hacer avanza;
            si no-junto-a-zumbador entonces
            inicio
                repetir 2 veces gira-izquierda;
                avanza;
                gira-izquierda;
                si frente-bloqueado entonces
                inicio
                    repetir 2 veces gira-izquierda;
                    avanza;
                    arcoiris;
                fin;
            fin;
            si frente-bloqueado entonces repetir 3 veces gira-izquierda;
            si frente-libre entonces
            inicio
                avanza;
                si junto-a-zumbador entonces arcoiris
                sino inicio
                    repetir 2 veces gira-izquierda;
                    avanza;
                   fin;
            fin;
            si frente-bloqueado entonces repetir 2 veces gira-izquierda;
            si frente-bloqueado entonces
            inicio
                repetir 3 veces gira-izquierda;
                apagate;
            fin;
            si frente-libre entonces avanza sino repetir 3 veces gira-izquierda;
            si junto-a-zumbador entonces arcoiris
                sino inicio
                    repetir 2 veces gira-izquierda;
                    avanza;
                    gira-izquierda;
                    apagate;
                   fin;
          fin;
      fin;
     define-nueva-instruccion entrada como
     inicio
        mientras frente-bloqueado hacer gira-izquierda;
        mientras frente-libre hacer
        inicio
         si frente-libre entonces avanza;
         si no-junto-a-zumbador entonces repetir 2 veces gira-izquierda
         sino sal-de-instruccion;
         avanza;
         gira-izquierda;
         mientras frente-bloqueado hacer repetir 3 veces gira-izquierda;
         fin;

       fin;




   inicia-ejecucion
        entrada;
        arcoiris;
        apagate;
    termina-ejecucion
finalizar-programa
