Diferencia entre revisiones de «PrInf18: Juego: doble o nada»

De MateWiki
Saltar a: navegación, buscar

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/mat/public_html/w/includes/diff/DairikiDiff.php on line 434
(Contenido de la práctica)
(Segunda versión del juego)
 
(No se muestran 31 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
{{ Práctica de Informática | Juego: doble o nada | PrInf17: Algunos ejemplos con funciones  | PrInf19: Recursividad }}
+
{{ Práctica de Informática | Juego: doble o nada | PrInf17: Algunos ejemplos con funciones  | PrInf19: Juego: doble o nada versión masiva }}
{{ Beta }}
+
 
En esta práctica vamos a implementar un juego, reutilizando las funciones que hemos escrito en la práctica anterior. En este juego, tenemos un polígono y pedimos al usuario un punto, al igual que en los programas anteriores. El ordenador coloca un imán en el punto que indica el usuario. En el vértice más cercano hay otro imán que repele a nuestro imán, y lo lanza al doble de distancia. Si el imán continúa dentro del polígono tras ser lanzado, el jugador pierde. Por el contrario, si el imán logra escapar del polígono, el jugador gana.
 
En esta práctica vamos a implementar un juego, reutilizando las funciones que hemos escrito en la práctica anterior. En este juego, tenemos un polígono y pedimos al usuario un punto, al igual que en los programas anteriores. El ordenador coloca un imán en el punto que indica el usuario. En el vértice más cercano hay otro imán que repele a nuestro imán, y lo lanza al doble de distancia. Si el imán continúa dentro del polígono tras ser lanzado, el jugador pierde. Por el contrario, si el imán logra escapar del polígono, el jugador gana.
  
Línea 6: Línea 5:
 
Antes de realizar esta práctica, es imprescindible haber realizado antes la práctica anterior:
 
Antes de realizar esta práctica, es imprescindible haber realizado antes la práctica anterior:
 
* [[PrInf17: Algunos ejemplos con funciones]]
 
* [[PrInf17: Algunos ejemplos con funciones]]
== Contenido de la práctica ==
+
== Primera versión del juego ==
 +
=== Descripción del juego ===
 
[[Archivo:Gana.png|320px|miniaturadeimagen|derecha|Ejemplo de jugada ganadora. El imán está inicialmente en el punto azul, y sale despedido hasta la posición del punto rosa. El jugador gana porque el imán logra salir del polígono.]]
 
[[Archivo:Gana.png|320px|miniaturadeimagen|derecha|Ejemplo de jugada ganadora. El imán está inicialmente en el punto azul, y sale despedido hasta la posición del punto rosa. El jugador gana porque el imán logra salir del polígono.]]
 
[[Archivo:Pierde.png|320px|miniaturadeimagen|derecha|Ejemplo de jugada perdedora. El imán está inicialmente en el punto azul, y sale despedido hasta la posición del punto rosa. El jugador pierde porque el imán continúa dentro del polígono tras ser repelido por el vértice más cercano.]]
 
[[Archivo:Pierde.png|320px|miniaturadeimagen|derecha|Ejemplo de jugada perdedora. El imán está inicialmente en el punto azul, y sale despedido hasta la posición del punto rosa. El jugador pierde porque el imán continúa dentro del polígono tras ser repelido por el vértice más cercano.]]
Antes de empezar a programar, vamos a ver dos ejemplos de una jugada ganadora y otra perdedora.
+
Antes de empezar a programar, vamos a ver dos ejemplos de una jugada ganadora y otra perdedora, teniendo como polígono un triángulo. En la primera imagen tenemos un ejemplo de jugada ganadora. El usuario introduce el punto en la posición azul. El programa busca el vértice más cercano, calcula la distancia hasta ese vértice, y lanza el imán hasta el doble de distancia. La nueva posición es la del punto morado, que al caer fuera del polígono, hace que la jugada sea ganadora.
  
== Ejercicio post-práctica ==
+
En la segunda imagen, el usuario introduce un punto diferente. El vértice más cercano resulta ser el mismo. Esta vez, el punto morado, resultado de repeler el imán hasta el doble de distancia al vértice, continúa dentro del polígono, por lo que el jugador pierde.
 +
 
 +
En resumen, nuestro programa tiene que realizar las siguientes tareas:
 +
* Pedir un punto al usuario
 +
* Buscar el vértice más cercano al punto
 +
* Calcular un nuevo punto al doble de distancia del vértice que el punto introducido por el usuario
 +
* Comprobar si el nuevo punto está dentro o fuera del polígono
 +
 
 +
La salida de datos del programa debe constar de un mensaje que diga alguno de los dos mensajes siguientes (las tildes se han quitado a propósito para evitar problemas en la corrección del programa). Si el jugador gana:
 +
<pre>El iman ha salido del poligono. Has ganado!</pre>
 +
Si el jugador pierde:
 +
<pre>El iman continua dentro del poligono. Has perdido :(</pre>
 +
Es importante que estos dos mensajes se escriban usando el comando ''disp'', para que la comprobación final de la práctica funcione correctamente. El programa debe generar también una imagen como las de la derecha, aunque no es necesario que incluya ninguna etiqueta de texto en los ejes.
 +
 
 +
=== Código para dibujar el triángulo y los puntos ===
 +
 
 +
Para generar las imágenes con el polígono y los puntos, podemos usar el siguiente código:
 +
{{#tag:source|clf;
 +
fill(x, y, 'g');
 +
hold on;
 +
plot(xp,yp,'x','LineWidth',8,'MarkerSize',14);
 +
plot(xc,yc,'or','LineWidth',8, 'MarkerSize', 14);
 +
plot(xn,yn,'om','LineWidth',8, 'MarkerSize', 14);
 +
set(gca,'fontsize',14);
 +
set(gca,'fontweight','bold');
 +
set(gca,'linewidth',4);
 +
grid on;
 +
hold off;|lang="matlab"}}
 +
En este código, se supone que el polígono y los puntos están en las siguientes variables:
 +
* ''x'' e ''y'' son los vectores con las coordenadas de los vértices del polígono
 +
* ''xp'' e ''yp'' son las coordenadas del punto introducido por el usuario, que aparece con una cruz azul
 +
* ''xc'' e ''yc'' son las coordenadas del vértice más cercano al punto, que aparece con un círculo rojo
 +
* ''xn'' e ''yn'' son las coordenadas del punto donde aterriza el imán tras ser repelido, y se representa por un círculo en color violeta
 +
=== Funciones útiles para el juego ===
 +
Además de las funciones ''distancia'' y ''encuentraVerticeMasCercano'', programadas en la práctica anterior, para este juego necesitamos otra función, que calcule la posición del punto donde aterriza el imán. Para este cálculo, tenemos el punto que introduce el usuario <math>(x_p, y_p)</math>, y el punto del vértice más cercano <math>(x_v, y_v)</math>. Independientemente de la posición relativa de <math>p</math> y <math>v</math>, la posición del punto donde aterriza el imán tras ser repelido <math>(x_n, y_n)</math> vendrá dada por
 +
 
 +
<math>\displaystyle \begin{eqnarray*}
 +
x_n &= x_p + (x_p - x_v) \\
 +
y_n &= y_p + (y_p - y_v)
 +
\end{eqnarray*}</math>
 +
 
 +
Para implementar el juego, sería útil tener una función de nombre ''doblaDistancia'', que devuelva dos argumentos, ''xn'' e ''yn'', y que acepte cuatro argumentos de entrada, ''xp'', ''yp'', ''xv'' e ''yv''. La cabecera de la función sería
 +
{{#tag:source|function [xn, yn] = doblaDistancia(xp, yp, xv, yv)|lang="matlab"}}
 +
Es muy importante que esta función tenga esta definición, y que las función ''encuentraVerticeMasCercano'' tenga la definición incluida en la práctica anterior. De lo contrario, el corrector automático del programa no funcionará correctamente.
 +
{{Tarea|Termina la función ''doblaDistancia'', para poder usarla dentro del programa.}}
 +
{{Tarea|Cuando hayas terminado la función, escribe el programa del juego en un fichero de nombre ''dobleNada.m''}}
 +
=== Comprobación de las funciones ===
 +
Puedes usar este programa para comprobar si has creado correctamente las funciones necesarias para el juego: [http://mat.caminos.upm.es/w/images/7/7a/CompruebaDobleNada.m CompruebaDobleNada]
 +
 
 +
Descarga el fichero en el mismo directorio donde tengas creadas las funciones del juego, y luego ejecuta ''CompruebaDobleNada''. El programa comprobará un conjunto de varios miles de puntos con diferentes tipos de polígonos, e informará del porcentaje de puntos que han sido correctamente calculados por las funciones del juego.
 +
 
 +
Es importante que las funciones tengan las mismas cabeceras que se han definido en esta práctica y en la anterior. Hay que tener en cuenta también que este programa no comprueba el juego en sí, sino que solo prueba las funciones necesarias para que el juego funcione correctamente.
 +
 
 +
== Segunda versión del juego ==
 +
[[Archivo:Saltos multiples.png|320px|miniaturadeimagen|derecha|Ejemplo de tirada con cuatro saltos. En este caso, el jugador pierde porque no ha salido del polígono]]
 +
En la primera versión del juego, el imán "salta" una única vez. Vamos a incrementar las posibilidades de ganar, haciendo que el imán pueda saltar varias veces si cae dentro del polígono. Es decir, cuando el imán sale repelido, si cae dentro del polígono, vuelve a ser repelido por el vértice más cercano. Así hasta cuatro veces. Si después de las cuatro veces continúa dentro del polígono, el jugador ha perdido. Pero si en algún momento ha salido del polígono, el jugador ha ganado. El programa tiene que dibujar todas las posiciones por las que va pasando el imán.
 +
 
 +
En la figura de la derecha se muestra un ejemplo de tirada, con las posiciones del imán numeradas. El jugador ha introducido la posición marcada por una cruz azul. La secuencia de saltos es la siguiente:
 +
* El imán salió disparado hasta la posición 1, repelido por el vértice izquierdo.
 +
* Ahora, el vértice derecho lo vuelve a repeler, y lo lleva hasta la posición 2.
 +
* El vértice más cercano cambia de nuevo al izquierdo, que lo lanza hasta la posición 3.
 +
* En la posición 3, el vértice más cercano continúa siendo el mismo, que lo lanza hasta la posición 4.
 +
Como en la posición 4 continúa dentro del polígono, el jugador ha perdido. Si en algún momento hubiera caído fuera del polígono, el jugador habría ganado y ya no habría que calcular nuevas posiciones del imán.
 +
 
 +
Esta nueva versión requiere algunos cambios sobre el programa anterior. En particular, tiene que dibujar el triángulo antes de empezar a calcular los saltos, ya que de lo contrario no se podrán dibujar los puntos de cada salto encima del polígono.
 +
 
 +
Para facilitar la tarea, se proporciona esta plantilla del código, que hay que completar con tu propio código. En la plantilla, se incluyen los comandos de entrada y salida de datos, y los comandos que hacen falta para dibujar el triángulo y las posiciones del imán. El comando que dibuja cada posición se incluye en un comentario, que hay que quitar para que se ejecute. La tarea consiste en realizar todos los comandos del algoritmo del juego, usando las funciones definidas para la versión anterior del juego.
 +
{{matlab| codigo=
 +
%% Juego: doble o nada
 +
%% Version: 0.2
 +
%% Fecha: Agosto de 2013
 +
 
 +
%% Entrada de datos
 +
p = input('Introduce el punto de la forma [x y]: ');
 +
% Numero de oportunidades para salir del poligono
 +
nSaltos = 4;
 +
% Vértices del polígono
 +
x = [0 0.5 1];
 +
y = [0 1 0];
 +
%% Algoritmo
 +
% Coordenadas del punto inicial
 +
xp = p(1);
 +
yp = p(2);
 +
xn = xp; % xn es cada una de las posiciones x por donde va pasando el iman
 +
yn = yp;
 +
 
 +
% Dibujamos el poligono
 +
clf;
 +
fill(x, y, 'g');
 +
hold on;
 +
 
 +
% -------------------------------
 +
% TU CODIGO AQUI
 +
% En esta parte del codigo hay que hacer que el iman salte como maximo cuatro veces
 +
% Si sale del poligono, no hay que continuar saltando
 +
% Tiene que dibujar cada posicion en color magenta, con el siguiente comando
 +
% plot(xn,yn,'om','LineWidth',8, 'MarkerSize', 14);
 +
%
 +
% Estos comentarios se pueden eliminar del código antes de enviar la solución
 +
% -------------------------------
 +
 
 +
%% Salida de datos
 +
if inpolygon(xn, yn, x, y)
 +
  disp('El iman continua dentro del poligono. Has perdido :(');
 +
else
 +
  disp('El iman ha salido del poligono. Has ganado!');
 +
end
 +
 
 +
 
 +
% Dibujamos en azul la posicion inicial
 +
plot(xp,yp,'x','LineWidth',8,'MarkerSize',14);
 +
grid on;
 +
hold off;}}
 +
{{Tarea|Completa el código de la plantilla con los comandos necesarios, y guárdalo todo en el fichero ''dobleNada.m''. La plantilla es solo una sugerencia. Si lo prefieres, puedes reutilizar cualquier trozo de código que hayas escrito para la versión anterior.}}
 +
=== Comprobación del programa ===
 +
Puedes comprobar si el juego funciona correctamente usando este fichero: [https://mat.caminos.upm.es/w/images/4/42/CompruebaDobleNada2.m CompruebaDobleNada2.m]
 +
 
 +
Para usarlo, tienes que llamar a la función ''CompruebaDobleNada2'' con el nombre de tu programa. Por ejemplo, si tu programa está en el fichero de nombre ''tu_fichero.m'', tienes que ejecutar el siguiente comando:
 +
{{#tag:source|CompruebaDobleNada2('tu_fichero');|lang="matlab"}}
 +
El fichero comprueba un conjunto de puntos de entrada, y el mensaje que imprime en la pantalla el programa para cada punto. Después informa del resultado con todos los puntos. Los gráficos se ignoran totalmente, así que aunque tu programa dibuje las posiciones de los puntos, al ejecutar el comprobador el gráfico no aparecerá.
 +
 
 +
Si el programa está correcto, el comprobador debería dar este mensaje:
 +
<pre>
 +
Probando puntos interiores en triangulo...
 +
---> 100.00% Correctos  0.00% Mal
 +
Probando puntos exteriores en triangulo...
 +
---> 100.00% Correctos  0.00% Mal
 +
</pre>
 +
Los puntos están elegidos para dar cuatro saltos dentro del triángulo que se incluye en la plantilla del código. Si cambias el número de saltos o el polígono, el comprobador no funcionará correctamente.
 
[[Categoría:Prácticas de Informática]]
 
[[Categoría:Prácticas de Informática]]

Revisión actual del 19:26 8 oct 2013

Práctica de Informática
Juego: doble o nada
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 implementar un juego, reutilizando las funciones que hemos escrito en la práctica anterior. En este juego, tenemos un polígono y pedimos al usuario un punto, al igual que en los programas anteriores. El ordenador coloca un imán en el punto que indica el usuario. En el vértice más cercano hay otro imán que repele a nuestro imán, y lo lanza al doble de distancia. Si el imán continúa dentro del polígono tras ser lanzado, el jugador pierde. Por el contrario, si el imán logra escapar del polígono, el jugador gana.

1 Requisitos previos

Antes de realizar esta práctica, es imprescindible haber realizado antes la práctica anterior:

2 Primera versión del juego

2.1 Descripción del juego

Ejemplo de jugada ganadora. El imán está inicialmente en el punto azul, y sale despedido hasta la posición del punto rosa. El jugador gana porque el imán logra salir del polígono.
Ejemplo de jugada perdedora. El imán está inicialmente en el punto azul, y sale despedido hasta la posición del punto rosa. El jugador pierde porque el imán continúa dentro del polígono tras ser repelido por el vértice más cercano.

Antes de empezar a programar, vamos a ver dos ejemplos de una jugada ganadora y otra perdedora, teniendo como polígono un triángulo. En la primera imagen tenemos un ejemplo de jugada ganadora. El usuario introduce el punto en la posición azul. El programa busca el vértice más cercano, calcula la distancia hasta ese vértice, y lanza el imán hasta el doble de distancia. La nueva posición es la del punto morado, que al caer fuera del polígono, hace que la jugada sea ganadora.

En la segunda imagen, el usuario introduce un punto diferente. El vértice más cercano resulta ser el mismo. Esta vez, el punto morado, resultado de repeler el imán hasta el doble de distancia al vértice, continúa dentro del polígono, por lo que el jugador pierde.

En resumen, nuestro programa tiene que realizar las siguientes tareas:

  • Pedir un punto al usuario
  • Buscar el vértice más cercano al punto
  • Calcular un nuevo punto al doble de distancia del vértice que el punto introducido por el usuario
  • Comprobar si el nuevo punto está dentro o fuera del polígono

La salida de datos del programa debe constar de un mensaje que diga alguno de los dos mensajes siguientes (las tildes se han quitado a propósito para evitar problemas en la corrección del programa). Si el jugador gana:

El iman ha salido del poligono. Has ganado!

Si el jugador pierde:

El iman continua dentro del poligono. Has perdido :(

Es importante que estos dos mensajes se escriban usando el comando disp, para que la comprobación final de la práctica funcione correctamente. El programa debe generar también una imagen como las de la derecha, aunque no es necesario que incluya ninguna etiqueta de texto en los ejes.

2.2 Código para dibujar el triángulo y los puntos

Para generar las imágenes con el polígono y los puntos, podemos usar el siguiente código:

clf;
fill(x, y, 'g');
hold on;
plot(xp,yp,'x','LineWidth',8,'MarkerSize',14);
plot(xc,yc,'or','LineWidth',8, 'MarkerSize', 14);
plot(xn,yn,'om','LineWidth',8, 'MarkerSize', 14);
set(gca,'fontsize',14);
set(gca,'fontweight','bold');
set(gca,'linewidth',4);
grid on;
hold off;

En este código, se supone que el polígono y los puntos están en las siguientes variables:

  • x e y son los vectores con las coordenadas de los vértices del polígono
  • xp e yp son las coordenadas del punto introducido por el usuario, que aparece con una cruz azul
  • xc e yc son las coordenadas del vértice más cercano al punto, que aparece con un círculo rojo
  • xn e yn son las coordenadas del punto donde aterriza el imán tras ser repelido, y se representa por un círculo en color violeta

2.3 Funciones útiles para el juego

Además de las funciones distancia y encuentraVerticeMasCercano, programadas en la práctica anterior, para este juego necesitamos otra función, que calcule la posición del punto donde aterriza el imán. Para este cálculo, tenemos el punto que introduce el usuario [math](x_p, y_p)[/math], y el punto del vértice más cercano [math](x_v, y_v)[/math]. Independientemente de la posición relativa de [math]p[/math] y [math]v[/math], la posición del punto donde aterriza el imán tras ser repelido [math](x_n, y_n)[/math] vendrá dada por

[math]\displaystyle \begin{eqnarray*} x_n &= x_p + (x_p - x_v) \\ y_n &= y_p + (y_p - y_v) \end{eqnarray*}[/math]

Para implementar el juego, sería útil tener una función de nombre doblaDistancia, que devuelva dos argumentos, xn e yn, y que acepte cuatro argumentos de entrada, xp, yp, xv e yv. La cabecera de la función sería

function [xn, yn] = doblaDistancia(xp, yp, xv, yv)

Es muy importante que esta función tenga esta definición, y que las función encuentraVerticeMasCercano tenga la definición incluida en la práctica anterior. De lo contrario, el corrector automático del programa no funcionará correctamente.

Lapiz.png Tarea: Termina la función doblaDistancia, para poder usarla dentro del programa.


Lapiz.png Tarea: Cuando hayas terminado la función, escribe el programa del juego en un fichero de nombre dobleNada.m


2.4 Comprobación de las funciones

Puedes usar este programa para comprobar si has creado correctamente las funciones necesarias para el juego: CompruebaDobleNada

Descarga el fichero en el mismo directorio donde tengas creadas las funciones del juego, y luego ejecuta CompruebaDobleNada. El programa comprobará un conjunto de varios miles de puntos con diferentes tipos de polígonos, e informará del porcentaje de puntos que han sido correctamente calculados por las funciones del juego.

Es importante que las funciones tengan las mismas cabeceras que se han definido en esta práctica y en la anterior. Hay que tener en cuenta también que este programa no comprueba el juego en sí, sino que solo prueba las funciones necesarias para que el juego funcione correctamente.

3 Segunda versión del juego

Ejemplo de tirada con cuatro saltos. En este caso, el jugador pierde porque no ha salido del polígono

En la primera versión del juego, el imán "salta" una única vez. Vamos a incrementar las posibilidades de ganar, haciendo que el imán pueda saltar varias veces si cae dentro del polígono. Es decir, cuando el imán sale repelido, si cae dentro del polígono, vuelve a ser repelido por el vértice más cercano. Así hasta cuatro veces. Si después de las cuatro veces continúa dentro del polígono, el jugador ha perdido. Pero si en algún momento ha salido del polígono, el jugador ha ganado. El programa tiene que dibujar todas las posiciones por las que va pasando el imán.

En la figura de la derecha se muestra un ejemplo de tirada, con las posiciones del imán numeradas. El jugador ha introducido la posición marcada por una cruz azul. La secuencia de saltos es la siguiente:

  • El imán salió disparado hasta la posición 1, repelido por el vértice izquierdo.
  • Ahora, el vértice derecho lo vuelve a repeler, y lo lleva hasta la posición 2.
  • El vértice más cercano cambia de nuevo al izquierdo, que lo lanza hasta la posición 3.
  • En la posición 3, el vértice más cercano continúa siendo el mismo, que lo lanza hasta la posición 4.

Como en la posición 4 continúa dentro del polígono, el jugador ha perdido. Si en algún momento hubiera caído fuera del polígono, el jugador habría ganado y ya no habría que calcular nuevas posiciones del imán.

Esta nueva versión requiere algunos cambios sobre el programa anterior. En particular, tiene que dibujar el triángulo antes de empezar a calcular los saltos, ya que de lo contrario no se podrán dibujar los puntos de cada salto encima del polígono.

Para facilitar la tarea, se proporciona esta plantilla del código, que hay que completar con tu propio código. En la plantilla, se incluyen los comandos de entrada y salida de datos, y los comandos que hacen falta para dibujar el triángulo y las posiciones del imán. El comando que dibuja cada posición se incluye en un comentario, que hay que quitar para que se ejecute. La tarea consiste en realizar todos los comandos del algoritmo del juego, usando las funciones definidas para la versión anterior del juego.

%% Juego: doble o nada
%% Version: 0.2
%% Fecha: Agosto de 2013

%% Entrada de datos
p = input('Introduce el punto de la forma [x y]: ');
% Numero de oportunidades para salir del poligono
nSaltos = 4;
% Vértices del polígono
x = [0 0.5 1];
y = [0 1 0];
%% Algoritmo
% Coordenadas del punto inicial
xp = p(1);
yp = p(2);
xn = xp; % xn es cada una de las posiciones x por donde va pasando el iman
yn = yp;

% Dibujamos el poligono
clf;
fill(x, y, 'g');
hold on;

% -------------------------------
% TU CODIGO AQUI
% En esta parte del codigo hay que hacer que el iman salte como maximo cuatro veces
% Si sale del poligono, no hay que continuar saltando
% Tiene que dibujar cada posicion en color magenta, con el siguiente comando
% plot(xn,yn,'om','LineWidth',8, 'MarkerSize', 14); 
%
% Estos comentarios se pueden eliminar del código antes de enviar la solución
% -------------------------------

%% Salida de datos
if inpolygon(xn, yn, x, y)
  disp('El iman continua dentro del poligono. Has perdido :(');
else
  disp('El iman ha salido del poligono. Has ganado!');
end


% Dibujamos en azul la posicion inicial
plot(xp,yp,'x','LineWidth',8,'MarkerSize',14);
grid on;
hold off;


Lapiz.png Tarea: Completa el código de la plantilla con los comandos necesarios, y guárdalo todo en el fichero dobleNada.m. La plantilla es solo una sugerencia. Si lo prefieres, puedes reutilizar cualquier trozo de código que hayas escrito para la versión anterior.


3.1 Comprobación del programa

Puedes comprobar si el juego funciona correctamente usando este fichero: CompruebaDobleNada2.m

Para usarlo, tienes que llamar a la función CompruebaDobleNada2 con el nombre de tu programa. Por ejemplo, si tu programa está en el fichero de nombre tu_fichero.m, tienes que ejecutar el siguiente comando:

CompruebaDobleNada2('tu_fichero');

El fichero comprueba un conjunto de puntos de entrada, y el mensaje que imprime en la pantalla el programa para cada punto. Después informa del resultado con todos los puntos. Los gráficos se ignoran totalmente, así que aunque tu programa dibuje las posiciones de los puntos, al ejecutar el comprobador el gráfico no aparecerá.

Si el programa está correcto, el comprobador debería dar este mensaje:

Probando puntos interiores en triangulo...
 ---> 100.00% Correctos   0.00% Mal
Probando puntos exteriores en triangulo...
 ---> 100.00% Correctos   0.00% Mal

Los puntos están elegidos para dar cuatro saltos dentro del triángulo que se incluye en la plantilla del código. Si cambias el número de saltos o el polígono, el comprobador no funcionará correctamente.