iniciar-programa
    define-nueva-instruccion recorre como inicio
      mientras junto-a-zumbador hacer inicio
      coge-zumbador;
      si frente-libre entonces inicio
       avanza;
      fin
      sino inicio
       gira-izquierda;
       si frente-libre entonces avanza;
       si junto-a-zumbador entonces inicio
        recorre;
        fin
       sino inicio
         repetir 2 veces gira-izquierda;
         repetir 2 veces avanza;
         si junto-a-zumbador entonces inicio
         recorre;
         fin
         sino inicio
          repetir 2 veces gira-izquierda;
          avanza;
          apagate;
         fin;
       fin;
      fin;
    fin;
     fin;
    inicia-ejecucion

    si frente-libre entonces avanza;
    si no-junto-a-zumbador entonces inicio
     repetir 2 veces gira-izquierda;
     avanza;
    fin;

    mientras orientado-al-norte o orientado-al-este o orientado-al-sur o orientado-al-oeste hacer inicio
    recorre;

    si orientado-al-norte entonces inicio
      mientras no-orientado-al-sur hacer gira-izquierda;
      avanza;
      mientras no orientado-al-oeste hacer gira-izquierda;
      si frente-libre entonces inicio
       avanza;
      fin
      sino inicio
       repetir 2 veces gira-izquierda;
       avanza;
      fin;
      si junto-a-zumbador entonces inicio
       recorre;
      fin
      sino inicio
        mientras no-orientado-al-este hacer gira-izquierda;
        repetir 2 veces avanza;
        si junto-a-zumbador entonces inicio
         recorre;
         fin
        sino inicio
          repetir 2 veces gira-izquierda;
          avanza;
          apagate;
        fin;

      fin;
    fin;

 si orientado-al-este entonces inicio
   mientras no-orientado-al-oeste hacer gira-izquierda;
      avanza;
      mientras no orientado-al-norte hacer gira-izquierda;
      avanza;
      si junto-a-zumbador entonces inicio
       recorre;
      fin
      sino inicio
        mientras no-orientado-al-sur hacer gira-izquierda;
        repetir 2 veces avanza;
        si junto-a-zumbador entonces inicio
         recorre;
         fin
        sino inicio
          repetir 2 veces gira-izquierda;
          avanza;
          apagate;
        fin;

      fin;

 fin;

 si orientado-al-sur entonces inicio
   mientras no-orientado-al-norte hacer gira-izquierda;
      avanza;
      mientras no orientado-al-oeste hacer gira-izquierda;
      si frente-libre entonces inicio
       avanza;
      fin
      sino inicio
        repetir 2 veces gira-izquierda;
        avanza;
      fin;
      si junto-a-zumbador entonces inicio
       recorre;
      fin
      sino inicio
        mientras no-orientado-al-este hacer gira-izquierda;
        repetir 2 veces avanza;
        si junto-a-zumbador entonces inicio
         recorre;
         fin
        sino inicio
          repetir 2 veces gira-izquierda;
          avanza;
          apagate;
        fin;

      fin;
 fin;

 si orientado-al-oeste entonces inicio
  mientras no-orientado-al-este hacer gira-izquierda;
      avanza;
      mientras no orientado-al-norte hacer gira-izquierda;
      avanza;
      si junto-a-zumbador entonces inicio
       recorre;
      fin
      sino inicio
        mientras no-orientado-al-sur hacer gira-izquierda;
        repetir 2 veces avanza;
        si junto-a-zumbador entonces inicio
         recorre;
         fin
        sino inicio
          repetir 2 veces gira-izquierda;
          avanza;
          apagate;
        fin;

      fin;
 fin;


    fin;
        apagate;
    termina-ejecucion
finalizar-programa
