1ª jornada (normas)

I Liga Programación BitHeroes: Bases de la 1ª Jornada

Juego: Cálculo mental

En esta primera jornada comenzaremos creando un juego sencillito: Una variante de los ejercicios de cálculo mental del Brain Training. Si una imagen vale más que mil palabras, 30 imágenes por segundo son … muchas palabras:

Una vez cumplidos los requisitos mínimos, podeis añadir tantas mejoras y locuras como os venga en gana.

Requisitos mínimos

  • El objetivo del juego es resolver tantas operaciones matemáticas como sea posible dentro de un tiempo límite.
  • El juego mostrará una operación matemática: suma, resta, etc. por salida estándar y esperará la entrada del jugador.
  • El jugador responderá por entrada estándar a la operación.
  • El juego indicará al jugador si la respuesta es correcta y mostrará otra operación.
  • Si el jugador responde correctamente, se irá aumentando la dificultad de las operaciones.
  • Si el jugador responde erróneamente, se irá bajando la dificultad de las operaciones, hasta un mínimo.
  • El juego termina cuando se supera el tiempo límite.
  • El tiempo límite es configurable por el jugador. Por ejemplo, lo puede escoger al inicio del juego.
  • La puntuación del juego se basará en las palabras respondidas dentro del tiempo y su dificultad.
  • Si quereis utilizar otro modelo de puntuación, explicadlo en el README.
  • Para simplificar la programación, se permite que el juego se bloquee indefinidamente mientras espera la entrada del jugador. Si el tiempo límite se supera mientras se espera la entrada del jugador, se considera la operación errónea y se termina la partida.

Restricciones

  • Únicamente se utilizará entrada y salida estándar para la realización del juego (stdio,cin,cout,etc). Nada de gráficos, ni códigos ANSI, ni ncurses, ni <conio.h>
  • Para el sonido, únicamente se puede usar la “campana” del sistema. ( Imprimimos el carácter \a por salida estándar).

Ficheros a entregar

  • Se enviará un archivo comprimido con el formato NICK-PROGRAMA.tar.gz por correo electrónico a <ligabitheroes@byterealms.com>.
  • El asunto de correo ha de ser “Entrega Jornada 1”.
  • Este archivos debe contener los siguientes ficheros:
    • Código fuente .cpp y cabeceras .h de vuestro programa.
    • Ficheros de datos o configuración, si usais alguno.
    • README con vuestro nombre, nick, correo y una breve explicación de cómo funciona el juego.
    • COPYING con el texto en inglés de la licencia GPLv3.
    • Makefile para construir el programa de manera automática.
  • El código fuente + Makefile debe de ser capaz de generar un ejecutable en un PC de los laboratorio de la EPS.
  • No se admiten ejecutables dentro del archivo. Incluirlos no constituye falta , pero la organización los ignorará y borrará debidamente.
  • Podeis utilizar el fichero del siguiente enlace como modelo de trabajo

Fechas Límite y publicación de resultados

  • Entrega de Programas: 3 de Mayo de 2011 a las 23:59 horas
  • Entrega de Evaluaciones: 9 de Mayo de 2011 a las 23:59 horas
  • Los resultados provisionales de la Jornada se publicarán el 10 de Mayo por la tarde.
  • Estos resultados pueden estar sujetos a enmiendas por denuncias hasta las 23:59 del 13 de Mayo de 2011.

Pistas

  • Para generar números pseudoaleatorios, en C se utilizan las funciones rand() y srand()
  • Existen muchas alternativas para obtener el tiempo de ejecución, pero para empezar podeis usar clock()
  • ¿Cómo se usan?
    • Accesorios → Terminal
    • man 3 clock
    • man 3 rand

Comments Closed