Diseño+p2g5

Regresar a menu

-- DISEÑO -- **¿Cómo se llevó a cabo la solución?:** Se llevó a cabo la solución por medio de distintos pasos. De primero se creó un análisis preliminar, en el cual se ideó la utilización de botones como dados, y para seleccionarla categoría. Luego se crearon las imágenes de los dados en paint y se utilizaron ‘labels’ para que apareciera el punteo a la par de cada uno de los botones de punteo. Para todo esto, se tuvo que hacer uso de un ‘grid’ para posicionar los botones de un modo ordenado. Luego, con el esquema gráfico, se crearon las funciones para cada botón del juego. Entonces, se condicionaron de acuerdo a las reglas para cada categoría. De último se juntó lo gráfico con el código de las funciones por medio de “callbacks” de los botones a las funciones, terminando así el juego.

**Variables y Objetos:** __** Variables: **__
 * g : contiene el módulo GUI.
 * canvas: es un canvas de 400 x 300 pixels.
 * photo:contiene la imagen del casino.
 * Dado1: contiene la imagen que representa la cara del dado con el valor de 1.
 * Dado2: contiene la imagen que representa la cara del dado con el valor de 2.
 * Dado3: contiene la imagen que representa la cara del dado con el valor de 3.
 * Dado4: contiene la imagen que representa la cara del dado con el valor de 4.
 * Dado5: contiene la imagen que representa la cara del dado con el valor de 5.
 * Dado6: contiene la imagen que representa la cara del dado con el valor de 6.
 * blanco= un dado en blanco, como imagen inicial del juego.
 * gano= imagen de la foto con el mensaje de “WINNER”.
 * A= la imagen del botón 1 (de izquierda a derecha)
 * B=la imagen del botón 2.
 * C=la imagen del botón 3.
 * D=la imagen del botón 4.
 * E=la imagen del botón 5.
 * roll= es el contador de las veces que se rotan los dados.
 * losunos= sirve como contador del punteo de la categoría “1’s”.
 * losdos= sirve como contador del punteo de la categoría “2’s”.
 * lostres= sirve como contador del punteo de la categoría “3’s”.
 * loscuatros= sirve como contador del punteo de la categoría “4’s”.
 * loscincos= sirve como contador del punteo de la categoría “5’s”.
 * losseis= sirve como contador del punteo de la categoría “6’s”.
 * bon= es el contador del bono.
 * subuno= sirve como contador del subtotal
 * tresdeuntipo= sirve como contador de la categoría de “3 de un tipo”.
 * cuatrodeuntipo= sirve como contador de la categoría de “4 de un tipo”.
 * fullhouse= sirve como contador de la categoría de “Full House”.
 * smallstraight= sirve como contador de la categoría de la escalera menor.
 * bigstraight= sirve como contador de la categoría de la escalera mayor.
 * theyahtzee= sirve como contador de la categoría “Yahtzee”.
 * chance= sirve como contador de la categoría “Chance”.
 * subdos= sirve como contador del segundo subtotal.
 * Tot= sirve como contador del total.
 * a= lleva el valor dependiendo de la cara del dado que se obtenga para el primer botón(B1).
 * b= lleva el valor dependiendo de la cara del dado que se obtenga para el segundo botón(B2).
 * c= lleva el valor dependiendo de la cara del dado que se obtenga para el tercer botón(B3).
 * d= lleva el valor dependiendo de la cara del dado que se obtenga para el cuarto botón(B4).
 * e= lleva el valor dependiendo de la cara del dado que se obtenga para el quinto
 * botón(B5).
 * GANO=sirve como contador de los botones de las categorías presionados.
 * B1=primer botón que sirve como el primer dado (izquierda a derecha).
 * B2= segundo botón que sirve como el segundo dado (izquierda a derecha).
 * B3= tercer botón que sirve como el tercer dado (izquierda a derecha).
 * B4= cuarto botón que sirve como el cuarto dado (izquierda a derecha).
 * B5= quinto botón que sirve como el quinto dado (izquierda a derecha).
 * botonsalir= es el botón para cerrar el programa y terminar el juego.
 * botonjuego= sirve para reiniciar todos los contadores y botones.
 * botonrotar= sirve como el botón para que roten los dados, que cambien de imagen.
 * solounos=el botón para la puntuación de la categoría de los “1’s”.
 * S1= es el label en el cual se muestra la puntuación de la categoría de los “1’s”.
 * tresdeunTIPO= el botón para la puntuación de la categoría de “3 de un tipo”.
 * Stresiguales= es el label en el cual se muestra la puntuación de la categoría de “3 de un tipo”.
 * solodos= el botón para la puntuación de la categoría de los “2’s”.
 * S2= es el label en el cual se muestra la puntuación de la categoría de los “2’s”.
 * solotres= el botón para la puntuación de la categoría de los “3’s”.
 * S3= es el label en el cual se muestra la puntuación de la categoría de los “3’s”.
 * FullHOUSE= el botón para la puntuación de la categoría de “Full House”.
 * Fullhouse= es el label en el cual se muestra la puntuación de la categoría del “Full House”.
 * solocuatros= el botón para la puntuación de la categoría de los “4’s”.
 * S4= es el label en el cual se muestra la puntuación de la categoría de los “4’s”.
 * SmallSTRAIGHT= el botón para la puntuación de la categoría de “small straight”.
 * Smallstraight = es el label en el cual se muestra la puntuación de la categoría de “small straight”
 * solocincos= el botón para la puntuación de la categoría de los “5’s”.
 * S5= es el label en el cual se muestra la puntuación de la categoría de los “5’s”.
 * soloseis= el botón para la puntuación de la categoría de los “6’s”.
 * S6= es el label en el cual se muestra la puntuación de la categoría de los “6’s”.
 * solobonus= el botón para la puntuación de la categoría de los “Bonus”.
 * sbonus= es el label en el cual se muestra la puntuación de la categoría de “bonus”.
 * CHANCE= el botón para la puntuación de la categoría de los “Chance”
 * Chance= es el label en el cual se muestra la puntuación de la categoría de “Chance”.
 * Subtotal1= es el label en donde se muestra el subtotal 1.
 * Subtotal2= es el label en donde se muestra el subtotal 2.
 * Total= es un label en el que se muestra el total, sumando subtotal 1 y 2.

