iniciar-programa
  define-nueva-instruccion gira-derecha como
  inicio
  repetir 3 veces
  gira-izquierda;
  fin;
  define-nueva-instruccion media-vuelta como
  inicio
  gira-izquierda;
  gira-izquierda;
  fin;
    inicia-ejecucion
      mientras frente-libre hacer
      avanza;
      gira-derecha;
      mientras izquierda-bloqueada hacer
      inicio
      si junto-a-zumbador entonces
      inicio
      mientras frente-libre hacer
      avanza;
      gira-derecha;
      si frente-libre entonces
      avanza;
      deja-zumbador;
      coge-zumbador;
      si no junto-a-zumbador entonces
      deja-zumbador
      sino
      apagate;
      media-vuelta;
      mientras frente-libre hacer
      avanza;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      gira-izquierda;
      avanza;
      si no-junto-a-zumbador entonces
      inicio
      deja-zumbador;
      gira-izquierda;
      avanza;
      mientras no junto-a-zumbador hacer
      inicio
      deja-zumbador;
      avanza;
      fin;
      fin;
      mientras no orientado-al-este hacer
      gira-izquierda;
      si junto-a-zumbador entonces
      inicio
      coge-zumbador;
      si no junto-a-zumbador entonces
      deja-zumbador
      sino
      apagate;
      fin;
      si frente-libre entonces
      avanza;
      gira-izquierda;
      si frente-libre entonces
      avanza;
      gira-derecha
      fin
      sino
      inicio
      si frente-bloqueado entonces
      inicio
      gira-derecha;
      mientras izquierda-bloqueada y frente-libre hacer
      avanza;
      si izquierda-libre entonces
      gira-izquierda
      sino
      apagate;
      avanza;
      gira-izquierda;
      avanza;
      gira-derecha;
      fin;
      si frente-libre entonces
      avanza;
      fin;
      fin;
        apagate;
    termina-ejecucion
finalizar-programa
