analisiss20g3

Menú



__Meta__  En pantalla se mostrarán dos partes, la mitad de l a pantalla mostrará las cartas que el jugador sólo observará y la otra mitad mostrará las cartas que el jugador podrá modificar para encontrar la inversa de cada carta mostrada. El jugador gana cuando modifica las diez cartas a la inversa de las cartas originales. __Entradas__  Clicks del usuario sobre cada carta para voltearla  __Condiciones__ El jugador debe colocar cada carta a la inversa de la carta original El jugador debe dar un click sobre cada carta para girarla. El jugador sólo puede pasar 10 niveles. El jugador debe presionar el botón Jugar para aumentar de nivel y seguir jugando En cada nivel sólo se irá aumentando una carta a la vez. __Procesos__ Después de haber creado todo el código del programa, el jugador debe poner a correr el código para poder jugar. Primero le aparecerá una ventana que le muestra la opción de jugar. Una vez que hace click el usuario sobre este botón, el juego comienza. Se mostrarán dos cartas del lado izquierdo que sólo se podrán observar y dos cartas del lado derecho que el jugado podrá modificar. El objetivo es que el jugador voltee las dos cartas del lado derecho de manera que queden ala inversa de las cartas originales, como una especie de reflejo de un espejo. Cuando el jugador logra este objetivo, le aparecerá en pantalla un botón con la opción de jugar de nuevo, y esto le aumentará de nivel pues le aparecerá una carta más a medida que avance en el juego. El juego termina cuando el jugador logra voltear las cartas en los diez niveles. 

__**Narrativa del proceso de solución**__ Para realizar este programa, decidimos utilizar el módulo Tkinter pues consideramos que contenía las funciones y opciones necesarias para poder crear el juego. Luego de eso, se creó la ventana con la función “Clase” y se instanció para poder inicializarla con la ayuda de la función “_init__” .__Una vez establecido esto, se pudo comenzar a trabajar en el código. Se definieron varias funciones para el juego. La primera fue la función “ponercartas”, que nos permite colocar cada carta en las posiciones correspondientes para que se asemejara a un espejo. También se creó una función llamada Voltear, la cual le permite al usuario darle vuelta a las cartas invocando a su inversa. Esta función también me permite continuar con los siguientes niveles. Otra de las funciones que se creó fue “Gano”, la cual revisa si el jugador ganó la partida. Si sí ganó, entonces el objeto de self.gano recibe de parámetro a la función Gano y me permite subir de nivel al agregar una carta más a la ventana. Cuando la pantalla muestra las diez cartas, el juego finaliza y el jugador gana la partida. 

 **__Fórmulas utilizadas, valores constantes__**  Para este proyecto se decidió crear una clase, la cual contendría los atributos y métodos de los objetos. Se decidió crear distintas funciones a las que se les asignó una tarea diferente. Estas no devuelven valores, por lo que no se les puede aplicar el docstring ni doctest. También, se utilizaron listas para agrupar las fotos de las cartas originales y sus inversas para que pudieran ser llamadas por las distintas funciones creadas anteriormente.