iniciar-programa
   define-nueva-instruccion camina como
    inicio
        si frente-libre entonces
            avanza
          sino
          si izquierda-libre entonces
          inicio
             gira-izquierda;
             mientras frente-libre y derecha-bloqueada hacer
             avanza;
             repetir 3 veces
                gira-izquierda;
             si frente-libre entonces
             inicio
             avanza;
             repetir 3 veces
                gira-izquierda;
             mientras frente-libre hacer
             avanza;
             gira-izquierda;
             fin
             sino
             inicio
                repetir 3 veces
                    gira-izquierda;
                mientras frente-libre hacer
                   avanza;
             fin;
          fin
          sino
          inicio
             repetir 3 veces
                gira-izquierda;
             mientras izquierda-bloqueada hacer
                avanza;
             gira-izquierda;
             avanza;
             gira-izquierda;
             mientras frente-libre hacer
             avanza;
             repetir 3 veces
                gira-izquierda;
          fin;
     fin;
     define-nueva-instruccion ida como
    inicio
        si frente-libre o izquierda-libre o derecha-libre entonces
        inicio
           camina;
          si  orientado-al-sur entonces
          inicio

             repetir 3 veces
                gira-izquierda;
           fin
           sino
            inicio
             camina;
             ida;
          camina;
          fin;
        fin
        sino
          repetir 2 veces
                gira-izquierda;
    fin;
    inicia-ejecucion
    mientras no-orientado-al-este hacer
       gira-izquierda;
    si izquierda-bloqueada y frente-bloqueado entonces
       apagate;
    ida;
    apagate;
    termina-ejecucion
finalizar-programa
