iniciar-programa
define-nueva-instruccion sur como inicio
       mientras no-orientado-al-sur hacer inicio
             gira-izquierda;
         fin;
      fin;

define-nueva-instruccion este como inicio
       mientras no-orientado-al-este hacer inicio
             gira-izquierda;
             fin;
           fin;

                define-nueva-instruccion oeste como inicio
                mientras no-orientado-al-oeste hacer inicio
           gira-izquierda;
             fin;
           fin;

                   define-nueva-instruccion mitad como inicio
                     si frente-libre entonces inicio
                     avanza;
                     avanza;
                     mitad;
                     avanza;
                        fin sino inicio
                        oeste;
                     fin;
                   fin;

                       define-nueva-instruccion irparedizq como inicio
                          oeste;
                          mientras frente-libre hacer inicio
                            avanza;
                            fin;
                            este;
                        fin;

                        define-nueva-instruccion pintamitad como inicio
                            irparedizq;
                            mitad;
                            deja-zumbador;
                        fin;

                        define-nueva-instruccion bajarenglon como inicio
                        irparedizq;
                        mientras derecha-bloqueada y frente-libre hacer inicio
                            avanza;
                        fin;
                           si derecha-bloqueada y frente-bloqueado entonces inicio
                              gira-izquierda;
                                fin sino inicio
                                sur;
                                avanza;
                                fin;
                         fin;
    inicia-ejecucion
           mientras no-orientado-al-norte hacer inicio
              pintamitad;
              bajarenglon;
              fin;

        apagate;
    termina-ejecucion
finalizar-programa
