iniciar-programa
define-nueva-instruccion orientar como
inicio
   mientras no orientado-al-oeste hacer
   inicio
     gira-izquierda;
   fin;
   mientras frente-libre hacer
   inicio
     avanza;
   fin;
   mientras no orientado-al-sur hacer
   inicio
       gira-izquierda;
   fin;
   mientras frente-libre hacer
   inicio
      avanza;
   fin;
   repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion mide-mitad como
inicio
si frente-libre entonces
inicio
avanza;avanza;
mide-mitad;avanza
fin
sino
inicio
gira-izquierda;gira-izquierda;
fin;
fin;
define-nueva-instruccion deja como
inicio
   mientras frente-libre y no-junto-a-zumbador hacer
   inicio
        deja-zumbador;
        si frente-libre entonces
        inicio
             avanza;
        fin;
        si junto-a-zumbador entonces
        inicio
           avanza;
        fin;

   fin;
   si frente-bloqueado entonces
   inicio
       gira-izquierda;
       deja-zumbador;
   fin;
fin;
define-nueva-instruccion punta como
inicio
    gira-izquierda;gira-izquierda;
    mientras frente-libre hacer
    inicio
      avanza;
    fin;
    repetir 3 veces gira-izquierda;
    mientras frente-libre hacer
    inicio
      avanza;
    fin;
    repetir 3 veces gira-izquierda;
fin;


define-nueva-instruccion derecha como
inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;
define-nueva-instruccion este como
inicio
mientras no-orientado-al-este hacer
gira-izquierda;
fin;
define-nueva-instruccion oeste como
inicio
mientras no-orientado-al-oeste hacer
inicio
gira-izquierda;
fin;
fin;
define-nueva-instruccion busca-primer-esquina como
inicio
mientras no-orientado-al-norte hacer
inicio
gira-izquierda;
fin;
mientras frente-libre hacer
inicio
avanza;
fin;
mientras no-orientado-al-oeste hacer
inicio
gira-izquierda;
fin;
mientras frente-libre hacer
inicio
avanza;
fin;
mientras no-orientado-al-este hacer
inicio
gira-izquierda;
fin;
fin;
 define-nueva-instruccion colocazumbador como
 inicio
 mientras algun-zumbador-en-la-mochila y no-junto-a-zumbador hacer
 inicio
 deja-zumbador;
 fin;
 fin;
 define-nueva-instruccion baja-y-coloca como
 inicio
 si frente-libre entonces
 inicio
 avanza;
 fin;
 derecha;
 si frente-libre entonces
 inicio
 avanza;
 fin;
 colocazumbador;
 este;
 fin;
 define-nueva-instruccion desciende1 como
 inicio
 colocazumbador;
 mientras frente-libre hacer
 inicio
 baja-y-coloca;
 fin;
 fin;
 define-nueva-instruccion busca-otra-esquina como
 inicio
 mientras no-orientado-al-norte hacer
inicio
gira-izquierda;
fin;
mientras derecha-bloqueada y frente-libre hacer
inicio
avanza;
fin;
mientras no-orientado-al-oeste hacer
inicio
gira-izquierda;
fin;
fin;
define-nueva-instruccion baja-y-coloca2 como
inicio
 si frente-libre entonces
 inicio
 avanza;
 fin;
 gira-izquierda;
 si frente-libre entonces
 inicio
 avanza;
 fin;
 colocazumbador;
 oeste;
 fin;

define-nueva-instruccion desciende2 como
  inicio
 colocazumbador;
 mientras frente-libre hacer
 inicio
 baja-y-coloca2;
 fin;
 fin;
 define-nueva-instruccion linea como
 inicio
 mientras no-orientado-al-norte hacer
 inicio
   gira-izquierda;
 fin;
 mientras frente-libre hacer inicio
   avanza;
   linea;
 fin;
 fin;

    inicia-ejecucion
    orientar;

    mide-mitad;
    gira-izquierda;
    deja;
    mientras frente-libre hacer
    inicio
      avanza;
    fin;
    gira-izquierda;
    mide-mitad;
   repetir 3 veces gira-izquierda;
    deja;
    punta;

    desciende1;
    busca-otra-esquina;
    desciende2;
    linea;


        apagate;
    termina-ejecucion
finalizar-programa
