Ejercicio 10: El caso borde

Muchas veces cuando usamos un repeat nos encontramos con que el último caso es levemente distinto a los anteriores, situación que solemos llamar caso borde. Pero mejor, veamos un ejemplo.

El procedimiento LineaNegra4Este que te presentamos dibuja una línea negra hacia el Este dejando el cabezal fuera de la línea, una celda hacia el Este.

procedure LineaNegra4Este() {
  repeat(4) {
    Poner(Negro)
    Mover(Este)
  }
}

Si ahora queremos hacer que deje el cabezal en la última celda de la línea, tenemos dos opciones:

  • Mover el cabezal al Oeste luego de dibujar la línea. Un truco medio feo, porque para funcionar necesita que haya al menos 5 espacios al Este de la posición inicial, cuando nuestra línea sólo ocupará 4.
  • Tratar el último caso de manera especial. Esta opción es más interesante y más fiel a lo que queremos hacer: la última vez no queremos que el cabezal se mueva, simplemente nos basta con poner la bolita negra.

Teniendo en cuenta esto último, escribí una nueva versión de LineaNegra4Este que deje el cabezal en la última celda de la línea.

¡Dame una pista!

Algunos ejercicios atrás comprobaste que se pueden poner cosas tanto antes como después de un repeat. Podés usar esa misma idea para tratar el último caso de manera especial, sacándolo del repeat.

Ojo: al "sacar un caso para afuera" también vas a tener que reducir el número de veces que repetís los otros casos. :wink:

Tenés que iniciar sesión antes de empezar a enviar tus soluciones