Projet Algorithmique et Programmation: QCM

Nous voulons réaliser un jeu de questions dans la plus grande tradition télévisuelle. Pour rendre le jeu réaliste nous utilisons une dalle de distributeur automatique de billets de banque (ou plutôt un simulateur de distributeur) que nous détournons.

Remarque: Le but du projet n’est pas uniquement de produire un programme qui fonctionne (même si cela est plus gratifiant). Vous êtes supposés fournir un travail à la fois en algorithmique et en programmation. Les deux parties seront évaluées.

Règles du jeu

Les règles du jeu sont relativement libres et il vous faudra faire preuve d’imagination. Cependant nous vous demandons le minimum suivant :

  • Mode un ou deux joueurs.
  • Une possibilité de questions temporisées (timeout)

Un joueur (ou une équipe à tour de rôle)

  • Des questions type 4 à la suite (cf. Question pour un Champion)
  • Des questions type cash, carré, duo (cf. tout le monde veut prendre sa place). Le cash étant compliqué, nous vous conseillons de vous limiter à des réponses numériques.

Deux joueurs

  • Des questions types duel: un joueur doit prendre la main avant de répondre et dispose d’un temps limiter pour répondre.
  • Des questions où les deux joueurs doivent répondre
  • Des questions où le premier qui répond (juste ?) gagne

Le scénario du jeu et le système de points sont laissés libres.

Cette liste n’est bien entendu pas exhaustive, nous encourageons les groupes à trouver des idées originales permettant de rendre leur jeu plus intéressant et/ou amusant.

Spécifications techniques

La dalle du distributeur est composée d’un écran, de 8 boutons tactiles (et éclairables) et d’un clavier. Comme il s’agit d’un simulateur, la souris permet d’appuyer sur un bouton (les touches F1..F12 en font de même). La dalle vous est fournie (il ne faudra en aucun cas la modifier). Une description plus complète, ainsi que l’API de programmation, vous sont fournies dans l’archive de l’énoncé :

Sujet
http://www.labri.fr/~fmoranda/if112/qcm/projet-if112.tar.gz
Readme
http://www.labri.fr/~fmoranda/if112/qcm/README/

Format des données

Afin de pouvoir échanger vos jeux de questions (deck) préférés avec vos collègues, nous standardisons le format des fichiers. Un deck est représenté par un fichier, dont la première ligne est le titre. Le reste du fichier est structuré sous la forme suivante :

  • Une ligne commençant par ? est une question, s’il y a plusieurs lignes commençant par ?, elles seront fusionnées.
  • Une ligne commençant par # est un commentaire, elle sera ignorée.
  • Chaque réponse est seule sur sa ligne. La bonne réponse est préfixée de *.
  • Les questions seront séparées d’une ligne vide, ou ne contenant que des espaces et des -
  • Si une question est vide, elle doit être ignorée.

Modalités

Les projets sont à rendre avant le (date a définir) 17h. Aucun document ne sera accepté après cette date.

Le travail sera fait par groupe de 3 ou 4, les membres devant faire partie du même groupe de T.P.

Vous devez rendre :

  1. Un document écrit comprenant :

    • Un rapport d’analyse où vous exposez vos choix d’implémentation, expliquez les méthodes utilisées et détaillez si nécessaire certains algorithmes.
    • Un (bref) rapport de programmation où vous précisez, s’il vous semble nécessaire, les particularités d’implémentation en C de vos données et de vos algorithmes.

Ce document devra être déposé au secrétariat électronique, et nulle part ailleurs (pas de casier, bureau ou autre).

  1. Les fichiers source en C de vos programmes, le Makefile, et tout autre fichier vous semblant utile (decks de questions, etc.). Il est à noter que vos programmes doivent compiler sans problème sur un autre utilisateur que votre compte, sans message d’erreur, warning ou autre.

Les fichiers devront être transmis à votre chargé de TD selon la méthode de son choix (SVN, dossier ou archive)

Les fichiers ayant une date postérieure à la date limite seront pénalisés.