InvestigacioncortA+g4

Análisis de Requerimientos
Preguntas insustituibles junto con una breve narración de cómo llegó a la solución propuesta.

1) ¿ Cual es la meta ?

Crear un programa con interfaz gráfica, que sea un juego de entretenimiento y relacione programación con gráficos. Las salidas del programa son los cuadros de juego, el número de movimientos que lleva el usuario, y el puntaje final.

2) ¿Cuales son los datos?

Cada botón que el usuario maneja es una entrada. Entonces entre las entradas están si el usuario quiere jugar, quiere solicitar ayuda, si el usuario quiere reiniciar el juego, y si quiere salir del programa.

3) ¿Cuales son las condiciones?

El usuario solo puede mover los cuadritos si están a uno o a cero cuadros de la casilla vacía; el usuario solo gana si logra pasar todos los cuadros de un color al otro lado y viceversa. Entre menos movimientos realice acumulara mas puntos. l usuario pude reiniciar el juego en el momento en que él quiera.

4) ¿Que procesos necesito ?

Se despliega la pantalla del juego, y si usted no sabe jugar correctamente el juego tiene la opción de ayuda donde se despliegan las instrucciones, si no quiere jugar este juego tiene la opción de salir del programa, si elige la opción de jugar empieza el juego, y le aparece el tablero con los cuadros rojos y azules para que empiece a jugar.

El intérprete mostrara en pantalla la interfaz grafica al finalizar el juego mostrara la cantidad de puntos que acumulo dependiendo del numero de movimientos que realizo para lograr terminar los cuadros.

Diseño:
1) ¿Como llevará a cabo la solución?

Para esto se llevarán a cabo la creación de varias funciones las cuales contendrán una asignación de valores, repeticiones, o condiciones. Estas funciones se utilizarán para desarrollar el programa y poder saber la cantidad de movimientos realizados por el usuario para terminar el juego, y así poder determinar la cantidad de puntos alcanzados. Las funciones tienen designadas variables para poder llevar un buen control de forma ordenada. Se crearon condiciones para que el usuario solo pueda mover los cuadro que están a no o a cero cuadros de la casilla vacía.

2) Descripción del curso lógico de nuestro programa

Primero se presenta una pantalla del interfaz grafico donde aparecen opciones de menú que el usuario puede escoger; ya sea la opción jugar, ayuda o salir del juego. Si elige la opción salir, este terminara el juego y la ejecución de dicho programa. Si se elige ayuda, se desplegaran una serie de instrucciones breves explicando como funciona el juego. Si elige la opción jugar, aparecerán los cuadros con cuadritos rojos y azules, los cuales el usuario tendrá que mover y empieza el conteo de movidas.

3 ) Módulos de Python utilizados y como serán utilizados en nuestro programa

Los módulos utilizados en este programa fueron los siguientes. El modulo GUI que es el que ayudo a crear la parte grafica del juego (los cuadros, las pantallas); con ayuda del modulo Tkinter que se utilizó para poder usar todas las propiedades graficas en el desarrollo lógico del programa; como los botones los labels, etc. También se utilizo canvas_coords para saber en que coordenadas o en que cuadrito hacia click el usuario. Y bind que se utilizo para mover los cuadritos de lugar. 

Conclusiones
· Un conocimiento que se adquirió en esta práctica fue el de mejorar el utilizar más a fondo el módulo Gui.

· Las listas reducen el código en cuanto a las variables globales, ya que estas pueden ser almacenadas y modificadas dentro de una lista.

· Tener la meta definida antes de comenzar ayuda a planear la realización del programa y hace que sea más sencillo construirlo.

· Se pudo demostrar que el utilizar funciones hace que el código del programa sea más corto y este no sea repetitivo, a la vez, de esta manera, es más sencillo buscar bugs en el programa.

** Bibliografía ** 1. Downey, A. (2008). //Think Python: How to Think Like a Computer Scientist.// Massachusetts: Green Tea Press. ISBN 13:9780521898119. [|http://www.thinkpython.com].

2. González, R. (n.d.). //Python para todos.// Web: [].

3. Python Software Foundation. (2008). //Python v2.6.2.// Adquirida en julio, 2009, from Python Software Foundation Web page. Web site: []