iniciar-programa
define-nueva-instruccion one(p) como inicio
si frente-libre entonces inicio
repetir 2 veces avanza;
one(sucede(p));
fin
sino inicio
repetir 2 veces gira-izquierda;
repetir p veces avanza;
fin;
fin;

define-nueva-instruccion two(a) como inicio
si no-junto-a-zumbador entonces inicio
mientras no orientado-al-norte hacer gira-izquierda;
repetir a veces deja-zumbador;
   si frente-libre entonces inicio
   avanza;
   si derecha-libre entonces inicio
   repetir 3 veces gira-izquierda;
   avanza;
   si junto-a-zumbador entonces inicio
   repetir 2 veces gira-izquierda;
  si frente-libre entonces  avanza;
   gira-izquierda;
   repetir 2 veces si frente-libre entonces  avanza;
   fin;
   fin
           sino inicio
           gira-izquierda;
           mientras frente-libre hacer avanza;
            fin;
   fin
   sino inicio
   repetir 3 veces gira-izquierda;
   si frente-libre entonces inicio
   avanza;
repetir 3 veces gira-izquierda;
mientras frente-libre hacer avanza;
fin
               sino inicio
               repetir 3 veces gira-izquierda;
              si frente-libre entonces  avanza;
               fin;
fin;
si no-junto-a-zumbador entonces inicio
two(sucede(a));
fin;
fin;
fin;


      inicia-ejecucion
      mientras no-orientado-al-norte hacer inicio
        gira-izquierda;
      fin;
      mientras frente-libre hacer avanza;
      repetir 3 veces gira-izquierda;
      one(0);
      two(1);
        apagate;
    termina-ejecucion
finalizar-programa