iniciar-programa
     define-nueva-instruccion norte como inicio
    mientras no-orientado-al-norte hacer gira-izquierda; fin;

define-nueva-instruccion sur como inicio
    mientras no-orientado-al-sur hacer gira-izquierda; fin;

define-nueva-instruccion este como inicio
    mientras no-orientado-al-este hacer gira-izquierda; fin;

define-nueva-instruccion oeste como inicio
    mientras no-orientado-al-oeste hacer gira-izquierda; fin;

 define-nueva-instruccion derecha  como inicio
 repetir 3 veces gira-izquierda; fin;


 define-nueva-instruccion eskina como inicio
 oeste;
 mientras izquierda-bloqueada y frente-libre hacer avanza;norte;fin;

DEFINE-NUEVA-INSTRUCCION TRABA COMO inicio
si orientado-al-oeste y frente-bloqueado y izquierda-bloqueada entonces
inicio
      repetir 2 veces gira-izquierda;
      mientras derecha-bloqueada y frente-libre  hacer avanza;
      si  izquierda-bloqueada y derecha-libre entonces sur;
fin;
fin;


define-nueva-instruccion princi como inicio
si orientado-al-sur entonces inicio
este; mientras frente-libre hacer avanza;
sur;
mientras izquierda-bloqueada y frente-libre y derecha-libre hacer avanzA;
si frente-bloqueado entonces inicio
oeste; mientras izquierda-bloqueada y frente-libre hacer avanza;
si izquierda-libre entonces inicio sur;avanza;fin; fin;
fin; fin;

define-nueva-instruccion recurso  como inicio
si derecha-bloqueada y izquierda-bloqueada y orientado-al-sur entonces inicio
avanzA;
recurso;
deja-zumbador;
fin
sino inicio
si orientado-al-sur entonces inicio  princi; traba;
recurso;
fin;
eskina;
fin;
fin;

 inicia-ejecucion
     sur;
     princi;
    recurso;
    apagate;
    termina-ejecucion
finalizar-programa
