analisisydiseño8


 * ANÁLISIS **
 * Salida : ** Movimiento de los polígonos en el tablero.


 * Entrada: ** Click del mouse sobre el polígono.

· Al iniciar el juego los polígonos rojos se encuentran del lado izquierdo. · Al iniciar el juego los polígonos azules se encuentran del lado derecho. · Son 8 polígonos rojos y 8 polígonos azules. · Debe existir un espacio en blanco para poder mover los polígonos. · Se debe tener un contador de movimientos.
 * Restricciones: **

· ** Dibujo: ** Se repetirá el dibujo del tablero, para lo que se utilizaran 2 for para recorrer las matrices. Se dejaran de ejecutar cuando el juego concluya.
 * Repeticiones: **


 * Meta: ** Crear un programa de lenguaje python que simule el juego Swap.

**  DISEÑO ** ** Funciones: ** · ** Ganar: ** Está función devuelve “True” si el usuario gana el juego, y “False” si el usuario aún no gana el juego. No recibe parámetros.

· ** Mover: ** Está función contiene los movimientos posibles a realizar en el juego. Los parámetros que recibe son: x, y. Que representan las filas y columnas del tablero.

· ** Dibujo: ** Está función dibuja el tablero del juego y contiene la única repetición de todo el programa. No recibe parámetros.

· ** ButtonPressed: ** Está función sirve para dar las coordenadas del click del mouse. Recibe como parámetro: event. Y se ejecutará cuando se realice un click. Se utilizó el módulo Tkinter el cual  es la interfaz estándar de [|Python]  , o tambien llamada caja de herramientas GUI del Tk.   consiste en un número de módulos que podemos importar desde [|Python]  para poder generar aplicaciones visuales  Variables  Se utilizó una variable de movimiento m, además se utulizo root = Tk el cual da todos los objetos que esta libreria (Tkinter) permite com botones, canvas, checkbox, etc. Las variabnles globales eran plano (matriz del juego) y plano 2 (matriz ganar) las cuales son matrices del juego y estas al momento de ganar son comparadas.
 * Módulo**

Es importante mencionar que se utilizo canvas.bind("",buttonPressed) para llamar un atributo de botones del teclado o el mouse y por consiguiente llamado al click izquierdo. ** Algoritmo Narrativo: ** INICIO Descargar python Descargar el script de Swap. Ejecutar el programa Swap. Mostrar tablero del juego Swap y contador de movimientos. Mientras exista un espacio en blanco en el tablero, entonces, se podrá mover un polígono a este espacio. Mientras se realice un click con el mouse, entonces, el contador de movimientos aumentará uno. Mientras existan polígonos rojos del lado izquierdo y polígonos azules del lado derecho, entonces, el juego continuará. Sí todos los polígonos rojos se encuentran del lado derecho y los polígonos azules se encuentran del lado izquierdo, entonces, se finalizará el juego. Mostrar mensaje de victoria y el numero de movimientos que realizo. fin

Conclusiones 1. Se aprendió a utilizar el módulo Tkinter, asi cmom sus beneficiso para la reazación de este proyecto. 2. Para facilitar la utilizacion de los objetos de alguna libreria importada se debe asignar a estos objetos una variable, para poder ser llamados con facilidad. 3. Se aprendió a dominar mejor un canvas y a crear una imagen que estubiera sobre otra. 4. <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%; line-height: normal;"> Para llamar a los atributos de hardware o de botones (teclado o mouse) se utiliza canvas.bind, con este podemos detectar dichos atributos. 5. El uso de matrices en lenguaje python, facilita y reduce el trabajo de la creacion de un programa como este, ya que al ser estas llamadas no se necesitan muchas repeticiones en este programa. Bibliografía
 * 1) __Downey, Allen. 2008. Think Python, How to Think Like a Computer Scientist. Version 1.1.19, Green Tea Press, Needham, Massachusetts,__ 201 pp.
 * 2) González Duque, R. Pthyton para todos, España, 160 pp.
 * 3) <span style="font-family: Arial,Helvetica,sans-serif; font-size: 17.6px; line-height: 17px;"> [|Python software foundation], Phyton programming language, copyright 1990-2009, [Versión electronica], obtenido de <span style="font-family: Arial,Helvetica,sans-serif; font-size: 17.6px; line-height: 17px; text-decoration: none;">[] , recuperado el 1/11/2009.
 * 4) Van Rossum, G. 2001. Phyton reference manual, [Versión electrónica], obtenido de <span style="font-family: Arial,Helvetica,sans-serif; font-size: 21px; line-height: 17px; text-decoration: none;">[] ,recuperado el 9/10/2009
 * 5) Swampy, Recuperado el 8/11/2009 de []
 * 6) [|http://wiki.python.org/moin/TkInte]
 * 7) Marzal, Andrea y García, Isabel. Introducción a la programación con phyton <span style="-webkit-text-decorations-in-effect: none; color: #000000; font-family: arial,helvetica,sans-serif; font-size: 13px; line-height: 19px;">#### ¨ @http://marmota.act.uji.es/MTP/pdf/python.pdf

Copyright ® designed by Andrea, Celeste and Yazmin © 2009