Práctica Especial: Tetris
Convocatoria de Septiembre 2002-2003
El proyecto de septiembre es completamente distinto del realizado
durante el curso y además su realización es individual.
El proyecto para esta convocatoria es el conocido juego del Tetris
(figuras geométricas que van cayendo, encajando unas con otras
y eliminando las filas que se completen.
El proyecto debe cumplir los siguientes requisitos:
- Estructura en C (sólo la estructura principal del
programa), desde donde se harán llamadas a funciones escritas
completamente en ensamblador, que serán las que realicen completamente
la tarea seleccionada. Se deberán incluir obligatoriamente paso
de parámetros desde C a ensamblador y desde ensamblador a C.
- Todas las funciones de ensamblador estarán incluidas
en una librería, al menos, que será llamada desde el compilador
de C..
- El manejo de pantalla se realizará mediante acceso
directo a memoria en modo gráfico.
- El programa se debe poder dejar residente en un instante
dado, con la combinación de teclas <ALT> R, devolviendo
el control al sistema operativo. Todo el entorno quedará grabado
en memoria, de modo que se pueda volver al mismo punto tras volver a pulsar
<ALT> R.
- Debe permitir grabar una partida no terminada a disco y salir
del programa, pidiendo el nombre del fichero, tras pulsar <ALT>
S. Esta salida no deja el programa residente. Cuando el programa comienza
deberá preguntar, además del nivel, si se desea recuperar
una partida anterior del disco.
- El nivel determina la velocidad de caída de las piezas.
Esta temporización se deberá controlar mediante la
INT 1Ch o bien programando el timer del RTC descrito en el
proyecto de este curso.
- Se debe llevar un control de los puntos obtenidos en función
de las filas que van desapareciendo. Esta puntuación deberá
presentarse por pantalla.
- Se debe mantener un fichero de registros de las 5 mejores
puntuaciones, indicando nombre y puntos.
- La elección de las teclas asociadas a las funciones
de rotación de las piezas y de caída rápida serán
a elección del programador, así como el tamaño del
"tablero" de juego.
- Durante la caída de una ficha, se presentará
en pantalla la siguiente ficha a caer. Convendría que los colores
de las fichas fueran diferentes entre sí.
Las formas de las fichas son (según creo recordar)
Los colores de cada una de ellas se dejan a la elección
del alumno.
Opciones avanzadas: Con el objeto de realizar un
proyecto más completo se incluyen unas opciones que se podrán
realizar de forma voluntaria:
- Control de las fichas mediante el ratón. Botón
izquierdo: giro; botón derecho: caída.; desplazamiento
del ratón izda-decha: desplazamiento de la ficha izda-decha.
- Inclusión de diferentes sonidos asociados a diferentes
acciones: salida de nueva ficha, eliminación de fila, rotación
de la ficha, superación del record anterior, etc.
Para resolver cualquier duda se puede consultar con los profesores
de prácticas.
Se puede aportar cualquier funcionalidad que se os ocurra durante
la programación, siempre manteniendo los requisitos descritos
anteriormente.
Si hay algún punto que no puedes resolver, intenta hacer
el resto, algo que funcione, más o menos. Tendrá su penalización
pero será mejor tener algo funcionando que mucho código
inútil.
Es imprescindible la entrega de una documentación,
compuesta por el manual de usuario y una descripción del código:
diagrama de bloques, pseudocódigo, estructura de datos, etc.
La entrega y evaluación de esta práctica se realizará
entre el 1 y el 15 de septiembre. Para ello se deberá contactar
con el profesor de prácticas que os corresponda o, en último
caso, con el coordinador del laboratorio de prácticas (Guillermo
Glez. de Rivera, despacho B-432).
Volver
atrás