Signaler

Jeu de plateau

Posez votre question Jiko-java 110Messages postés dimanche 25 septembre 2016Date d'inscription 7 décembre 2016 Dernière intervention - Dernière réponse le 7 déc. 2016 à 01:04
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.
Afficher la suite 
Utile
+0
moins plus
Bonjour,

Sans code on ne va pas aller bien loin...
KX 13732Messages postés samedi 31 mai 2008Date d'inscription ModérateurStatut 7 décembre 2016 Dernière intervention - 4 déc. 2016 à 19:59
"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.
Répondre
Jiko-java 110Messages postés dimanche 25 septembre 2016Date d'inscription 7 décembre 2016 Dernière intervention - 6 déc. 2016 à 01:18
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 ?
Répondre
KX 13732Messages postés samedi 31 mai 2008Date d'inscription ModérateurStatut 7 décembre 2016 Dernière intervention - 6 déc. 2016 à 06:47
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;
        }
Répondre
Jiko-java 110Messages postés dimanche 25 septembre 2016Date d'inscription 7 décembre 2016 Dernière intervention - 6 déc. 2016 à 20:13
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é :/
Répondre
Jiko-java 110Messages postés dimanche 25 septembre 2016Date d'inscription 7 décembre 2016 Dernière intervention - 7 déc. 2016 à 01:04
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 :/
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !