iniciar-programa
    define-nueva-instruccion derecha como
        repetir 3 veces gira-izquierda;

    define-nueva-instruccion espiral(x) como inicio
        si frente-libre entonces inicio
              si no-junto-a-zumbador entonces inicio
                  repetir x veces deja-zumbador;
                   derecha;
                    avanza;
                   espiral(sucede(x));
              fin
              sino inicio
                  repetir 2 veces gira-izquierda;
                   avanza;
                    derecha;
                     si frente-libre entonces avanza;
                     si junto-a-zumbador y frente-bloqueado y izquierda-bloqueada
                     entonces apagate;
                     si no-junto-a-zumbador entonces repetir x veces deja-zumbador;
                       derecha;
                       si frente-libre entonces avanza;
                      espiral(sucede(x));
              fin;
         fin;
    fin;

    inicia-ejecucion
        mientras no-orientado-al-norte hacer gira-izquierda;
         deja-zumbador;
          si frente-libre entonces inicio
              avanza;
               repetir 2 veces deja-zumbador;
                derecha;
                 si frente-libre entonces avanza;
                  derecha;
                  espiral(3);
          fin;
            apagate;
    termina-ejecucion
finalizar-programa