**Objetos:**
 * 1) //Widgets//, elementos que forman la interfase grafica Gui en phyton y consta de elementos como botones y canvas.
 * 2) //Canvas//, el espacio en donde van contenida las figuras geométricas
 * 3) //Labels,// se utilizaron para colocar los punteos de cada categoría, ejemplo para calcula la cantidad de 1s.
 * 4) //Grids,// es un widget que se utilizó para alinear lo botones y posicionarlos en la forma que se deseaba. Campos donde van las columnas
 * 5) //Columnas (colums),// Se utilizaron para decir en que posición se deseaban los botones. Distribución de los objetos.
 * 6) //Filas (Raws),//Se utilizaron para decir en que posiciones se deseaban los botones solo que en esta ocasión fue en filas.

**Descripción del curso lógico de la solución:** Por primera acción, se realizó un análisis a papel en donde se definió el bosquejo de lo gráfico, y las funciones para cada botón. Luego utilizando el módulo GUI, se creó lo que fue el bosquejo, o la armazón, de lo gráfico, empezando por los botones de “Salir”, “Juego nuevo”, “Rotar” y los 5 botones para los 5 dados. Para ello se utilizó lo que fueron filas, columnas y grids, y así poder posicionarlas de un modo funcional. Luego, se crearon las imágenes de los dados y se importaron. Por consiguiente, se efectuó lo que fue el inicio de las funciones, siendo la función de rotar, haciendo uso del módulo random, la primera de las funciones. Luego, se crearon los demás botones y sus respectivas funciones (callbacks) definiendo cada función de acuerdo a los lineamientos de la puntuación y se crearon labels las cuales se posicionaron a la par de cada uno de los botones, y se configuraron para que al seleccionar el botón en donde se quisiera ingresar el punteo, apareciera el punteo obtenido. Por último, se realizó lo que fue el funcionamiento de los botones de “Salir” y “Juego nuevo”, prácticamente reinciando cada contador, y utilizando el comando predefinido de “quit” y se importó el módulo de doctest, para las pruebas, sin embargo, no había parámetros dentro de las funciones por lo que no se probó con elementos dentro del dosctring de cada función.

