iniciar-programa
define-nueva-instruccion m como
inicio
  si frente-libre entonces
   avanza;
   si frente-bloqueado y izquierda-libre entonces
   inicio
       gira-izquierda;
       mientras frente-libre hacer
       avanza;
       repetir 3 veces
       gira-izquierda;
       avanza;
       repetir 3 veces
       gira-izquierda;
       mientras frente-libre hacer
       avanza;
       gira-izquierda;
   fin;
  si frente-libre entonces
  inicio
  avanza;
  m;
  si frente-libre entonces
  inicio
  avanza;
  si frente-bloqueado y derecha-libre entonces
    inicio
      repetir 3 veces
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      gira-izquierda;
      avanza;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      repetir 3 veces
      gira-izquierda;
    fin;
     fin;
  fin
  sino
  repetir 2 veces
  gira-izquierda;

   fin;
    inicia-ejecucion
    mientras no orientado-al-este hacer
    gira-izquierda;
    m;
        apagate;
    termina-ejecucion
finalizar-programa
