iniciar-programa
  define-nueva-instruccion gira(x) como
      repetir x veces gira-izquierda;

  define-nueva-instruccion norte como
       mientras no-orientado-al-norte hacer gira-izquierda;

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


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

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

 define-nueva-instruccion orientar como
     mientras izquierda-libre hacer gira-izquierda;

 define-nueva-instruccion avanzar como inicio
     si frente-libre entonces inicio
        avanza;
    fin sino inicio
        gira(3);
        avanza;
     fin;
    si izquierda-libre entonces inicio
        gira(1);
        avanza;
        si izquierda-libre entonces inicio
            gira(1);
            avanza;
        fin;
    fin;
 fin;
 define-nueva-instruccion rodea como inicio
     mientras no-junto-a-zumbador  hacer inicio
        deja-zumbador;
        avanzar;
    fin;
 fin;

 define-nueva-instruccion busca como inicio
    gira(3);
    mientras frente-libre hacer inicio
        avanza;
    fin;
    si junto-a-zumbador entonces inicio
        gira(2);
        mientras frente-libre hacer inicio
            avanza;
        fin;
        gira(3);
    fin;

fin;

define-nueva-instruccion ir_inicio como inicio
     si orientado-al-sur entonces inicio
        este;
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
    si orientado-al-este entonces inicio
        norte;
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
    si orientado-al-norte entonces inicio
        oeste;
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
    si orientado-al-oeste entonces inicio
        sur;
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
 fin;

define-nueva-instruccion salir como inicio
     mientras junto-a-zumbador hacer inicio
        busca;
        si junto-a-zumbador entonces inicio
            avanzar;
        fin;

    fin;
 fin;

    inicia-ejecucion
        orientar;
        rodea;
        salir;
        ir_inicio;
        apagate;
    termina-ejecucion
finalizar-programa
