iniciar-programa
  define-nueva-instruccion marcha como inicio
    si no-junto-a-zumbador entonces inicio
      gira-izquierda;
      gira-izquierda;
      mientras frente-libre hacer
        avanza;
      gira-izquierda;
      si frente-libre entonces
        avanza;
      gira-izquierda;
      avanza;
      si no junto-a-zumbador entonces inicio
        gira-izquierda;
        gira-izquierda;
        avanza;
        repetir 3 veces
          gira-izquierda;
        mientras frente-libre hacer
          avanza;
      fin;
    fin;
    si junto-a-zumbador entonces
      coge-zumbador;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
      avanza;
      si orientado-al-norte entonces
        marcha;
      si derecha-bloqueada entonces inicio
        si algun-zumbador-en-la-mochila entonces
          deja-zumbador;
      fin
      sino inicio
        gira-izquierda;
        gira-izquierda;
        avanza;
        si algun-zumbador-en-la-mochila entonces
          deja-zumbador
      fin;
    fin
    sino inicio
      si frente-libre entonces
        avanza;
      si orientado-al-norte entonces
        marcha;
      si frente-bloqueado entonces inicio
        si algun-zumbador-en-la-mochila entonces
          deja-zumbador;
      fin
      sino inicio
        gira-izquierda;                                              
        gira-izquierda;
        avanza;
        si algun-zumbador-en-la-mochila entonces
          deja-zumbador;
      fin;
    fin;
  fin;
    inicia-ejecucion
      avanza;
      marcha;
      mientras no-orientado-al-oeste hacer
        gira-izquierda;
      si frente-libre entonces
        avanza;
      si junto-a-zumbador entonces inicio
        gira-izquierda;
        gira-izquierda;
        avanza;
        si junto-a-zumbador entonces inicio
          gira-izquierda;
          gira-izquierda;
          avanza;
          coge-zumbador;
        fin;
      fin;
        apagate;
    termina-ejecucion
finalizar-programa
