Hola a todos. Después del parón por exámenes, volvemos a la carga con una nueva Jornada de la Liga Bit Heroes. Esta vez vamos a programar un juego algo más complicado, con un bucle de juego como $DEITY manda y con gráficos ASCII algo más avanzados. Para ayudaros un poco con los colores y la posición del cursor vamos a usar StdPijo, que es una pequeña biblioteca para programar juegos en ASCII.
Introducción
El juego que proponemos esta Jornada es un clon del Mined-Out. Una mezcla entre Frogger y Buscaminas. Aquí podeis disfrutar de la versión en Flash del juego:
Requisitos del Juego
Aunque podeis incorporar variantes creativas, el juego debe mantener la mecánica básica del Mined-Out y respetar estas convenciones
- No se permiten gráficos, pero se permite el uso de códigos ANSI para mostrar texto en colores y posicionar el cursor en la pantalla.
- El área total de la pantalla de juego no debe exceder de 24 filas por 80 columnas. Esto es el tamaño de un terminal estándar.
- Los controles del serán FIJOS y serán los siquientes
- W – Arriba
- A – Izquierda
- S – Abajo
- D – Derecha
- Espacio – Aceptar/Adelante
- ESC – Salir/Atrás
- El jugador debe empezar desde un lado del mapa y terminar en el otro. Da igual si es horizontal o vertical
- Al pasar de nivel se incrementa la dificultad
- Se debe indicar en un marcador el número de minas que rodean al jugador en todo momento
- Se debe dibujar en el mapa el rastro que ha seguido el jugador por el campo de minas
- Cuando el jugador pise una mina, se mostrarán en pantalla la situación de todas las minas en el mapa
- La puntuación del jugador dependerá, como mínimo, del tiempo que ha tardado en completar el mapa
- Los campos de minas se generan de manera aleatoria, basados en la dificultad del nivel
- Es decir, no existe un límite teórico de niveles
- Para aliviar esta restricción, no es necesario comprobar si el nivel generado tiene solución o no. Os perdonamos la vida en eso
- No se permite leer del teclado de manera bloqueante, salvo para leer algún nombre en un hipotético ranking. Se puede usar StdPijo o ncurses para cumplir con esto
- No se permite la inclusión de sonido o música en el juego.
Entrega
- Se enviarán las entregas y evaluaciones a ligabitheroes@byterealms.com
- Las entregas van en formato .tar.gz y deben incluir obligatoriamente los siguientes contenidos
- Código fuente del juego
- Archivo Makefile para compilar el juego
- README Con el autor y una breve descripción del juego, así como las notas oportunas que se quieran explicar
- COPYING Con una copia de la licencia GPL v3 en inglés
- No se permiten ejecutables del juego, la entrega es estrictamente en código fuente
- Recordad que la plataforma de evaluación es el Ubuntu de los Laboratorios EPS, que os podeis bajar y usar sin instalarlo en vuestro PC:
- En la sección “Ejemplo de Uso” os podeis bajar un archivo de ejemplo, que podeis usar de base para vuestra entrega.
- Las entregas que no cumplan los requisitos serán automáticamente descalificadas
Fechas
- Entrega: Hasta el Viernes, 1 de Julio de 2011 a las 23:59 pm
- Se enviarán las entregas para su evaluación antes del lunes, 4 de Julio
- Evaluación: Hasta el Martes, 5 de Julio de 2011 a las 23:59 pm
- Se publicarán las evaluaciones el Viernes, 8 de Julio.
Ejemplo de uso de StdPijo
- Os podeis bajar un ejemplo de StdPijo uso desde el siguiente enlace, os recomendamos su uso y modificación
Algunos Consejos
- Obviamente, la estructura de datos más adecuada para representar el mapa es una matriz bidimensional
- Para programar con StdPijo hay que instalar el paquete libncurses5-dev o libncurses-dev
- Si os apetece, podeis usar ncurses directamente en vez de StdPijo
- Para evitar dibujar muchas veces, podemos limitar el framerate del juego usando usleep
- Para medir el tiempo de manera más eficiente, usamos gettimeofday
Estamos ansiosos de ver vuestros progresos. Happy Hacking !


