Gestion jeton joué Scrabble

Résolu/Fermé
Desperaxe Messages postés 138 Date d'inscription dimanche 22 février 2015 Statut Membre Dernière intervention 11 novembre 2021 - 5 nov. 2017 à 22:21
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 6 nov. 2017 à 00:20
Bonsoir, j'ai besoin de votre aide sur la marche a suivre suivante, juste la marche à suivre, je me charge du code ensuite pour la création d'un Scrabble.

Dans le code il existe diverses classes, dont une classe partie, jeton, joueur, plateau et stand de jeton pour le joueur. Aucune classe n'est parentée, et je voudrais savoir comment je pourrais utiliser ces classes ( pas nécessairement toutes ) pour permettre le placement du jeton sur le plateau par le joueur depuis son stand ( qui est en fait un arraylist de jeton tout simplement, ces jetons ayant un caractère attribué et affiché ).
( La fonction recherchée serait dans la classe joueur ).

Faut-il qu'une des autres classes passe en static au niveau de getter ou setter ? Ou en fait je suis juste un peu idiot et c'est tres simple? ^^'

Merci d'avance !

A voir également:

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
5 nov. 2017 à 22:38
Bonjour,

Je suis étonné que tu n'aies pas également une class cases (pour les cases du tableau .. sachant que certaines comptent double, triple...etc...)

Quoi qu'il en soit, dans ta class Joueur, tu dois sûrement avoir une méthode "placerJeton" (ou peut importe son nom) à laquelle tu passes : L'objet jeton à jouer et l'objet case (ou les coordonnées dans le tableau) où tu comptes le placer
Cette méthode pourrait appeler une méthode de la class "stand" qui "retirerait le jeton jouée du stant


1
Desperaxe Messages postés 138 Date d'inscription dimanche 22 février 2015 Statut Membre Dernière intervention 11 novembre 2021 7
5 nov. 2017 à 22:44
Ah si si, on en a, j'ai juste pas cité toutes les classes( comme la classe de l'IA par exemple ) j'avoue que j'aurais du la preciser pour le coup quand meme ouep ! Du reste, merci de ton aide, j'applique ça dès demain !
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
5 nov. 2017 à 23:26
Salut,
Je suis étonné que tu n'aies pas également une class cases
c'est un débat que nous avons eu avec VB95, il y a quelques mois.

Le plateau peut très bien avoir en mémoire les coordonnées des cases particulières, et dans ce cas la classe Case n'est pas nécessaire.
Ou même, on peut considérer que le plateau n'est qu'un tableau à 2 dimensions contenant du vide ou un jeton, et du coup ce tableau serait une variable de l'IA, à laquelle serait associée la liste des cases spéciales.
Avec la classe Plateau qui gère des Cases et des Jetons, cela fait 3 façons de faire qui dépendent au final de comment tu appréhendes le mécanisme du jeu.

C'est pareil pour le Stand, puisque chaque joueur en a un, cela pourrait être une collection appartenant à la classe joueur. Cette collection accueillant des jetons en transit entre la pioche et le plateau.

Quoiqu'il en soit, tu as toutes ces classes, et que tu dis
on en a
laisse à penser que tu as un donneur d'ordre (un[e] prof?) et que lui a jugé que le bon mécanisme est de s'en servir.
Bien que Jordane ait répondu à ta question, voici une piste de cheminement "intellectuel" pour y parvenir par toi même.

Imagine toi en train de jouer, assis devant ton stand, lui même posé au bord du plateau.
Pour disposer un mot, tu vas prendre un jeton et le poser sur le plateau, puis un second, et ainsi de suite jusqu'à écrire ton mot.
Faut il écrire une classe Main, qui prend un jeton, en demandant à la classe Stand de lui transférer, puis dépose ce jeton en le transférant au Plateau?
  • Oui alors pourquoi le donneur d'ordre ne te l'as pas demandé?
  • Non alors peut on considérer que la main (et le bras tout entier) fait partie du joueur?
    • Non, ben je ne voie pas...
    • Oui, ok donc mon joueur demande un jeton au Stand et le dépose sur le plateau. Pour cela il lui faudra connaitre
      • son Stand
      • le jeton
      • la case du plateau ou ses coordonnées

Et on arrive à la réponse de Jordane.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 nov. 2017 à 00:20
Bonjour,

Une manière de programmer (et c'est particulièrement utilisé en Java EE) est de distinguer d'une part les classes de données (POJO, bean, etc.) et d'autre part les classes de services (qui manipulent les données).

Pour moi les classes "partie, jeton, joueur, plateau et stand de jeton" ce sont toutes des classes de données, mais où sont les services qui vont les manipuler ? Peut-être dans ta classe IA dont tu avais oublié de nous parler alors que ce serait à elle de tout gérer...

Quant à ta question "faut-il qu'une des autres classes passe en static au niveau de getter ou setter ?", ce n'est pas très clair parce que les getter/setter c'est pour manipuler les données d'un objet donc ça n'a pas de sens que ce soit static...
0