Lotto 1.0

Catégorie / Domaine : Jeux
Compatibilité SCOL Voy@ger : V 2.0c et supérieure
Mise à jour : 06/2000

Fonction

Ce module implémente un jeu de LOTTO d'après les règles du jeux de société qui sont rappelées dans le paragraphe suivant. Son interface graphique peut être modifiée en changeant le contenu de différentes images bitmap mais le format (nombre de couleurs et dimensions) ne devra cependant pas être modifié. Ainsi les jetons pourront contenir des symboles au lieu de numéros.

# Règles du jeu:

But du jeu : gagner un maximum de points; pour cela chaque joueur doit remplir les cases numérotées d'une grille qui en comporte 15.

Avant de commencer la partie : Le joueur qui vient de se connecter apparaît dans la liste "Free Players". Une grille lui est proposée mais tant qu'il n'est pas inscrit dans une partie, il peut la remplacer par une autre. A chaque fois cette grille est générée aléatoirement. Lorsque la grille lui convient, le joueur peut s'inscrire dans une partie en double-cliquant sur celle-ci ou en créer une nouvelle en entrant un nom pour la nouvelle partie et en cliquant sur le bouton créer. Si le nom proposé existe déjà, un numéro lui sera ajouté. Une partie nouvellement créée se détruira automatiquement après un temps Tl si aucun joueur n'a rejoint la partie. Si un deuxième joueur rejoint la partie, le jeux commencera au bout d'un temps Tb ce qui permet à d'autres joueurs de se joindre à la partie avant que celle-ci commence. Un joueur peut se connecter à une partie en cours.

Pendant la partie : Une fois connecté à une partie, le joueur ne peut plus changer de grille ou joindre une autre partie. Tous les temps Tf un jeton est proposé. Il est tiré au hasard parmi l'ensemble des numéros présents sur les grilles de tous les joueurs de la partie. Si un joueur le reconnaît sur sa grille il doit double-cliquer sur le jeton pour l'obtenir et ainsi remplir sa grille. Certains numéros peuvent être présents sur les grilles de différents joueurs. Dans ce cas c'est le joueur qui l'aura demandé le premier qui l'aura au détriment des autres. Mais attention, si un joueur demande un jeton auquel aucune des cases de sa grille ne correspond, un des jetons gagnés lui sera repris.

Fin de partie : La partie se termine si un joueur a rempli sa grille ou s'il ne reste qu'un joueur (les autres ayant abandonné la partie). Dans ce deuxième cas, le joueur restant est déclaré gagnant. Après l'affichage des scores, la partie est détruite au bout d'un temps Te et les joueurs sont replacés dans la liste "Free Players".

Score : Chaque case remplie rapporte 1 point, chaque ligne complétée rapporte un bonus de 5 points et la grille complétée rapporte un bonus de 30 points. Ce qui fait 60 points pour le gagnant. Les scores sont communiqués aux autres modules par l'intermédiaire d'un événement score.

# L’interface graphique de l’utilisateur comporte les éléments suivants :

· La liste des parties
· Une ligne d'édition avec un bouton pour créer une nouvelle partie
· La liste des joueurs dans la partie sélectionnée
· La grille de lotto
· Une zone pour proposer les jetons
· Un bouton pour demander une nouvelle grille
· Un bouton pour quitter la partie

Configuration


Figure 1 : Interface du module Lotto

(1) : Nombre maximum de joueurs => paramètre le nombre maximum de joueurs

(2) : Nombre maximum de parties => paramètre le nombre maximum de parties

(3) : Temps avant de supprimer une partie à un joueur => paramètre le laps de temps (en secondes) avant qu’une partie ne soit supprimée à un joueur

(4) : Temps avant le début d’une partie => paramètre le laps de temps (en secondes) avant le début d’une partie

(6) : Temps entre les jetons => paramètre le laps de temps (en dixièmes de secondes) entre chaque sortie de jeton

(7) : Temps avant la suppression d’une partie finie : paramètre le laps de temps avant qu’une partie finie ne soit supprimée

Mise en oeuvre

Ouvrez l'arbre de création du SCS. Sélectionnez le dossier Games puis double-cliquez sur Lotto1.0.
Etablissez les liens nécessaires au projet.

Action Fonction
module.événement à lotto.start Démarre le module
module.événement à lotto.destroy Ferme le module
module.événement à lotto. !changeLogin Met à jour le login d’un client quand celui-ci est modifié.
module.événement à lotto.register Enregistre le client et créé son interface graphique pour le jeu. Celui-ci apparaît alors dans la liste des joueurs
module.événement à lotto.unregister Ne prend plus en compte le client. Son interface de jeux est détruite. Il n’apparaît plus dans la liste des joueurs.
module.événement à lotto.show Affiche l’interface graphique du jeu
module.événement à lotto.hide Cache l’interface graphique du jeu
module.événement à lotto.regAdmin Permet de se faire reconnaître comme administrateur (affiche un onglet Setup dans la zone Board (permet d’afficher la zone Admin))

Evénement Fonction
lotto.entering à module Action

La demande d’enregistrement d’un utilisateur dans le jeu engendre une action

lotto.in à module Action La fin de l’initialisation du client engendre une action
lotto.destroyed à module Action La destruction du client engendre une action
lotto.shown à module Action L’affichage de l’interface graphique du jeu engendre une action
lotto.hidden à module Action La disparition (mais pas la destruction) de l’interface graphique du jeu engendre une action
lotto.log à module Action L’enregistrement d’une phrase dans le log (quand l’utilisateur rentre dans le jeu) engendre une action
lotto.score à module Action La communication du score d’un client engendre une action
lotto.select à module Action La sélection (clic sur le pseudo) d'un utilisateur engendre cet événement

Zone Fonction Interface Affectation
lotto.board Contient la zone cliente pour le jeu Client (400 x 300 pixels) Non
lotto.admin Contient la zone client pour l’administration. N’est accessible que par les administrateurs et permet de paramétrer le jeu Client (315 x 190 pixels) Oui