Les spécifications sont simplement les règles du jeu.
Au niveau technique, le langage de programmation doit être JAVA 5 (c'est justement pour que l'auteur découvre les nouveaux features de Java 5 que ce jeu est écrit).
Le jeu est un programme java avec une interface SWING (pas d'applet). Il est livré sous la forme d'un fichier jar auto-executable. Différents scénarios d'interface graphiques ont été réalisés sous forme de mockups, le scénario avec les scores de tous les joueurs ensembles sur une fenêtre a finalement été retenu.
Le programme doit également pouvoir être lancé via Java Web Start . Cela nécessite que l'application soit zippée dans un fichier jar, en prenant la précaution supplémentaire de lire toutes les ressources (images, fichiers de properties, etc.) depuis ce fichier jar.
En fonction de la phase de réalisation, la white-box s'étoffe pour satisfaire au final les exigences
Le jeu comporte un seul acteur: le joueur. Cet acteur peut être de 2 types: humain ou bien robot.
Lors d'un tour, le joueur effectue plusieurs de ces use-cases. Il commence par lancer les dés, peut les relancer jusqu'à deux fois. Il termine son tour en gérant son score, soit il valide une combinaison compatible avec le dernier lancer de dés obtenu ou bien il barre une combinaison pas encore obtenue.
Lancer les dés revient à lancer tous les dés, soit pour un jeu de Yam's: 5 dés, ce que doit faire le joueur lors du premier lancer de son tour. Relancer les dés peut se limiter à relancer seulement une partie des dés et à garder les autres avec le résultat obtenu, ou bien à les relancer tous. Qu'un dé ait été auparavant déjà relancé ou pas n'a pas d'importance, le joueur est libre à chaque relance de choisir quels dés il relance.
Le jeu repose sur plusieurs entités: le joueur, une partie, un lancé de dé, etc.
Une partie est initiée avec un nombre donné de joueurs. Chaque joueur possède sa feuille de score avec la liste des combinaisons à réaliser. Chaque combinaison peut être réalisée par une multitude de lancer de dés. De même, chaque lancer de dés correspond à plusieurs combinaisons, celles-ci peuvent cependant être déjà validées ou bien barrées lors d'un tour précédent. C'est pourquoi le joueur peut être confronté à un lancer de dés pour lequel aucune combinaison de sa feuille de score ne peu plus être validée.
Les joueurs jouent à tour de rôle. Lors d'un tour, le joueur peut valider une combinaison compatible avec le lancer obtenu pour ce tour ou bien barrer de sa feuille de score une combinaison, qui ne sera donc pas comptabilisée pour son score total. Une fois une combinaison validée ou bien barrée, celle-ci n'est plus modifiable lors des tours suivants.
Une partie comprend un nombre donné de tour: le nombre de combinaisons comprises sur une feuille de score.
Le joueur a pour but pendant un tour de valider une combinaison. Afin de réaliser cela, il lance et relance les dés, au maximum 3 fois avant de devoir se décider pour l'action finale: valider une combinaison, ou bien si le dernier lancer n'est pas satisfaisant, choisir de barrer une combinaison.
C'est au joueur de décider (carré noir) si un lancer de dés est satisfaisant. Il peut lancer et relancer jusqu'à 3 fois avant d'être obligé de choisir de valider ou bien barrer une combinaison.