Jeu de plateau en java
Fermé
Guismos
Messages postés
16
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
13 avril 2009
-
12 févr. 2009 à 16:43
Eltorosam137 Messages postés 28 Date d'inscription samedi 15 octobre 2011 Statut Membre Dernière intervention 19 mai 2012 - 10 nov. 2011 à 22:04
Eltorosam137 Messages postés 28 Date d'inscription samedi 15 octobre 2011 Statut Membre Dernière intervention 19 mai 2012 - 10 nov. 2011 à 22:04
A voir également:
- Jeu de plateau en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- 94 jeu - Télécharger - Puzzle & Réflexion
- Java apk - Télécharger - Langages
- Jeu zuma - Télécharger - Jeux vidéo
4 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
12 févr. 2009 à 17:36
12 févr. 2009 à 17:36
Bonjour,
Déjà tu as bien compris qu'il faut dissocier le coté graphique du moteur de ta future application c'est une bonne chose.
Concernant l'organisation de tes classes, effectivement le mieux est de les regrouper dans des packages liés à leur fonctionnalité. Un (ou plusieurs) packages / sous packages pour tout ce qui se rapporte à l'interface graphique. Idem pour ce qui est du moteur de l'application, d'autres pour des "utilitaires" par exemple, dans lesquel tu regroupe les interfaces de constantes, des classes abstraites pour des fonctionnalités indépendante du contexte (fonction de base, etc.)
Pour ce qui est ensuite de savoir par quoi commencer, ça dépend des gens et des goûts de chacun mais j'aurai tendance à dire qu'il faut toujours s'atteler au programme même et ses fonctionnalités plutôt qu'à l'aspect graphique.
Attention, cela n'empêche en rien de penser à l'un en pensant à l'autre, au contraire il faut pouvoir élaborer ces deux aspects ensemble selon ton but final.
Par exemple, mettons que tu développe un jeu de dame: pour élaborer ta fonction de déplacement d'un pion, il faudra bien que tu ai pensé à la manière dont tu vas afficher tes composants graphiquement (case, pions, etc.)
Au final je dirai qu'il faut que tu commence par définir tous ce que ton projet doit faire, la manière dont il va le faire, les moyens que tu veux y mettre (tu peux faire ça en 2D ou 3D par exemple pour l'aspect graphique), etc.
Ensuite fait le moteur, et enfin le graphique. (ou les deux en parallèle)
Déjà tu as bien compris qu'il faut dissocier le coté graphique du moteur de ta future application c'est une bonne chose.
Concernant l'organisation de tes classes, effectivement le mieux est de les regrouper dans des packages liés à leur fonctionnalité. Un (ou plusieurs) packages / sous packages pour tout ce qui se rapporte à l'interface graphique. Idem pour ce qui est du moteur de l'application, d'autres pour des "utilitaires" par exemple, dans lesquel tu regroupe les interfaces de constantes, des classes abstraites pour des fonctionnalités indépendante du contexte (fonction de base, etc.)
Pour ce qui est ensuite de savoir par quoi commencer, ça dépend des gens et des goûts de chacun mais j'aurai tendance à dire qu'il faut toujours s'atteler au programme même et ses fonctionnalités plutôt qu'à l'aspect graphique.
Attention, cela n'empêche en rien de penser à l'un en pensant à l'autre, au contraire il faut pouvoir élaborer ces deux aspects ensemble selon ton but final.
Par exemple, mettons que tu développe un jeu de dame: pour élaborer ta fonction de déplacement d'un pion, il faudra bien que tu ai pensé à la manière dont tu vas afficher tes composants graphiquement (case, pions, etc.)
Au final je dirai qu'il faut que tu commence par définir tous ce que ton projet doit faire, la manière dont il va le faire, les moyens que tu veux y mettre (tu peux faire ça en 2D ou 3D par exemple pour l'aspect graphique), etc.
Ensuite fait le moteur, et enfin le graphique. (ou les deux en parallèle)
Guismos
Messages postés
16
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
13 avril 2009
12 févr. 2009 à 19:02
12 févr. 2009 à 19:02
D'accord merci.
Mon jeu est donc un jeu de plateau, il comporte 25 case et il y a 13 pions, avec 2 types de pions différents. Mon idée est de faire une classe pion de base, qui serait héritée par 2 classes type1pion et type2pion. Mais je ne vois pas trop comment organiser le mouvement sur mon plateau.
Je m'explique : si je veux bouger un pion de la case x vers la case y (en supposant que j'ai fait une classe position qui quadrille le plateau et qui établi une position pour chaque case), dois-je faire une classe spéciale pour les mouvements? Ou alors une base de données dans laquelle serait stockée toutes les positions de chaque pièce, mais ça j'ai encore jamais fait donc je préfère pas me lancer là-dedans...
Vu que je suis vraiment au beau milieu d'un projet dont on ne me dit rien, avez-vous des idées d'implémentation pour établir un plateau, configurer les mouvements/positions permis ou interdits, ... Je sais que c'est pas toujours facile de donner comme ça du code extérieur, mais alors avez-vous des sites sur lesquels ils donnent des exemples de jeu similaire avec des idées? Mon besoin essentiel pour l'instant est d'avoir les idées pour lancer mon jeu...
Mon jeu est donc un jeu de plateau, il comporte 25 case et il y a 13 pions, avec 2 types de pions différents. Mon idée est de faire une classe pion de base, qui serait héritée par 2 classes type1pion et type2pion. Mais je ne vois pas trop comment organiser le mouvement sur mon plateau.
Je m'explique : si je veux bouger un pion de la case x vers la case y (en supposant que j'ai fait une classe position qui quadrille le plateau et qui établi une position pour chaque case), dois-je faire une classe spéciale pour les mouvements? Ou alors une base de données dans laquelle serait stockée toutes les positions de chaque pièce, mais ça j'ai encore jamais fait donc je préfère pas me lancer là-dedans...
Vu que je suis vraiment au beau milieu d'un projet dont on ne me dit rien, avez-vous des idées d'implémentation pour établir un plateau, configurer les mouvements/positions permis ou interdits, ... Je sais que c'est pas toujours facile de donner comme ça du code extérieur, mais alors avez-vous des sites sur lesquels ils donnent des exemples de jeu similaire avec des idées? Mon besoin essentiel pour l'instant est d'avoir les idées pour lancer mon jeu...
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
13 févr. 2009 à 16:34
13 févr. 2009 à 16:34
Mum ok je vois.
Quand j'étais étudiant j'ai du faire un jeu de dame en java (entre autre), ce qui s'apparente donc à ton problème.
La problématique de comment déplacer un pion d'un case à l'autre peut se décomposer de la manière suivante:
- tu as l'aspect graphique (un plateau sur lequel tu as des pions)
- tu as l'aspect mémoire (idem plateau (généralement un tableau 2D) avec des objets de type pion)
La manière de générer un mouvement de pion est assez simple en soit:
- coté utilisateur, il doit cliquer sur la case où se trouve le pion à déplacer, puis ensuite sur la case finale où le pion doit être placé.
- coté programme :
+ interface graphique : les cases où se trouvent les pions doivent être clicable (uniquement celle ou il y a des pions, comme ça tu n'a pas a controlé la présence d'un pion sur la case après la clic, tu sais que c'est déjà le cas). Suite au premier clic, les cases "disponible" doivent être clicable. La notion de "disponible" est à définir selon ton application / jeu. Par exemple, pour un jeu d'échec, il te faudra un algorithme pour définir quelle case est possible pour le déplacement selon le type de pion a déplacer (cavalier, dame, etc.) Pour un jeu de dame ce seront les cases adjacentes en diagonales, voir celle un peu plus loin si un pion adverse est sur l'une des cases adjacentes ou si tu déplace une dame.
+ moteur / programme = aspect mémoire : A chaque case graphique correspond une case de ton tableau en mémoire (qui représente en gros ton échiquier / plateau graphique). Chaque case peut soit être vide, soit contenir un objet de classe Pion (que tu as toi même décrite). Ainsi le but de ton programme sera de bouger de case ces objets pions au fur et à mesure des déplacement demandés. La reconstruction / mise à jour du plateau graphique devra toujours se faire sur ce tableau en mémoire à un instant donné, ainsi tu limite l'information à un seul endroit : le tableau en mémoire. Si par exemple tu rencontre un bug en jouant : un pion est mal placé graphiquement, tu sais que l'erreur vient de la gestion mémoire / déplacement de tes objets puisque la construction graphique à priori est toujours pareil et ne dépend pas de facteur externes / liés au jeu.
Voilà une petite explication, en espérant que ce ne soit pas incompréhensible ^^
Essai de faire ton projet avec d'autres personnes, fait toi aider ce sera plus simple (ne serait-ce que pour avoir des informations)
Quand j'étais étudiant j'ai du faire un jeu de dame en java (entre autre), ce qui s'apparente donc à ton problème.
La problématique de comment déplacer un pion d'un case à l'autre peut se décomposer de la manière suivante:
- tu as l'aspect graphique (un plateau sur lequel tu as des pions)
- tu as l'aspect mémoire (idem plateau (généralement un tableau 2D) avec des objets de type pion)
La manière de générer un mouvement de pion est assez simple en soit:
- coté utilisateur, il doit cliquer sur la case où se trouve le pion à déplacer, puis ensuite sur la case finale où le pion doit être placé.
- coté programme :
+ interface graphique : les cases où se trouvent les pions doivent être clicable (uniquement celle ou il y a des pions, comme ça tu n'a pas a controlé la présence d'un pion sur la case après la clic, tu sais que c'est déjà le cas). Suite au premier clic, les cases "disponible" doivent être clicable. La notion de "disponible" est à définir selon ton application / jeu. Par exemple, pour un jeu d'échec, il te faudra un algorithme pour définir quelle case est possible pour le déplacement selon le type de pion a déplacer (cavalier, dame, etc.) Pour un jeu de dame ce seront les cases adjacentes en diagonales, voir celle un peu plus loin si un pion adverse est sur l'une des cases adjacentes ou si tu déplace une dame.
+ moteur / programme = aspect mémoire : A chaque case graphique correspond une case de ton tableau en mémoire (qui représente en gros ton échiquier / plateau graphique). Chaque case peut soit être vide, soit contenir un objet de classe Pion (que tu as toi même décrite). Ainsi le but de ton programme sera de bouger de case ces objets pions au fur et à mesure des déplacement demandés. La reconstruction / mise à jour du plateau graphique devra toujours se faire sur ce tableau en mémoire à un instant donné, ainsi tu limite l'information à un seul endroit : le tableau en mémoire. Si par exemple tu rencontre un bug en jouant : un pion est mal placé graphiquement, tu sais que l'erreur vient de la gestion mémoire / déplacement de tes objets puisque la construction graphique à priori est toujours pareil et ne dépend pas de facteur externes / liés au jeu.
Voilà une petite explication, en espérant que ce ne soit pas incompréhensible ^^
Essai de faire ton projet avec d'autres personnes, fait toi aider ce sera plus simple (ne serait-ce que pour avoir des informations)
Guismos
Messages postés
16
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
13 avril 2009
13 févr. 2009 à 18:28
13 févr. 2009 à 18:28
Merci beaucoup ça m'oriente déjà vers quelques idées concrètes qui me manquaient cruellement ;) Je fais déjà mon projet avec d'autre personne, et le problème est qu'on est tous dans le même cas, c'est-à-dire dans le nouveau (on a programmer sous d'autres langages et java nous semble inconnu aujourd'hui). En tout cas merci pour tes conseils et tes explications!
Eltorosam137
Messages postés
28
Date d'inscription
samedi 15 octobre 2011
Statut
Membre
Dernière intervention
19 mai 2012
7
10 nov. 2011 à 22:04
10 nov. 2011 à 22:04
J'arrive un peu trad certainement, mais moi aussi j'ai un projet de jeu de plateau en JAVA, j'avais déjà intégré les notions citées par kij_82.
Mais moi un problème réside: comment définir les cases disponibles ou non; j'arrive à créer mes cases dispo mais si je suis au bord du plateau mes pions savent en sortir, ce qui est une erreur algorithmique, je le conçoit bien ... mais donc, est ce que quelqu'un saurait m'éclairer sur cet obstacle auquel je suis confronté? :S
Merci :)
Mais moi un problème réside: comment définir les cases disponibles ou non; j'arrive à créer mes cases dispo mais si je suis au bord du plateau mes pions savent en sortir, ce qui est une erreur algorithmique, je le conçoit bien ... mais donc, est ce que quelqu'un saurait m'éclairer sur cet obstacle auquel je suis confronté? :S
Merci :)