Objectif : réalisation d'une application de lancer de dés
Ce projet est avant tout un projet d'IHM. Vous devez donc vous focaliser sur cet aspect en priorité puisque l'évaluation de votre travail reposera dessus : respectez les principes ergonomiques, réfléchissez aux interactions possibles, à l'aspect didactique, à l'homogénéité du style graphique, etc. Un fonctionnement parfait de l'application n'est pas demandé.
Le but de ce projet est la conception et la réalisation d'une application qui simule le lancer d'un ou plusieurs dés, ceux-ci pouvant se distinguer par leur nombre de faces et les valeurs qu'elles portent ainsi que les règles qui leur sont associées.
L'application doit en théorie permettre :
- de choisir un ensemble de dés,
- d'effectuer des tirages avec les dés choisis,
- de définir de nouveaux types de dés,
- d'associer des règles spéciales ou des tables de résultats,
- de visualiser les probabilités de tirage (aide) ou les statistiques (historique).
En pratique, l'implantation de cette application se fera en Python et s'appuiera sur la bibliothèque tkinter (ainsi que la bibliothèque PIL dans une moindre mesure) :
- la bibliothèque tkinter,
- la bibliothèque PIL Python Imaging Library.
La bibliothèque PIL permet d'afficher dans un canvas des images issues de nombreux formats de fichiers (tiff, jpeg, png, etc.).
from PIL import ImageTk, Image
im = Image.open(fph)
canv.image = ImageTk.PhotoImage(im)
canv.create_image(0, 0, image=canv.image, anchor='nw', tags='clic')
Présentation générale
Les dés existent depuis des millénaires. Leur présence dans des tombes anciennes de la vallée de l’Indus, des dés cubiques vieux de 4300 ans y ont été retrouvés, semble pointer vers une origine asiatique (Wikipédia).
Leurs utilisations sont diverses, aussi bien sur le plan de la modélisation que pédagogiques ou ludiques. Il en existe une grande variété, qui se distinguent à la fois par leur nombre de faces et par les valeurs (ou les symboles) qu'ils portent.
Le dé le plus courant est cubique et comporte 6 faces, ce que l'on représente couramment par le terme d6. Mais il existe aussi quatre dés, d4, d8, d12 et d20, qui sont les autres polyèdres réguliers existants (les solides de Platon). On peut ajouter à ces formes le d10 et son homologue le d100 qui peut être simulé par le lancer de deux d10 (différents).
Les valeurs que portent les faces d'un dé ainsi que la fréquence de leur apparition permet de lui donner des propriétés très intéressantes. Citons en particulier les dés de Grime, qui appartiennent à la famille des dés non transitifs.
Il existe aussi des dés dont les faces ne portent pas des valeurs mais des symboles. Citons les dés Fudge (associés au jeu de rôle éponyme), qui sont des dés a six faces avec deux faces − (moins), deux faces 0 (zéro) et deux faces + (plus). En jetant quatre dés Fudge, on obtient ainsi un score variant de −4 à +4 .
Les règles de relance peuvent être assez complexes, s'appuyant sur des tests basés sur des valeurs ou des seuils et impliquant des ajouts ou des substitutions. Par exemple, la notion de jets sans limite implique de relancer les dés si le résultat est inférieur (resp. supérieur) à un certain seuil et de soustraire (resp. additionner) le nouveau résultat au résultat précédent.
Le résultat d'un jet de dés peut déterminer la probabilité qu'un évènement, détaillé dans une table, puisse survenir.
Une compilation en français des différents lancers de dés qu'il est possible d'effectuer est disponible sur internet.
De même, la page de Wikibooks sur les probabilités des dés dans les jeux de rôle est un bon support pour le présent projet.
Cahier des charges
Une phase de conception, qui repose sur des diagrammes UML de "cas d'utilisation" et/ou sur une conception dirigée par les buts (avec archétypes, scénarios et décomposition associée), doit être réalisée préalablement.
Dans le cadre du module IHM, on s'attachera à la conception d'une interface intuitive. Les fonctionnalités demandées, par ordre d'importance décroissante, volontairement approximatives, sont :
- sélection et lancer d'un ensemble de dés (qui se distinguent par leur forme, leur couleur et les valeurs qu'ils portent),
- application de règles spécifiques (bonus/malus, seuils, relances, tables, ...),
- création et enregistrement de nouveaux dés,
- aide (probabilités) et historiques (statistiques).
Notation
La notation de ce projet prendra en compte le respect du cahier des charges, la qualité de la programmation (robustesse, lisibilité et modularité du code, présence de tests unitaires) ainsi que les aspects propres à une IHM que sont : cohérence, concision (limitation du nombre d’interventions de l’utilisateur), structuration des activités (décomposition d’une tâche complexe), flexibilité (application personnalisable), retour d’informations et gestion des erreurs, toutes choses qui garantissent une interface ergonomique et intuitive et qui n’apparaissent pas explicitement dans cette présentation.