Está en la página 1de 4

2do

Introduccin a la Programacin

semestre de 2013

Introduccin a la Programacin

Trabajo Prctico N 1  Poker Crush

Introduccin
El trabajo consiste en implementar un juego de Poker, cuyo objetivo es buscar o armar
jugadas de Poker con las cartas que aparecen en la pantalla. Gran parte del juego ya est hecha,
solamente falta implementar las funcionalidades ms importantes.

1.

El Juego del Poker

Reglas del Juego


Se juega de a un jugador, que cuenta con 240 segundos para armar la mayor cantidad de
jugadas de Poker con las cartas que estn en pantalla. El jugador debe mover las cartas por la
pantalla indicando la posicin de la carta y hacia donde la quiere mover (8 direcciones) utilizando
el cursor del teclado. Cuando una jugada es armada, es decir, est en la pantalla, se deben sumar
puntos al jugador. Inicialmente solo se debe buscar poker horizontal y vertical.

Lo que ya esta implementado


El juego actualmente consta de un archivo con el programa principal. Este se encarga de
capturar la entrada del teclado, llevar la cuenta de los puntos y del tiempo, as como tambin de
dibujar en la pantalla.
El programa principal cuenta tambin con:
dos variables de tipo

lista

que guardan la posicin que indica el usuario (la y columna)

desde y hasta donde quiere mover las cartas.


una variable de tipo

lista

que es una matriz que guarda las cartas que est en pantalla.

direccion[0] vertical
direccion[1] horizontal
1
-1
1
-1
Las cartas se componen de un nmero del 1 al 13, que representan el valor del naipe y de
un color del 1 al 4 que representan los palos. Cada carta tiene asociada una posicin en pantalla
en la cual se accede mediante la matriz. El programa recorre la matriz por las y columnas,
reconociendo las jugdas vlidas.
Para la mayora de estas tareas, el programa hace uso de una biblioteca de cdigo llamada

PyGame. Una biblioteca de cdigo es un conjunto de subprogramas utilizados para desarrollar


software. En particular PyGame es una biblioteca especialmente diseada para el desarrollo de
juegos interactivos en Python.
En la Matriz, la posicin
la derecha y las

(0, 0) de la pantalla es el vrtice inferior izquierdo, las x crecen hacia

crecen hacia arriba.

Pgina 1 de 4

2do

Introduccin a la Programacin

semestre de 2013

Lo que falta implementar


Aun faltan implementar las funciones del archivo

funciones.py. Estas funciones son utiliza-

das desde el programa principal.


La funcin

Swap()

recibe la matriz y dos listas de posiciones, debe realizar el enroque de

cartas indicado por el usuario.


La funcin
La funcin

InitMat(mat) debe generar la matriz de cartas.


BuscarPokerPorColumna(screen, mat) que debe

reconocer si se form poker en

alguna columna de la matriz de cartas.


La funcin

BuscarPokerPorFila(screen, mat) que debe reconocer si se form poker en alguna

la de la matriz de cartas.


La funcin

Bajar()

que debe eliminar las cartas correspondientes a la jugadas formadas, bajar

todas las columnas por encima de la jugada formada y poner nuevas cartas en la la superior
de las columnas que bajaron, indicar los puntos a sumar por el usuario.

2.

Cmo empiezo

2.1. Instalar PyGame


La versin ms reciente de PyGame para Windows y Python 3.1 se descarga directamente
desde http://pygame.org/ftp/pygame-1.9.1.win32-py3.1.msi. para diferentes versiones, chequear
http://www.pygame.org/download.shtml. Al momento de instalar PyGame, el programa de instalacin intentar reconocer la versin de Python instalada en la computadora. De no detectarla
correctamente, se sugiere no continuar con la instalacin, dado que PyGame no funcionar. En
ese caso chequear que la versin de PyGame sea la indicada para la versin de Python. En nuestro
caso es la 3.1.

2.2. Descargar archivos


Descargar del moodle de la materia el archivo comprimido con todos los archivos necesarios

.py
funciones.py pero a la hora

para el TP. Descomprimir todo el contenido del archivo en una carpeta y abrir los archivos
con el PyScripter. El nico archivo que se espera que modiquen es
de ejecutar el proyecto, hay que ejecutar el archivo

3.

principal.py.

Consigna
Implementar las funciones requeridas para el correcto funcionamiento del juego.
Pensar e implementar funciones auxiliares que resuelvan tareas intermedias, de forma tal que

el cdigo sea ms claro, sencillo, ordenado, legible y fcil de corregir.


Por cada funcin implementada es recomendable incluir un archivo

.py

de pruebas separado

que contenga casos de test para dicha funcin. Las pruebas deben cubrir la mayor cantidad de
casos posibles, concentrndose principalmente en los casos complicados.
Las funciones que reciben listas como parmetros debern tambin chequear que dichas listas
permanezcan en el estado correcto luego de utilizada la funcin.
Sugerimos

