iniciar-programa
define-nueva-instruccion derecha como inicio
  repetir 3 veces inicio
    gira-izquierda;
  fin;
fin;
define-nueva-instruccion vuelta como inicio
  repetir 2 veces inicio
    gira-izquierda;
  fin;
fin;
    inicia-ejecucion
    si junto-a-zumbador entonces inicio
      avanza;
        si no-junto-a-zumbador entonces inicio
          vuelta;
          si no-junto-a-zumbador entonces inicio
             avanza;
          fin;
          si no-junto-a-zumbador entonces inicio
            avanza;
          fin;
        fin;
     fin;
    mientras junto-a-zumbador y frente-libre hacer inicio
       avanza;
          si no-junto-a-zumbador y derecha-libre entonces inicio
            vuelta;
            avanza;
            gira-izquierda;
            avanza;
              si no-junto-a-zumbador entonces inicio
                vuelta;
                avanza;
                avanza;
              fin;
          fin;
  si frente-bloqueado y junto-a-zumbador entonces inicio
       derecha;
       avanza;
     fin;
    fin;
    si no-junto-a-zumbador entonces inicio
       vuelta;
       avanza;
     fin;
     (* Detalles con una condicion de inicio *)
si derecha-bloqueada y junto-a-zumbador y frente-libre y orientado-al-sur entonces inicio
    repetir 2 veces inicio
       avanza;
    fin;
    gira-izquierda;
    repetir 3 veces inicio
      avanza;
    fin;
fin;
        apagate;
    termina-ejecucion
finalizar-programa
