iniciar-programa
define-nueva-instruccion media-vuelta como
inicio
  repetir 2 veces
  gira-izquierda;
fin;

define-nueva-instruccion gira-derecha como
inicio
  repetir 3 veces
    gira-izquierda;
fin;

define-nueva-instruccion regresa como
inicio
  media-vuelta;
  avanza;
  media-vuelta;
fin;

define-nueva-instruccion busca(n) como
inicio
  si junto-a-zumbador entonces
  inicio
    coge-zumbador;
    si frente-libre entonces
    inicio
      avanza;
      busca(sucede(n));
      regresa;
    fin;
    si derecha-libre entonces
    inicio
      gira-derecha;
      avanza;
      busca(sucede(n));
      regresa;
      gira-izquierda;
    fin;
    si izquierda-libre entonces
    inicio
      gira-izquierda;
      avanza;
      busca(sucede(n));
      regresa;
      gira-derecha;
    fin;
  fin;
fin;

define-nueva-instruccion ve-a-la-esquina como
inicio
  mientras no-orientado-al-oeste hacer
    gira-izquierda;
  repetir 2 veces
  inicio
    mientras frente-libre hacer
      avanza;
    gira-izquierda;
  fin;
fin;

  inicia-ejecucion
    mientras no-orientado-al-norte hacer
      gira-izquierda;
    busca(0);
    mientras no-orientado-al-sur hacer
      gira-izquierda;
      si frente-libre entonces
    avanza;
    busca(0);
    ve-a-la-esquina;
    avanza;
    repetir 100 veces
      deja-zumbador;
    ve-a-la-esquina;
    mientras algun-zumbador-en-la-mochila hacer
      deja-zumbador;
    avanza;
    repetir 100 veces
      coge-zumbador;
    apagate;
  termina-ejecucion
finalizar-programa
 