fuertemente

probar y corregir las funciones ms sencillas antes de encarar las

funciones ms complicadas.

4.

Requisitos de aprobacin y criterio de correccin


El presente trabajo debe realizarse en grupos de 2 o 3 integrantes. Para aprobar el trabajo,

se deber cumplir los siguientes items:

Pgina 2 de 4

2do

Introduccin a la Programacin

semestre de 2013

El juego debe funcionar correctamente.


El cdigo debe ser claro. Es decir, las variables y funciones deben tener nombres que hagan
fcil de entender el cdigo a quien lo lea, y deben haber comentarios que ayuden al fcil
entendimiento de cada porcin de cdigo. Adems debe hacer funciones siempre que se
considere necesario, y se evaluar el buen uso de las mismas.
El cdigo debe ser coherente. Es decir, no deben haber variables que no se usan, funciones
que tomen parmetros que no necesitan, ciclos innecesarios, etc.
Los casos de prueba deben ser completos y debe ser posible correrlos de nuevo por cualquiera.
Nota: El correcto funcionamiento del juego no es suciente para la aprobacin del trabajo,
son necesarios todos los items mencionados arriba.

5.

Opcionales
Las siguientes funcionalidades del juego no son necesarias para la aprobacin (con nota mni-

ma), pero sirven para mejorar la nota del trabajo. De optar por hacerlas, se aplican las mismas
reglas y criterios de correccin que para las funcionalidades bsicas. Cualquier otra funcionalidad
extra que se desee implementar debe ser antes consultada con los docentes.

Completo
Agregar Escalera, Escalera Real, Full y Pierna.

Efectos de sonido
Hacer que el juego reproduzca efectos de sonido cuando sucedan los eventos ms importantes,
movimiento de cartas, armado de jugadas, errores, etc.

Mejores records
Hacer que el usuario luego de jugar tenga la opcin de ingresar su nombre y se muestren los

mejores puntajes histricos con sus nombres.

Diferentes niveles 1
Que el usuario tenga opciones de niveles donde se modique el juego, por ejemplo, el usuario
indica el tamao de la matriz.

Diferentes niveles 2
Que el juego pueda tener distintos tamaos de jugadas (juegos con 3 cartas, con 4 cartas, 5
cartas, etc.) y los puntos acordes al tamao y la dicultad de la jugada armada.

Diferentes niveles 3
Que el juego reconozca distintas jugadas y los puntos acordes al tamao y la dicultad de la
jugada armada.

Juego predenido
Leer de un archivo la matriz de inicio y las nuevas cartas que bajan cuando se forman jugadas.

Pgina 3 de 4

2do

Introduccin a la Programacin

6.

semestre de 2013

Fecha de entrega
El trabajo debe ser presentado en la computadora en forma de pre-engrega el 15 de Noviembre.

Ese da no se dene la nota, slo se muestran los avances y se hacen sugerencias para mejorar lo
hecho. Para la entrega completa hay tiempo hasta el mircoles 29 de Noviembre de 2013.

7.

Forma de entrega
El TP se considera correctamente entregado y apto para ser corregido si se cumple con la

entrega presencial, la impresa y la digital.


La entrega presencial es donde se muestra el correcto funcionamiento del programa. Deben
asistir a la misma todos los integrantes del grupo y es necesario que todos los integrantes
entiendan precisamente todo el trabajo realizado por todo el grupo.
La entrega impresa consiste de un informe impreso donde haya una introduccin que explique de qu se trata el trabajo (explicado para alguien que no ley el enunciado), que
incluya el cdigo de las funciones implementadas y una breve explicacin de cada una de
ellas junto con las dicultades de implementacin con las que se encontraron. No se deben
imprimir los casos de prueba. El informe tambin debe incluir las decisiones que hayan
tomado ante diferentes alternativas posibles, cules fueron sus alternativas consideradas y
por qu tomaron esas decisiones. El informe

no

debe incluir prrafos para ocupar lugar,

explicaciones de funcionalidades bsicas de Python, PyGame o de programacin en general.


La entrega digital consiste en enviar un e-mail de la siguiente manera:
1. A las cuentas sguala@ungs.edu.ar, fbottino@ungs.edu.ar.
2. Con asunto entrega-tp: <nro-grupo>.
3. Adjuntando por separado un archivo comprimido con los archivos que conforman el
cdigo fuente de

todo el programa y un archivo con el informe (preferentemente en

formato pdf ). El cdigo debe cargar sin errores o no ser corregido.


Nota: Se acepta una sla entrega por grupo, de modo que si un grupo entrega su trabajo ms
de una vez, los docentes elegirn cul de las versiones entregadas corregir.

Pgina 4 de 4

También podría gustarte