iniciar-programa

     define-nueva-instruccion avanzar(n) como inicio
     repetir n veces
     avanza;
      fin;

     define-nueva-instruccion  gira-derecha como inicio
      gira-izquierda;
      gira-izquierda;
      gira-izquierda;
      fin;

       define-nueva-instruccion  media-vuelta como inicio
      gira-izquierda;
      gira-izquierda;
       fin;


        define-nueva-instruccion  situarse como inicio
         mientras derecha-bloqueada y orientado-al-este y frente-libre hacer inicio
    gira-izquierda;
    fin;
     mientras izquierda-bloqueada y orientado-al-oeste y frente-bloqueado hacer inicio
     gira-derecha;
     fin;
     mientras frente-bloqueado y orientado-al-sur hacer inicio
     media-vuelta;
     fin;
  fin;


      define-nueva-instruccion contar  como inicio
      avanza;

       si frente-libre y derecha-bloqueada    entonces inicio
        contar;

        deja-zumbador;
        fin
        sino si derecha-libre  y no orientado-al-oeste entonces inicio
         gira-derecha;
         avanza;

          fin;

         si frente-bloqueado y orientado-al-oeste entonces inicio
         gira-izquierda;
         mientras frente-libre y orientado-al-sur hacer inicio
         avanza;
         fin;
        fin;




           si frente-libre y derecha-bloqueada    entonces inicio
        contar;

        deja-zumbador;
        fin
        sino si derecha-libre y no orientado-al-oeste entonces inicio
         gira-derecha;
         avanza;




          fin;
          fin;






    inicia-ejecucion

        situarse;

       si  orientado-al-norte  y derecha-libre o izquierda-libre entonces inicio
       avanza;
        contar;

        fin;


        apagate;
    termina-ejecucion
finalizar-programa
