Invgrupo8

(a) Preguntas insustituibles junto con una breve narración de cómo llegó a la solución propuesta. · __ Salidas (meta): __ Crear un programa con interfaz gráfica, que sea un juego de entretenimiento y relacione programación con gráficos, esto para que el usuario se divierta adivinando las cartas que python genera para ellos. · __ Entadas (Datos ____ ): __ Cada botón que el usuario maneja es una entrada. Entonces entre las entradas están si el usuario quiere jugar con todo el mazo o con el mazo incompleto, y si el usuario quiere reiniciar el juego. La cantidad que quiere apostar, la cual pude subir o bajar de cinco en cinco. La decisión entre si la carta es mayor o menor a la anterior. La pista que se le da al usuario si no sabe qué decisión tomar. · __ Condiciones: __ El usuario no puede apostar más puntos de los que tiene, la cantidad mínima de apuesta es de cinco puntos e inicia apostando 10 puntos. Si el usuario quiere ayuda, ésta le resta tres puntos. Se muestra una carta cada vez que el usuario de click el botón de mayor o menor. Si el usuario oprimió el botón de mayor y la carta que se coloca luego es mayor o si oprime el botón de menor y la carta que se coloca luego es menor, entonces el usuario gana lo que aposto; pero si el usuario decide que la carta es mayor y no acierta o si decide que la carta es menor y no acierta, entonces pierde lo que apostó. Cuando el usuario ya aya elegido si quiere jugar con el mazo completo o si quiere jugar sólo con una parte del mazo, el usuario ya no podrá cambiar de nivel. El usuario pude reiniciar el juego en el momento en que él quiera. · __ Proceso: __ Para poder cumplir la meta se debe hacer un programa que genere cartas aleatoriamente el cual cumpla con las condiciones; si el usuario desea jugar con el mazo completo o incompleto generando las cartas necesarias para el usuario. · __ Resultado: __ El intérprete mostrara en pantalla la interfaz grafica al finalizar el juego mostrara si gano o perdió el juego dependiendo si le quedan o no puntos. (b) Fórmulas utilizadas, valores constantes de la fórmula, funciones matemáticas, etc. · Fórmulas utilizadas: Para determinar la probabilidad de la respuesta o menor = menor / 9 o mayor = mayor / 9 o - Valores constantes: Las cartas generadas por el modulo random · No se utilizaron funciones matemáticas. (a) ¿Cómo llevará a cabo la solución? Variables y objetos a utilizar. · Teniendo en cuenta que son 13 o 52 cartas, dependiendo el nivel, se define una función para cada botón que genera una acción en el programa (con un total de 10 funciones). Los gráficos son generados por la computadora por medio de “Tkinter” y las cartas son generadas aleatoriamente por medio de “random”. · El programa cuenta con 40 puntos restándose y sumándose dependiendo del curso del juego, por medio de contadores; al agotarse los puntos, el programa finaliza. Si se llegan a revertir todas las cartas sin perder sus puntos gana el juego y puede dar clic en el botón de jugar de nuevo para volver a empezar. · Se creó una clase para poder manipular las propiedades de todas las variables en todas las funciones del juego, esto facilita el desarrollo lógico del programa. · Las variables utilizadas en todo el juego son las siguientes: __ Mazo completo e incompleto: __ self.puntos = 40 self.apuesta = 10 self.maximo = 0 self.contador = 1 self.cartaAnterior = 0 self.carta = 0 self.numcarta = 0 self.desicion = False self.revisar=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53] nombre = str(i+1) + ".gif" self.list_lab = [1,2,3,4,5,6,7,8,9,10] self.maximo = 13 self.maximo = 52 numero = random.randrange(1,self.maximo) menor = menor / 9 mayor = mayor / 9 (b) Descripción del curso lógico de la solución del problema Inicio 1.Observar el cuadro de gráficos. 2.Si el usuario da clic en mazo incompleto jugar con mazo incompleto(13 cartas del mazo) para que inicie el juego. Fin condición. 3.Si el usuario da clic en mazo completo mostrar todas las cartas ( 52 cartas del mazo) para que inicie el juego Fin condición 4.Si el usuario da clic en mayor y acierta se le suman puntos Fin condición. 5.Si el usuario da clic en menor y acierta se le suman puntos Fin condición 6.Si el usuario da clic en mayor y no acierta se le restan puntos Fin condición. 7.Si el usuario da clic en menor y no acierta se le restan puntos Fin condición 8.Si el usuario pide ayuda se le restan puntos Fin condición. 9.Si el usuario no pide ayuda no se le restaran puntos Fin condición 10. Si el usuario da se queda sin puntos pierde el juego Fin condición. 11. Si el usuario revierte todas las cartas sin perder todos sus puntos gana el juego Fin condicion Fin
 * Investigación Corta **
 * (1) Análisis de Requerimientos: **
 * (2) Diseño: **

