PrInf15: Juego: acertar en un polígono

De MateWiki
Revisión del 23:10 8 ago 2013 de Herraiz (Discusión | contribuciones) (Contenido de la práctica)

Saltar a: navegación, buscar
Práctica de Informática
Juego: acertar en un polígono
Práctica anterior Siguiente práctica
Este artículo es un guión de prácticas de Informática


En esta práctica vamos a aplicar los conocimientos que hemos adquirido sobre bucles para crear un juego sencillo. Se trata de pedir al usuario un punto, que representa una posición en el plano, y comprobar si el punto está dentro de un polígono. El jugador acierta si proporciona un punto dentro del polígono. Si no acierta dentro del polígono, se le da otra oportunidad. Si alcanza un número límite de intentos, pierde la partida.

1 Requisitos previos

Es importante haber realizado las siguientes prácticas antes de realizar esta práctica:

2 Comandos que se aprenderán en esta práctica

fill inpolygon

3 Contenido de la práctica

Al igual que en la práctica anterior, en este caso usaremos un bucle while que tiene una condición compleja. Para implementar esta condición podemos usar tanto un operador lógico, como un break dentro del bucle. En la práctica usaremos un break, y dejaremos como ejercicio post-práctica la implementación que usa un operador lógico y evita el break.

Este programa tiene dos partes complejas, que no hemos programado hasta ahora:

  • Representar y dibujar un polígono
  • Comprobar si un punto está dentro de un polígono

Para representar y dibujar un polígono podemos usar la función fill.

Lapiz.png Tarea: Comprueba cómo se usa la función fill usando help fill


Representación de un punto en el plano
Archivo:Triangulo verdepng
Representación de un triángulo a partir de tres puntos

La función fill acepta tres argumentos de entrada:

  • Un vector con las coordenadas x de los vértices del polígono
  • Un vector con las coordenadas y de los vértices del polígono
  • El color con el que se va a rellenar el polígono

Cada vértice del polígono es un punto en el plano, que tendrá dos coordenadas. Por ejemplo, el punto de la imagen de la derecha tiene como coordenadas [math]x=3[/math] e [math]y=2[/math], y se representa como [math](3,2)[/math]. Si tenemos varios puntos y los unimos, podemos formar un polígono. Por ejemplo, con tres puntos podemos formar un triángulo.

El comando fill se encarga de unir los puntos y dibujar el polígono. Pero tiene una manera peculiar de recibir los puntos que forman el polígono. En vez de recibir una lista de puntos, acepta por un lado la lista de las coordenadas x de esos puntos, y como segundo argumento la lista de las coordenadas y de los mismos puntos. Además, necesita también que especifiquemos el color con el que va a pintar el polígono. Si alguno de estos tres argumentos no es correcto, la función fill no pintará el polígono.

4 Ejercicio post-práctica