iniciar-programa
    define-nueva-instruccion derecha como repetir 3 veces gira-izquierda;
    define-nueva-instruccion vuelta como repetir 2 veces gira-izquierda;
    define-nueva-instruccion nozumba como inicio
        si no-junto-a-zumbador entonces inicio
            vuelta;
            avanza;
            derecha;
            si frente-libre entonces inicio
                avanza;
                si no-junto-a-zumbador entonces inicio
                    vuelta;
                    avanza;
                    si frente-libre entonces inicio
                        avanza;
                        si no-junto-a-zumbador entonces inicio
                            vuelta;
                            avanza;
                            derecha;
                            apagate;
                        fin;
                        fin sino inicio
                        apagate;
                    fin;
                fin;
                fin sino inicio
                vuelta;
                avanza;
            fin;
        fin;
    fin;
    define-nueva-instruccion bloqueado como inicio
        si frente-bloqueado entonces inicio
            gira-izquierda;
            si frente-libre entonces inicio
                avanza;
                si no-junto-a-zumbador entonces inicio
                    vuelta;
                    avanza;
                    si frente-libre entonces inicio
                        avanza;
                        si no-junto-a-zumbador entonces inicio
                            vuelta;
                            avanza;
                            derecha;
                            apagate;
                        fin;
                        fin sino inicio
                        apagate;
                    fin;
                fin;
                fin sino inicio
                vuelta;
                avanza;
                si frente-libre entonces inicio
                    avanza;
                    si no-junto-a-zumbador entonces inicio
                        vuelta;
                        avanza;
                        derecha;
                        apagate;
                    fin;
                    fin sino inicio
                    apagate;
                fin;
            fin;
        fin;
    fin;
    define-nueva-instruccion camina como inicio
        mientras junto-a-zumbador y frente-libre hacer inicio
            avanza;
            nozumba;
            bloqueado;
            nozumba;
            bloqueado;
        fin;
    fin;
      inicia-ejecucion
          mientras frente-bloqueado hacer gira-izquierda;
          avanza;
          mientras no-junto-a-zumbador hacer inicio
              vuelta;
              avanza;
              derecha;
              si frente-libre entonces inicio
                  avanza;
                  fin sino inicio
                  mientras frente-bloqueado hacer gira-izquierda;
                  avanza;
              fin;
          fin;
          camina;
          apagate;
      termina-ejecucion
finalizar-programa
