iniciar-programa
    define-nueva-instruccion gira(n) como inicio
       repetir n veces
          gira-izquierda;
    fin;
    define-nueva-instruccion pared(n) como inicio
       si si-es-cero(n) entonces
          apagate;
       si frente-libre y izquierda-bloqueada entonces inicio
          avanza;
           si orientado-al-norte entonces inicio
              pared(sucede(n));
           fin
           sino inicio
              si orientado-al-sur entonces inicio
                 pared(precede(n));
              fin
              sino inicio
                 si orientado-al-este entonces inicio
                    pared(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                          sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(n)
                          ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                 fin
                 sino inicio
                    si orientado-al-oeste entonces inicio
                       pared(precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                          precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(n)
                          ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                    fin;
                 fin;
              fin;
           fin;
       fin
       sino inicio
          si frente-bloqueado y izquierda-bloqueada entonces inicio
             repetir 5 veces
                deja-zumbador;
             gira(3);
             si frente-libre entonces inicio
                avanza;
               si orientado-al-norte entonces inicio
                  pared(sucede(n));
               fin
               sino inicio
                  si orientado-al-sur entonces inicio
                     pared(precede(n));
                  fin
                  sino inicio
                     si orientado-al-este entonces inicio
                        pared(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(n)
                              ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                     fin
                     sino inicio
                        si orientado-al-oeste entonces inicio
                        pared(precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(n)
                              ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                        fin;
                     fin;
                  fin;
               fin;
             fin;
          fin
          sino inicio
             si izquierda-libre entonces inicio
                repetir 5 veces
                   deja-zumbador;
                gira(1);
                si frente-libre entonces inicio
                   avanza;
               si orientado-al-norte entonces inicio
                  pared(sucede(n));
               fin
               sino inicio
                  si orientado-al-sur entonces inicio
                     pared(precede(n));
                  fin
                  sino inicio
                     si orientado-al-este entonces inicio
                        pared(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(
                              sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(n)
                              ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                     fin
                     sino inicio
                        si orientado-al-oeste entonces inicio
                        pared(precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                              precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(n)
                              ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                        fin;
                     fin;
                  fin;
               fin;
                fin;
             fin;
          fin;
       fin;
       pared(n);
    fin;
    inicia-ejecucion
        repetir 4 veces inicio
           si frente-bloqueado y izquierda-bloqueada entonces inicio
              repetir 5 veces
                 deja-zumbador;
           fin;
           gira(1);
        fin;
        si frente-libre entonces inicio
           avanza;
           pared(1);
        fin
        sino inicio
           gira(3);
           si frente-libre entonces inicio
              avanza;
              pared(100);
           fin;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
