IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Problème de compteur dans mon code pour comparer 2 combinaisons


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    amateur
    Inscrit en
    Juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 14
    Par défaut Problème de compteur dans mon code pour comparer 2 combinaisons
    Bonjour à tous,

    Je sollicite votre aide car j'ai un petit soucis de compteur dans mon jeu de combinaison type mastermind et je n'arrive pas à trouver la solution. Pour être précis, le code fonctionne lorsqu'il n'y pas de doublon dans la combinaison. Mais quand je me retrouve avec une combinaison à trouver du style: 656, et que je rentre 567, l'ordinateur me renvoie 3 présents à la place de 2 présents.
    Voici mon code:
    nb_chiffre correspond au nombre de chiffre de la combinaison à trouver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public void mastermind(){
    compteurBienPlace = 0;
    compteurPresent = 0;
            // Condition qui me permet de compter les biens placés
            for (int i = 0; i < nb_chiffre(); i++) {
                if (combiJoueur()[i] == combiOrdi()[i])
                    compteurBienplace ++;
                    // Condition qui me permet de vérifier s'il y a des présents (TEST)
                else if (combiJoueur()[i] != combiOrdi()[i]) {
                    for (int j = 0; j <nb_chiffre(); j++) {
                        if (combiJoueur()[i] == combiOrdi()[j]) {
                          compteurPresent;
                        }
                    }
     
                }
            }
     
        }
    Merci pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    amateur
    Inscrit en
    Juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 14
    Par défaut solution trouvée
    Finalement j'ai trouvé la solution en introduisant 2 booléens, pour ceux qui sont intéressés voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    compteurBienPlace = 0;
    setCompteurPresent = 0;
     
    boolean[] marqueJoueur = new boolean[nb_chiffre];
    boolean[] marqueOrdi = new boolean[nb_chiffre];
     
    // Condition pour trouver les chiffres bien placés
    for (int i = 0 ; i < getNb_chiffre() ; i++){
        if (combiJoueur[i] == combiOrdi[i]){
            compteurBienPlace++;
            marqueJoueur[i] = true;
            marqueOrdi[i] = true;
        }
        // Condition qui permet de trouver les chiffres présents en tenant compte des doublons grâce aux booléens marqueJoueur et marqueOrdi
        else {
            for (int k = 0 ; k < nb_chiffre; k++){
                for (int j = 0 ; j < nb_chiffre; j++){
                    if (combiJoueur[k] == combiOrdi[j] && !marqueJoueur[k] && !marqueOrdi[j]){
                        compteurPresent++;
                        marqueJoueur[k] = true;
                        marqueOrdi[j] = true;
                    }
                }
            }
        }
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/03/2017, 10h47
  2. [Macro Access] pb dans mon code pour lancer une macro Access
    Par Commodore dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/06/2007, 10h51
  3. Problème d'asm dans mon code C
    Par Truffo dans le forum C
    Réponses: 4
    Dernier message: 11/06/2007, 14h44
  4. Problème try-catch dans mon code
    Par little pepito dans le forum Langage
    Réponses: 7
    Dernier message: 11/06/2007, 12h22
  5. Problème de paramètres dans mon code javascript
    Par cocacollection dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo