iniciar-programa

define-nueva-instruccion gira(q) como repetir q veces gira-izquierda;

define-nueva-instruccion derecha(x) como inicio
   repetir x veces inicio
       si derecha-libre entonces inicio
            gira(3);
            avanza;
        fin sino inicio
            mientras frente-bloqueado hacer gira-izquierda;
            avanza;
        fin;
        si junto-a-zumbador entonces apagate;
    fin;
fin;
define-nueva-instruccion izquierda(x) como inicio
    repetir x veces inicio
        si izquierda-libre entonces inicio
            gira(1);
            avanza;
        fin sino inicio
            mientras frente-bloqueado hacer gira(3);
            avanza;
        fin;
        si junto-a-zumbador entonces apagate;
    fin;
fin;

define-nueva-instruccion mediavuelta como inicio
    gira(2);
    avanza;
fin;

    inicia-ejecucion
     si junto-a-zumbador entonces apagate;
     mientras izquierda-libre hacer gira-izquierda;
     mientras derecha-libre hacer gira-izquierda;
     derecha(4);
     mediavuelta;
     izquierda(19);
     mediavuelta;

     derecha(63);
     mediavuelta;
     izquierda(175);
     mediavuelta;

     derecha(447);
     mediavuelta;
     izquierda(1087);
     mediavuelta;

     derecha(2559);
     mediavuelta;
     izquierda(5767);
     mediavuelta;

     derecha(12981);
     mediavuelta;
     izquierda(28855);
     mediavuelta;

     derecha(63495);
     mediavuelta;
     izquierda(138559);
     mediavuelta;
        apagate;
    termina-ejecucion
finalizar-programa
