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 irlado como
 inicio
  oeste;
  mientras frente-libre hacer avanza;
 fin;

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

define-nueva-instruccion caminar como
 inicio
  si orientado-al-sur entonces
   inicio
    si (derecha-libre o izquierda-libre) entonces
     inicio
      irlado;
      cambiarlinea;
      caminar;
     fin;

    si derecha-bloqueada y izquierda-bloqueada y frente-libre y orientado-al-sur entonces
      inicio
        avanza;
        caminar;
        deja-zumbador;
      fin;
   fin;
 fin;
    inicia-ejecucion
    caminar;
        apagate;
    termina-ejecucion
finalizar-programa
