Belote

Transcription

Belote
Belote
Bon normalement ca devrait être bon comme ca, si je change des choses je vous les envoie par mail.
Donc premièrement les cas d'utilisation:
– Connexion
– Inscription
– Créer partie
– Rechercher partie
– Joindre partie
– Lancement de la partie
En jeu:
– Jouer carte
– Lancer une partie
L'architecture est découpée de la sorte: Un Client avec un module interface graphique et un module
réseau (client) qui sera le moyen de communication avec le serveur. On donne un message au client et
c'est lui qui le tranforme, l 'envoie et récupère la réponse. La classe principale du client s'apelle partie
(qui est en fait la classe instanciée au tout début et qui servira aussi de classe principale dans le menus).
Du côté serveur ca se passe un peu pareil, on a une classe principale qui gère des classes jeu qui
contiendront toutes les informations sur les parties jouées sur le serveur et qui lie les client_joueur qui
sont des classes à définir selon les besoins du module réseau (dans cette classe on enregistrera des
informations comme : IP des joueurs et tout ce qui ser à s'y connecter).
Voici le déroulement général et détaillé tant que possible comme je le voit.
Lancement du logiciel, inscription de l'utilistaeur. Le serveur verifie que le login est disponible, il
confirme au client qui ensuite lance une connexion avec ces nouveaux identifiants. Une fois connecté
on affiche la liste des parties, le client demande la liste au serveur qui lui renvoi et ensuite le client les
trie et les affiche. Choix de la partie par l'utilisateur, demande de connexion, le serveur verifie le
numéro de partie et le nombre de joueur déja présents dedans. Quand tout est bon on se retrouve dans la
phase d'attente de joueurs, quand le nombre est à 4 le serveur propose au créateur de lancer la partie.
Quand le créateur clique, le serveur génère la nouvelle partie. Ensuite ce sera le serveur qui sera le chef
d'orchestre de la partie, a comprendre qu'il enverra tous les messages de demande de jeu d'un carte
Dans ce qui suit il est important de noter qui fait quoi (client ou serveur?), je le préciserait sans
ambiguïté à chaque phrase.
Déroulement d'une partie: Le serveur distribue les cartes (5 chacun). Le serveur tire une carte et l'envoi
à tous les clients, qui l'affichent. Le serveur demande tour à tour à chacun des clients si ils veulent
prendre la carte affichée, si un client prend l carte alors elle lui appartient et la couleur de l'atout devient
celle de la carte juste récupérée et le serveur finit par distribuer 3 cartes à tous sauf au désormais
“preneur” qui n'en aura que 2. Si personne ne choisit de prendre la carte alors le serveur fait un second
tour de demandes. Ici si un client choisit la carte alors elle lui appartiendra mais il pourra choisir la
couleur de l'atout. Et la distribution finira de la même manière. Si personne ne la prend en 2 tours alors
on recomence toute la distribution.
AB- Jouer une carte:
Le serveur demande au client `joueur_suivant` de choisir une carte à joueur. Si il est le
premier à jouer dans ce pli alors peut importe la carte, sinon le serveur regarde la couleur de la
carte, si c'est la même que le pli alors c'est bon, sinon le serveur verifie si le client a la couleur
du pli dans sa main. Si oui, on refse la carte et on redemande, sinon on regarde si la carte
proposée est un atout et si le pli est un pli d'atouts ( premiere carte jouée).
Si la carte jouée n'est pas un atout, le serveur verifie la main pour savoir si le joueur a
des atouts en main, si oui alors il ne peut jouer que si le maitre du pli est son partenaire, et si le
joueur n'as pas d'atout alors la carte est jouée.
Si la carte jouée est un atout et que le pli n'est pas d'atout, la carte est jouée. Si le pli est
un pli d'atouts alors le serveur récupère ma valeur de l'atout le plus haut du pli et la valeur de la
carte jouée. Si la carte jouée a une valeur supérieure à l'atout le plus fort du pli alors c'est bon,
sinon le serveur regarde si dans la main du jouer il y aun carte atout plus haute que l'atout le
plus haut du pli. Si oui on refuse la carte, sinon on l'accepte.
On fait tout ca 4 fois. → B
On calcule qui a gagné et qui est le joueur suivant.
8x → A
Verification du nombre de points des équipes par rapport à la limite pour gagner. Si les points sont
insuffisants on retourne au début de la distribution des cartes, sinon on déclare une équipe gagnante.
Créer une partie:
Le serveur demande le nom et le nombre de points max au client. Le serveur créé la partie et revoie l'id
au client. Le client se connecte directement à la partie. On attend des joueurs et ensuite le serveur
proposera de lancer le jeu → Déroulement d'une partie.
Ensuite on peut définir quelques types de base:
type valeur {7,8,9,10,V,D,R,A}
type couleur {coeur, carreau, pique, tefle}

Documents pareils