Modélisation des données - Loto pour association

Sehnsucht Messages postés 107 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 4 mai 2013 - 14 sept. 2009 à 17:43
Sehnsucht Messages postés 107 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 4 mai 2013 - 15 sept. 2009 à 20:41
Bonjour,

Je suis en train de réaliser une application complète de loto "à l'ancienne" (avec des cartons et des pions, pas le loto de la FdJ) pour une association et j'ai quelques soucis dans la façon de modéliser ceci afin de pouvoir en générer (des cartons) à la pelle sans trop de difficultés.


Tout d'abord quelques explications:

Un carton de loto c'est "basiquement" un grille de 27 case (3 lignes et 9 colonnes) dont 15 contiennent des valeurs de 1 à 90 et 12 sont vides.


Quelques règles sur ce qu'est un carton "valide":

Chacune des lignes (ou "quine") du carton doit contenir EXACTEMENT 5 nombres et donc 4 cases vides.
Chacune des colonnes du carton ne doit contenir EXACTEMENT que 1 ou 2 nombres, ni plus ni moins.

Corrolaire du dernier point il y a donc EXACTEMENT 6 colonnes avec 2 valeurs et 3 avec 1 seule valeur.
Les valeurs autorisées pour une colonne se "calculent" comme suit (en partant du principe que la première colonne à l'indice i=0 et donc la dernière i=8):
valeur minimale de la colonne = i*10
valeur maximale de la colonne = (i*10)+9 ou ((i+1)*10)-1
(Exemple pour la 3ème colonne (i=2) les valeurs vont de 20 à 29)

Bien entendu il y a des cas particuliers sinon ça serait trop facile:
Pour la 1ère colonne (i=0) les valeurs ne vont pas de 0 à 9 mais de 1 à 9
Pour la 9ème colonne (i=8) les valeurs ne vont pas de 80 à 89 mais de 80 à 90


J'aimerais donc vos avis sur la façon de modéliser cela, sachant que j'ai déjà plusieurs approches en vues:

Approche 1: le tableau

Créer un carton avec une propriété contenant ses valeurs dans un tableau (à 2 dimensions ou une tableau de tableau.)

Approche 2: l'objet "simple"

Créer un objet Carton qui a comme propriété un tableau d'objet Ligne qui lui-même contient un tableau de valeurs (voire d'objets Numéro cf 3ème approche)

Approche 3: le tout-objet

Dans le fonctionnement d'un carton, chaque numéro peut être ou non marqué durant la partie, puis qu'une "Quine" est déclarée lorsqu'une Ligne est complète (tous ses numéros sont marqués) et qu'enfin un Carton est plein lorsque toutes ses lignes sont complètes (en passant par des "états" intermédiaires: "Quine" (1 Ligne) et "Double-Quine" (2 Lignes))

J'en ai donc perçu une similarité de comportement:
Le Numéro est un "tableau" de 1 case qui peut être marquée.
La Ligne est un tableau de 5 cases qui peuvent être marquées.
Le Carton est un tableau de 15 cases qui peuvent être marquées.
(je ne tiens pas compte des cases vides qui apparaitront d'elles-mêmes lors de l'affichage étant donné les règles de placement des nombres édictées plus haut)

Donc l'idée serait la même que la 2ème approche avec soit une classe mère abstraite dont les 3 (Numéro, Ligne et Carton) hériteraient ou une interface à implémenter par eux.


Je vous remercie donc de m'éclairer, afin de me dire si déjà je suis pas en train de me planter totalement, parce que j'ai loupé un truc ou autre, ensuite de me dire soit l'approche que vous utiliseriez ; dans celles proposées ou autres, et enfin en fonction de votre choix d'approche, comment vous feriez pour la génération automatique des cartons, car j'avoue que c'est là que je bloque principalement.

Je me tiens bien entendu à la disposition de chacun si il y a besoin d'explication supplémentaire, car je sais que des fois je suis pas très clair ; et merci d'avance pour vos réponses bien entendu !

2 réponses

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
15 sept. 2009 à 19:39
Bonjour ,
Je vais souvent dans les lotos "quine" en automne et en hivers.Je connais les règles.
Mon dernier loto , je l'ai fais ce samedi mais ce n'est rien gagné.
Pour ce faire , j'achete des cartons et pour
jouer , j'ai ma trousse avec les pions aimantés.

Concernant ton programme,
- avec quel logiciel veux tu faire ton
loto ? Excel , Visual Basic Net .....?
Moi , je le ferais avec Excel.
- a quoi ça va servir et a qui ?
---------------------------------------------
Moi , je ferais:
- une génération aléatoire des numérations
suivant le nombre de cartons selectionnés ?
avec des options
- option numeros aléatoires
- option "au moins 1 fois tous les
numeros" (a condition d'avoir assez
de cartons)
Avec excel , 1 carton par feuille.

Une feuille
- pour inscrire les numeros sortants
- pour choisir les lignes gagnants
- 1 ligne gagnant
- 2 lignes gagnants
- 2 lignes gagnants avec 1 ligne gagnant
- Carton plein
- Carton plein avec 1 ligne gagnant
- Carton plein avec 2 ligne gagant.
- 1ère ligne gagnante
- 2ème ligne gagnante
- 3ème ligne gagnante
- 1ere et 2ème lignes gagnantes
- 1ere et 3ème lignes gagnantes
- 2ème et 3ème lignes gagnantes
-.......

Une fois gagné , afficher sur l'ecran.

Est ce bien ce que tu veux faire ?
As tu déja programmer quelques choses ?

Dedenet2
0
Sehnsucht Messages postés 107 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 4 mai 2013
15 sept. 2009 à 20:41
avec quel logiciel veux tu faire ton
loto ? Excel , Visual Basic Net .....?


Cette application sera réalisée avec VB.net

a quoi ça va servir et a qui ?


Le but est de permettre d'assurer le suivi (historique) des différents lotos, tout aussi bien, que de pouvoir assurer, le jeu au complet, la finalité étant de pouvoir parvenir, à aller jusqu'à se passer du contrat passé avec le fournisseur du matériel (bouliers, cartons...) en remplaçant le boulier par un tirage depuis l'ordinateur afficher sur écran géant (avec message audio du numéro) et faire imprimer des cartons à "session individuelle" (un membre de l'association est imprimeur).

Quant au reste de ton post je ne vois pas vraiment en quoi il répond à ce que je cherche, à savoir d'une manière plus concise, de quelle manière modéliser l'information et comment générer des cartons compte tenu de toutes les règles à respecter.
0
Rejoignez-nous