iniciar-programa
define-nueva-instruccion media como inicio
    gira-izquierda;      gira-izquierda;
      fin;
define-nueva-instruccion gira-derecha como inicio
   media; gira-izquierda;
   fin;
define-nueva-instruccion este como inicio
  mientras no-orientado-al-este hacer gira-izquierda;
  fin;
define-nueva-instruccion sur como inicio
  mientras no-orientado-al-sur hacer gira-izquierda;
  fin;
  define-nueva-instruccion norte como inicio
  mientras no-orientado-al-norte hacer gira-izquierda;
  fin;
define-nueva-instruccion comienzo como inicio
  si frente-libre entonces inicio
   avanza;         
   comienzo;
  si no-junto-a-zumbador entonces deja-zumbador;
   avanza;
   fin
sino  inicio
  gira-izquierda;
    avanza;
    gira-izquierda;
   fin;
   fin;
define-nueva-instruccion continua como inicio
  si junto-a-zumbador entonces inicio
  mientras frente-libre hacer avanza;
  media;
  comienzo;
 si no-junto-a-zumbador entonces deja-zumbador;
  si junto-a-zumbador entonces inicio
  si frente-libre entonces avanza;
  norte;
  avanza;
  fin;
  fin;
  fin;
define-nueva-instruccion in como inicio
     mientras orientado-al-norte y frente-bloqueado hacer inicio
     este;
     mientras no-junto-a-zumbador y frente-libre hacer avanza;
    continua;
       este;
   fin;
   mientras frente-libre y no junto-a-zumbador hacer avanza;
   continua;
      si frente-bloqueado y no junto-a-zumbador entonces inicio
      sur;
      mientras izquierda-bloqueada y frente-libre hacer avanza;
      este;
 si frente-bloqueado y orientado-al-este entonces apagate;
      si frente-libre entonces avanza;
      norte;
     si frente-libre entonces avanza;
      in;
      fin;
      fin;
     inicia-ejecucion
    mientras frente-libre hacer avanza;
                in;
             apagate;
         termina-ejecucion
finalizar-programa
