iniciar-programa
define-nueva-instruccion mv como
inicio
 repetir 2 veces
  gira-izquierda;
  fin;
define-nueva-instruccion diagonal como
inicio
 mientras frente-libre hacer
  inicio
  si no junto-a-zumbador entonces
  deja-zumbador;
   avanza;
    gira-izquierda;
    avanza;
    repetir 3 veces
    gira-izquierda;
    fin;
    deja-zumbador;
    fin;
    define-nueva-instruccion mitad como
    inicio
     si frente-libre entonces
      inicio
       repetir 2 veces
        avanza;
        mitad;
        avanza;
        fin
        sino
        inicio
        mv;
        fin;
        fin;
        define-nueva-instruccion deja como
        inicio
        si izquierda-libre entonces
        inicio
        gira-izquierda;
        fin
        sino
        inicio
        repetir 3 veces
        gira-izquierda;
        fin;
        mientras frente-libre hacer
        inicio
        si no junto-a-zumbador entonces
        deja-zumbador;
        avanza;
        fin;
        deja-zumbador;
        fin;

    inicia-ejecucion
    mientras no orientado-al-oeste hacer
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    diagonal;
    mv;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    diagonal;
    mv;
    mitad;
    deja;
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    mitad;
    deja;

        apagate;
    termina-ejecucion
finalizar-programa