· Random: Se utilizó para seleccionar las imágenes de los dados, en una lista que los contenía. · Gui: Se utilizó para todo lo que fue la parte gráfica, es decir todo lo que fue widgets y objetos como las imágenes. · Doctest: se utilizó para lo que son las pruebas unitarias para cada una de las funciones desarrolladas.
 * Módulos de Python utilizados: **

**Funciones creadas:** Ninguna de las funciones creadas tiene parámetro alguno. · doc : se importó el módulo doctest y se utiliza para lo que son las pruebas unitarias. · Nuevo: esta función reinicia lo que son los contadores a sus valore iniciales, y lo botones que se encontraban deshabilitados, los habilita poniéndolos en su estado “normal”, entonces se puede volver a empezar a jugar. · Gano: Esta función se activa cuando todos los botones de los punteos son presionado (los cuales son 13), entonces se cambia la imagen del casino por una imagen con el mensaje de “Winnner”. · Rotar: En esta función se hace uso del módulo random, y sirve para que los botones correspondientes a los dados, cambien de imagen escogida al azar. Además se le da el valor correspondiente a cada imagen. · unos : Esta función suma la cantidad de imágenes con valor de uno y coloca la suma en el label a la derecha del botón. · dos : Esta función suma la cantidad de imágenes con valor de dos y coloca la suma en el label a la derecha del botón. · tres : Esta función suma la cantidad de imágenes con valor de tres y coloca la suma en el label a la derecha del botón. · cuatros : Esta función suma la cantidad de imágenes con valor de cuatro y coloca la suma en el label a la derecha del botón. · cincos : Esta función suma la cantidad de imágenes con valor de cinco y coloca la suma en el label a la derecha del botón. · seis : Esta función suma la cantidad de imágenes con valor de seis y coloca la suma en el label a la derecha del botón. · Sub1: Esta función sirve para ir acumulando el punteo que se obtiene en lo que son las categorías (1’s, 2’s, 3’s, 4’s, 5’s, y 6’s) más el punteo del bonus si es que hubiera. · Sub2: Esta función sirve para ir acumulando el punteo que se obtiene en lo que son las categorías (3 de un tipo, 4 de un tipo, Full House, Small straight, Big straight, theyahtzee,y chance) más el punteo del bonus si es que hubiera. · tot: Dicha función sirve para sumar lo que son el valor obtenido en las funciones de Sub1 y Sub2. · Bonus : La función verifica que si la suma de las categorías (1’s, 2’s, 3’s, 4’s, 5’s, y 6’s) es mayor o igual a 63, entonces se le suma al Sub1, 35 puntos más. · trestipo : Esta función verifica si existen 3 imágenes iguales en los dadosy suma el valor de las tres imágenes nada más. · cuatrotipo : Esta función verifica si existen 4 imágenes iguales en los dadosy suma el valor de las cuatro imágenes nada más. · fh : Esta función verifica si existen dos dados con la misma imagen y los otros tres dados con otra imagen igual, y si existiera, entonces suma 25 puntos al final. · ss : Esta función verifica si existe una escalera menor, es decir una secuencia de cuatro números sin importar el orden y suma 30 puntos. Por ejemplo: 1, 2, 3, y 4. · bs : Esta función verifica que exista una secuencia en los cinco “dados” sin importar el orden y suma 40 puntos. Por ejemplo: 1,2, 3,4 y 5 ó 2,3,4,5 y6. · ty : Esta función verifica si las imágenes de los 5 “dados” son iguales, entonces suma 50 puntos. · chan : Esta función funciona sumando todos los puntos de los dados en pantalla y no requirió de ningún tipo de condición.

detener : Esta función contemplaba que al presionar un dado, el dado no cambiaría de imagen, hasta que fuera presionado otra vez es la unica funcion con parametro de letra

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

-------- --- -