iniciar-programa
define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;

define-nueva-instruccion verifica como
inicio
  si orientado-al-oeste entonces sur;
  si frente-libre entonces avanza
  sino
    inicio
      oeste;
      mientras frente-libre hacer avanza;
      este;
      mientras derecha-bloqueada y frente-libre hacer avanza;
      si derecha-bloqueada entonces
        inicio
          oeste;
          mientras frente-libre hacer avanza;
          norte;
        fin
      sino
       inicio
         sur;
         avanza;
       fin;
    fin;
fin;

define-nueva-instruccion camina como
inicio
  mientras no-orientado-al-norte hacer
    inicio
      si izquierda-bloqueada y derecha-bloqueada y orientado-al-sur entonces
        inicio
          oeste;
          camina;
          si orientado-al-norte entonces deja-zumbador;
        fin
      sino
       inicio
         verifica;
       fin;
    fin;
fin;

define-nueva-instruccion recorre como
inicio
  oeste;
  mientras frente-libre hacer avanza;
  sur;
  camina;
fin;
    inicia-ejecucion
        recorre;
        apagate;
    termina-ejecucion
finalizar-programa