(c) Módulos de Python utilizados. · Random: Del módulo “random”, se utiliza “randrange” para que la máquina genere las cartas “aleatorios”. Mediante “random.randrange” · Tkinter: Este modulo se utilizó para poder usar todas las propiedades graficas en el desarrollo lógico del programa; como los botones los labels etc.

(d) Funciones desarrolladas por el programador. 1. Una función que se llame a si misma para generar el frame y los labels y todos los botones en donde se le da comandos a los botones para que llame a la función que haga la acción necesaria para cada botón. 2. Una función que incremente la apuesta por medio de las variables que cuentan los puntos dependiendo si el usuario decide incrementar la apuesta se incrementara un contador 3. Una función que reduzca la apuesta por medio de las variables que cuentan los puntos dependiendo si el usuario decide reducir la apuesta se reducirá un contador 4. Una función que coloque aleatoriamente las cartas que el usuario deberá adivinar por medio del modulo random para que las coloque aleatoriamente. 5. Una función que coloque únicamente 13 cartas aleatoriamente, esto se haría con el modulo random ya que las cartas se guardaron con nombre de números facilita la manipulación de las mismas, que sería el nivel fácil. 6. Una función que coloque únicamente 52 cartas aleatoriamente, esto se haría con el modulo random ya que las cartas se guardaron con nombre de números facilita la manipulación de las mismas, que sería el nivel Difícil. 7. Una función que inicialice todas las variables y los labels para que puedan jugar de nuevo el juego esto se haría igualando las variables a cero y lo que contengan los labels a strings vacios. 8. Una función para que el usuario pueda adivinar si la carta que sigue es mayor esto por medio de condiciones y variables contadoras para indicar si acertó. 9. Una función para que el usuario pueda adivinar si la carta que sigue es menor esto por medio de condiciones y variables contadoras para indicar si acertó. 10. Una función que proporcione ayuda al usuario, esto para que tenga una idea de que carta sigue. Esta función contiene formulas de probabilidad en las que cuanta el numero de cartas y las posibilidades de que salga mayor o menor. · Desarrollamos un pensamiento lógico que se asemeja al sistema de ejecución Python que nos ayudó a crear funciones que ayude a la ejecución de los graficos. · Nos desenvolvimos utilizando el lenguaje de Python, utilizando correctamente sus módulos, símbolos matemáticos y demás caracteres. Fue de especial utilidad el módulo “random” y el modulo “Tkinter”. · Entendimos el uso de botones, frame y labels, las cuales son de utilidad en la programación con graficos. · Perfeccionamos el uso de los contadores, los cuales hacen que el programar sea más fácil y rápido. Los contadores nos ahorraron tiempo y, por medio de ellos, se logró que el programa fuera más ordenado. · Aprendimos a ordenar las funciones e instrucciones para permitir que el programa se lleve a cabo de la manera en que nosotros queremos. · Por medio del proyecto, obtuvimos una mejor comprensión de los conceptos de Python; esto nos ayudó para que en el futuro podamos programar de manera ordenada, eficiente y lógica implementando gráficos de una manera más eficiente.
 * (3) Conclusiones **
 * (4) Bibliografía **
 * Python v2.6.2 documentation. **GLOBAL MODULE INDEX.** 2009. []
 * Python v2.6.2 Python inferface to Tcl/ Tk. []
 * González Duque, R., **PYTHON PARA TODOS.** 2009. [] . p. 160.
 * Gracia, I. y A. Marzal, **INTRODUCCiÓN A LA PROGRAMACIÓN CON PYTHON.** 2009. p. 304.