Partage
  • Partager sur Facebook
  • Partager sur Twitter

Hit the beaver!Comparé la saisie si elle est bonne

    23 septembre 2020 à 22:48:56

    Bonjour,Bonsoir OpenClassRooms

    Dans le cadre d'un exercice en algo, Je dois reproduire le célèbre jeu hit the beaver !

    Ca fait plusieurs heures que je galère sur un problème simple à mon avis, me je ne trouve pas la solution.

    Voilà en gros avec des scanners je demande les choix de l'utilisateur, Une fois la partie lancer le beaver ( taupe ) est généré aléatoirement sur un tableau 5 par 5 ( en mode facile ). dans l'exemple ci dessus le beaver est placé en 4 par 4 à la saisie de l'utilisateur si il trouve la coordonné dans le temps impartie exact il gagne la partie. ( il y aura 10 manche ect ect ..)

    Mon soucis c'est que à la saisie de l'utilisateur il passe dans le Else alors que les coordonnés sont exact.

    Mon code : 

    // Grille.java
    
    package com.company;
    
    import javax.management.StringValueExp;
    import java.util.*;
    
    public class Grille {
    
    
        //Attribut
        public static Random r = new Random();
        private static int nbLig;
        private static int nbCol;
        private static char[][] grille;
    
        private static int mx = 3;
        private static int my =  3;
    
    
        public static String mxToString = Integer.toString(mx -1 );
        public static String myToString = Integer.toString(my -1 );
    
        //constructeur
    
        public static void setupGrid(int n, int p) {
            nbLig = n;
            nbCol = p;
            grille = new char[nbLig][nbCol];
    
            for (int i = 0; i < nbLig; i++) {
                for (int j = 0; j < nbCol; j++) {
                    grille[i][j] = ' ';
                }
            }
    
    
            grille[mx][my] = 'b';
    
    
        }
    
    
        // methode
    
        public static void displayGrid() {
            System.out.println();
            for (int i = 0; i <= nbLig; i++) {
                if (i != nbLig)
                    System.out.print(i + 1 + "");
                else
                    System.out.print(" ");
                for (int j = 0; j < nbCol; j++) {
                    if (i == nbLig) {
                        System.out.print(j + 1 + " ");
                    } else
                        System.out.print( grille[i][j] + " ");
    
                }
                System.out.println();
            }
    
        }
    }

    Fonction qui lance la partie :

    public static void startGame() {
            Scanner scanner = new Scanner(System.in);
            for (int i = 0; i < 10 ; i++) {
                Grille.displayGrid();
                String userInput = scanner.nextLine();
                System.out.println(userInput);
    
                if(userInput.equals(Grille.mxToString) && userInput.equals(Grille.myToString) ){
                    System.out.println("Bravo");
                } else {
                    System.out.println("Raté");
                }
            }
        }

     Logiquement avec les bonnes coordonnés il doit passé dans le if !

    En vous souhaitant une bonne soirée, je me tiens disponible pour tout questions.

    • Partager sur Facebook
    • Partager sur Twitter
      24 septembre 2020 à 10:37:26

      Dans ton scanner tu aas les deux coordonnees, donc "4 4", mais tu compares a la premiere et a la deuxieme ensuite. Et en effet "4 4" est différent de "4".

      Apres je ne comprends pas les moins un lignes 21 et 22 de Grille, ou alors les bonnes coordonnees sont 2 2.

      • Partager sur Facebook
      • Partager sur Twitter

      Hit the beaver!Comparé la saisie si elle est bonne

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown