Programmation Jeu ABALONE

Programmation Jeu ABALONE - Java - Programmation

Marsh Posté le 13-12-2009 à 21:43:32    

Bonjour a tous,
Je suis actuellement en école d'ingénieur et je dois programmer le jeu abalone (http://fr.wikipedia.org/wiki/Abalone_%28jeu%29 ) .
Le problème est que je ne connais pas trop java et je n'ai pas le temps pour bien m'y mettre.
 
 J'aimerai avoir quelques renseignements.
 
Je dois programmer le jeu en console et en interface graphique. La console doit marcher indépendamment de l'interface graphique.
 
La marche à suivre que j'avais prévu était:
 
1° Programmation du jeu sur la console Eclipse
         Réalisation plateau et mouvement (J'avais pensé à un tableau de coordonnées pour cela)
         Programmation régles du jeu.
2° Programmation interface graphique
 
Je pense que je n'ai pas mis toutes les étapes ( à ce stade je ne vois pas trop toutes les étapes).
 
 
     J'aimerai bien avoir un peu d'aide sur ce sujet.
 
Merci
 

Reply

Marsh Posté le 13-12-2009 à 21:43:32   

Reply

Marsh Posté le 13-12-2009 à 22:09:03    

Tu dois décorréler les mécanismes du jeu de l'affichage.
Donc : gestion du jeu d'une part, utilisée par du swing pour l'affichage graphique, et du mode texte pour la console.
 
Hint : programmation objet.

Reply

Marsh Posté le 13-12-2009 à 22:44:02    

blackgeek a écrit :


Le problème est que je ne connais pas trop java et je n'ai pas le temps pour bien m'y mettre.


Perso, ce genre de phrase me fait toujours "tiquer" : comment se fait il que l'on te demande de programmer un tel jeu alors que tu ne connais pas Java et que tu n'as pas le temps de t'y mettre ? C'est un peu l'objet de ta formation non ? Ne me dis pas qu'"ils" te demandent de faire un tel travail sans t'enseigner de quoi le réaliser ?

Message cité 1 fois
Message édité par Harkonnen le 13-12-2009 à 22:44:58

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 14-12-2009 à 19:40:18    

Harkonnen a écrit :


Perso, ce genre de phrase me fait toujours "tiquer" : comment se fait il que l'on te demande de programmer un tel jeu alors que tu ne connais pas Java et que tu n'as pas le temps de t'y mettre ? C'est un peu l'objet de ta formation non ? Ne me dis pas qu'"ils" te demandent de faire un tel travail sans t'enseigner de quoi le réaliser ?


 
Bonjour,
   quand je dis que je ne m'y connais pas en Java, cela veut dire en fait que j'ai besoin d'aide . Pas que vous me le fassiez , mais que vous me guidiez.  
 
 
Pour l'instant j'en suis au code du plateau de jeu que j'ai représenté par un tableau à 2 dimensions. J'ai mis un booléen pour coder la présence de billes ou pas.
 
C'est un petit code (j'en suis au début);
 
Voici le code

Citation :

boolean [][] tab= new boolean[9][9]; //création du tableau 9*9 abalone.
 int i;int j;{ //création des index
 for (i=0; i<9;i++)
  for (j=0;j<9;j++)
   if (j<2 && i<5) {
    tab[i][j]= true;
   } else if (j==2 && (i==2 || i==3 || i==4)) {
    tab[i][j]= true;
   } else if (j==6 && (i==4 || i==5 || i==6)) {
    tab [i][j]= true;
   } else if ((j==7 || j==8) && i> 3 ) {
    tab [i][j]= true;
   } else {
    tab [i][j]= false;}


 
 
Aprés c'est juste le début mais je ne vois pas ou ça m'améne.
Je m'étais dit qu'après cela je pourrais coder les mouvements des billes en jouant sur le booléen
 
Un autre probléme, mon code ne prend pas en compte les équipes (billes noires et blanches).
 
 
    Merci d'avance.
 
 

Reply

Marsh Posté le 14-12-2009 à 22:04:18    

Je ne connais pas le jeu Abalone et je ne vais pas étudier ses règles car je n'ai pas le temps de m'y mettre.
Mais bonne nouvelle je connais bien java et la programmation en général.
 
Tout d'abord il me paraît évident qu'un booléen ne suffira pas pour représenter l'état d'une case puisque qu'une case peut avoir 3 états: vide, emplie d'une boule blanche ou emplie d'une boule noire. Essaye de coder quelque chose d'assez simple comme par exemple:
- des entiers: 0 pour vide, 1 pour blanc et 2 pour noir par exemple
- Un type Enum "Boule" qui vaut noir ou blanc. "null" peut être utilisé pour les cases vides.
 
Deuxièmement, je ne comprend par pourquoi tu utilises un tableau 9x9 pour représenter la grille de jeu qui n'est pas carrée mais hexagonale d'après ce que je vois. Tu devrais créer ta propre structure de données qui permet d'accéder facilement aux cases adjacentes d'une case donnée. Tu peux toujours stocker toutes les cases dans un tableau à côté mais alors un tableau à une dimension suffit.
 
Edit: en fait tu peux aussi utiliser un tableau de 9 éléments correspondant aux 9 lignes de jeu et y stocker des tableaux de taille variable, en fonction de la longueur de chaque ligne. Mais je ne sais pas si cette structure de données est idéale pour les opérations de base du jeu comme accéder facilement aux cases adjacentes.


Message édité par cbeyls le 14-12-2009 à 22:22:22
Reply

Marsh Posté le 15-12-2009 à 09:51:26    

L'utilisation d'un tableau d'entiers à une seule dimension est une solution classique. Pour éviter de tester les bords, on crée une ligne de cases imaginaires tout autour du plateau. Cela fait donc 4 valeurs possibles pour chaque case : vide, noir, blanche, ou hors plateau. C'est une solution souvent retenue pour les jeux d'échecs et autres jeux de plateau.
 
J'ai écrit un programme d'Abalone en langage C. Les sources sont disponibles sur mon site : http://olivier.thill.perso.neuf.fr [...] balone.htm
Ce n'est pas un cadeau, car mon code n'est pas très commenté, et n'est peut-être pas facile à comprendre. De plus ce n'est peut-être pas un style de programmation très académique. Mais ça marche bien, il n'y a pas de bug. C'est donc juste à titre d'exemple. D'ailleurs, il y a beaucoup d'étudiants qui m'écrivent pour me demander des renseignements, mais je ne me souviens plus très bien de ce code, écrit quand j'étais jeune.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed