Pruebas+Unitarias+Proyecto+3

**__Pruebas Unitarias:__ **

A continuación se muestra la descripción de cada función al utilizar la función help en el interprete de Python.

· **CoordenadasAdicionales**: Crea una lista de coordenadas que son utilizadas luego para hacer comparaciones entre coordenadas. Particularmente, crea una matriz, con coordenadas rodeando las catorce coordenadas establecidas al inicio. No recibe ningún parámetro, y devuelve la matriz.

· **Movimiento de Caballo(x,y,xant,yant**): Función que recibe como parámetros cuatro coordenadas: dos en //x// y dos en //y//. Simplemente verifica que la coordenada //x// y //y// ingresadas como argumentos estén a una distancia de movimiento de caballo de coordenadas anteriores. Quiere decir que debe estar a tres cuadros de distancia: uno al lado o arriba y dos al lado o arriba. Esto se verifica mediante sumas de coordenadas, ya que deben cumplir ciertos requisitos de diferencia de coordenadas para cumplir. Devuelve el valor True si se forma una figura de caballo.

· **NoPosiblesMovimientos(x,y):** Función que recibe como parámetro una coordenada x y una y. Verifica cuantas coordenadas (en una lista global de coordenadas) posibilitan el movimiento del caballo, siendo lo máximo ocho. Verifica esta condición mediante la función MovimientodeCaballo, y utiliza todos los valores de una lista de coordenadas adicionales. Devuelve la cantidad de movimientos de caballo hallados en la lista.

· **select(self,event):** función que recibe como parámetro un objeto (declarado ya como self en el _init_ de la clase) y un evento, en este caso, el click del botón izquierdo. Esta es la función clave en el funcionamiento del programa, ya que permite realizar muchas cosas. Primero, detecta la coordenada clave del rectángulo que fue presionado. Con esta coordenada, verifica si se forma un movimiento de caballo con la coordenada anterior. Si esto es cierto, coloca una foto de un caballero en el cuadro respectivo, y aumenta las fichas en uno. También modifica el contador de fichas mostrado en la parte superior de la pantalla. Luego, siguen varias condiciones. Si es el primer movimiento, crea en el lugar de partida un cuadro para poder ser presionado (como último lugar). Si es cualquier otro espacio, cubre el cuadro anterior con un rectángulo azul, y ya no puede ser presionado. Luego, agrega las nuevas coordenadas a una lista de coordenadas temporales. Si el lugar nuevo es el lugar de inicio, inhibe el movimiento y finaliza el programa. Luego, verifica si ya no hay movimientos disponibles. Si es así, elimina los puntos y finaliza el juego.

· **JuegoInicio:** Función que comienza con el juego en sí. Es llamada cuando uno presiona iniciar el juego, en la pantalla de inicio. Crea un canvas con los cuadros designados, y les agrega una ficha. Convierte todos los cuadros y fichas creados en una instancia de la clase Movimiento. Finalmente, se agrega un cuadro de anotaciones y botones de finalizar y reiniciar.

· **Cerrar:** Función utilizada para cerrar ciertas pantallas. No recibe ningún parámetro, es utilizada en botones en varias pantallas para cerrarlas.

· **Instrucciones:** Crea una pantalla nueva, en la cual se despliegan utilizando labels, las instrucciones del juego. Llamada por un botón de instrucciones.

· **InicioNuevo:** Esta función es utilizada para reiniciar el juego. Resetea todas las variables y contadores, para comenzar desde cero, tanto en posición como en valores de listas, puntos y nombres. Finalmente, crea una nueva pantalla en la cual se presenta el nuevo juego, con la función JuegoInicio.

· **Puntajesaltos:** Esta función crea una pantalla nueva, en la cual se despliegan los valores contenidos en la lista datos puntaje, respecto al nombre de los puntajes mayores, como también los puntos de estas personas. Lo muestran en columnas.

· **Salirjuego:** Destruye todas las pantallas disponibles, para salir completamente del programa. · **PantallaInicio:** Esta es la pantalla principal del juego. Muestra las opciones clave, que son iniciar, puntajes más altos, y salir. Cuando se termina el programa, también regresa a esta pantalla.

· **Reiniciar:** Destruye la pantalla de sumisión de nombre, como también la del juego en sí, y regresa a la pantalla de inicio, con las opciones mencionadas anteriormente.

· **Salir:** Destruye la pantalla del juego y sumisión de datos, para finalizar el juego sin regresar a la pantalla de inicio.

· **Aceptar:** Función que se encarga de tomar el texto que se ingresó en la pantalla de finalizar y lo almacena en una lista de nombres. A la vez, almacena los puntos mayores en una lista. Esta función no contiene parámetros ni devuelve valores.

· **FinalizarJuego**: Función que se encarga de crear la pantalla de finalizar. En esta, se calculan los puntos, se muestra el total de fichas obtenidas, el tiempo que se tardó y los puntos obtenidos. A la vez, aquí es donde se ingresa el nombre para poder ser utilizado en la función aceptar. No contiene parámetros ni devuelve valores.

· **Prueba:** Esta función se utiliza para las diferentes pruebas unitarias de las funciones que devuelven valores. Simplemente usa la instrucción doctest.testmod del módulo doctest para realizar una prueba de funcionalidad del programa.

· **_init_(self,item):** Función predeterminada para la instanciación de un objeto en la clase Movimiento. Los argumentos encontrados en esta función pasan a la expresión de la construcción de clase. Self se refiere al uso interno dentro de la clase, y es un parámetro estándar para esta función. Ítem se refiere al objeto ingresado como argumento en la clase movimiento. Asocia ambos argumentos para poder utilizar sus características dentro de las funciones definidas en la clase.

**Archivo Descargable: **

Home