Jeu de plateau [Fermé]

Signaler
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017
-
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017
-
Bonjour, à tous voilà je suis entrain de codé un petit jeux de société qui se joue a 2 , toute fois je suis confronté à un petit problème quant à ma méthode public static String ChangerJoueur();
par exemple quand le joueur "rouge" a fini son tour j'aimerais que se soit au tour de mon joueur "bleu" de jouer et vice versa , j'ai donc crée une variable temporaire qui me permetra de recueillir la valeur du joueur rouge ou bleu mais ma méthode présente des failles lors de l'exécution autrement dis c'est toujours le joueur rouge qui joue , une âme charitable serait-il en mesure de m'aider ? Merci.

1 réponse

Messages postés
16336
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
14 mai 2021
2 829
Bonjour,

Sans code on ne va pas aller bien loin...
Messages postés
16336
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
14 mai 2021
2 829
"ce qui permet l'affichage de "sb" c'est la méthode toString qu'il a hérité de la classe Object"
Non, StringBuilder n'affiche rien, il construit juste un String. Ce qui permet l'affichage c'est parce que derrière tu affiches le String résultat avec
System.out.println(afficherPlateaux());


"quoi que je rentre comme case sa m'affiche : Vous n'avez pas choisi une bonne case"
Parce que tu compares deux choses qui n'ont rien à voir :
joueurCourant.equals(plateaux[choix])

joueurCourant est objet qui vaut BLANC ou NOIR, alors que plateaux[choix] vaut "N" ou "B". Dans le code que j'ai fait hier ça fonctionnerait car j'ai utilisé l'enum partout, donc tu aurais BLANC et NOIR à la fois pour les joueurs et pour les cases, mais comme tu tiens absolument à rester avec tes String forcément ça marche pas pareil.
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017

D'accord merci , j'ai finalement réussis à pourvoir comparé les String et par conséquent différencier le noir du blanc cependant j'suis confronté à un autre problème concernant la taille du tableaux , supposons qu'un des joueurs arrive a la case 13 ( t[[13]) et qu'il fasse un lancer de plus de 2 genre (3,4,5,6) , Une Exception apparaît m'indiquant que les limites de mon tableaux on été dépassé (ArrayIndexoutOfBound) , par conséquent serait t'il possible de traité ce cas lorsque la taille de mon tableaux a été dépassé , on ne considère que la dernière case (t[15]) pour éviter l'Exception ?
Messages postés
16336
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
14 mai 2021
2 829
Regarde mon code, ce cas là je l'avais géré...

        int caseArrivee = caseDepart + lanceDe;
        if (caseArrivee >= plateau.size()) {
            System.out.println("La case d'arrivée est invalide. Le joueur " + joueurCourant + " a perdu son jeton.");
            enleverUnJeton(joueurCourant);
            return;
        }
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017

Oui j'ai vu mais étant têtus comme je suis , j'suis resté avec mes Strings du coup peux de choix s'offre à moi en ce qui concerne les comparaisons , autrement dis je peut pas comparé la taille de mon tableaux (length) avec un entier parce que ma variable plateaux est un String , j'ai pensais du coup a utilisé la méthode compareTo :
genre if(plateaux[choix+dee].compareTo(plateaux[plateaux.length-1]) != 0)

mais le démol c'est que supposons que j'entre une case non occupé ( vide) et inférieur a la taille de mon tableau ce branchement sera quand mémé activé :/
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017

Ou alors Utilisé le Integer.parseInt , puis convertir mon tableaux String en un entier et faire la comparaison avec l'opérateur >, < = , Mais j'vois pas trop comment m'y prendre à ce niveaux , et je sais pas si sa peut se faire de cette façons :/