iniciar-programa
  define-nueva-instruccion gd como
  repetir 3 veces gira-izquierda;
  define-nueva-instruccion mv como
  repetir 2 veces gira-izquierda;
  define-nueva-instruccion pasa como
  inicio
   si frente-libre entonces
   avanza
   sino
   inicio
    mv;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
   fin;
  fin;
  define-nueva-instruccion pasa2 como
  inicio
   si frente-libre entonces
   avanza
   sino
   inicio
    mv;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    si frente-libre entonces
    avanza;
    si frente-libre entonces
    avanza;
    gira-izquierda;
   fin;
  fin;
  define-nueva-instruccion deja como
  inicio
   repetir 4 veces
   inicio
    deja-zumbador;
    avanza;
    gd;
   fin;
  fin;
  define-nueva-instruccion checa como
  inicio
   si no (frente-bloqueado y derecha-bloqueada) entonces
   inicio
    si junto-a-zumbador entonces
    inicio
     pasa;
     checa;
     deja;
     avanza;
     pasa2;
    fin
    sino
    inicio
     pasa;
     checa;
     avanza;
     pasa2;
    fin;
   fin
   sino
   inicio
    si junto-a-zumbador entonces
    inicio
     mv;
     mientras frente-libre hacer avanza;
     gd;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     repetir 2 veces
     inicio
      mientras derecha-bloqueada hacer avanza;
      gd;
      avanza;
     fin;
     gd;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     mientras frente-libre hacer avanza;
     mv;
     deja;
     avanza;
     pasa2;
    fin
    sino
    inicio
     mv;
     mientras frente-libre hacer avanza;
     gd;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     repetir 2 veces
     inicio
      mientras derecha-bloqueada hacer avanza;
      gd;
      avanza;
     fin;
     gd;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     mientras frente-libre hacer avanza;
     mv;
     avanza;
     pasa2;
    fin;
   fin;
  fin;
    inicia-ejecucion
      mientras no orientado-al-sur hacer gira-izquierda;
      checa;
        apagate;
    termina-ejecucion
finalizar-programa
