iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
define-nueva-instruccion avanzar como si frente-libre entonces avanza;
define-nueva-instruccion revisa como inicio
  mientras frente-libre hacer inicio
    mientras junto-a-zumbador hacer coge-zumbador;
    avanza;
  fin;
fin;
    inicia-ejecucion         

      mientras
      no(orientado-al-oeste)
      hacer inicio

        revisa;
        mientras junto-a-zumbador hacer coge-zumbador;

        si
        (frente-bloqueado y orientado-al-norte y derecha-bloqueada) o
        (frente-bloqueado y orientado-al-sur y izquierda-bloqueada)
        entonces inicio

          mientras junto-a-zumbador hacer coge-zumbador;
          mientras no-orientado-al-oeste hacer gira(1);
          mientras frente-libre hacer avanza;
          gira(1);
          mientras frente-libre hacer avanza;
          mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
          apagate;
        fin

        sino inicio

          si
          frente-bloqueado y orientado-al-norte
          entonces inicio
            gira(3);
            avanzar;
            gira(3);
          fin

          sino inicio
            gira(1);
            avanzar;
            gira(1);
          fin;

        fin;

      fin;

        apagate;
    termina-ejecucion
finalizar-programa
