Partage
  • Partager sur Facebook
  • Partager sur Twitter

jeu questionnaire methode

Sujet résolu
    1 avril 2015 à 20:01:28

    Bonjour moi je veu faire une methode qui va me permettre dans la classe main de juste cree lobjet ensuite marquer exemple Q1.qW(); et la sa va executer tout le code mais voici mon probleme:(a la ligne je voudrais que le Q change a chaque fois que je cree un nouvelle objet Q1..Q2...Q3 ect.. et aussi au(ligne 14) if reponse.equals("a") || reponse.equals("A") que la lettre change pour les prochaine question cree alors je ne sais pas commen faire voici mon code

    juste le bout de la methode qW():

    	public void qW()
    	{
    	    Sport Q = new Sport(question , rA , rB , rC , rD );
    	    System.out.println(Q.getQuestion());
    	    System.out.println();
    	    System.out.println(Q.getrA());
    	    System.out.println(Q.getrB());
    	    System.out.println(Q.getrC());
    	    System.out.println(Q.getrD());
    	    System.out.println();
    	    System.out.print("Veuillez choisir entre A,B,C ou D: ");
    	    reponse = sc.nextLine();
    	    
    	    if(reponse.equals("a") || reponse.equals("A"))
    	    {
    	    	System.out.println("bonne reponse");
    	    }
    	    
    	    else
    	    {
    	    	System.out.println("Mauvaise reponse");
    	    }
    
    	}

    Voici le code de la methode main:

    import java.util.Scanner;
    
    
    public class DYK1 
    {
    
    	public static void main(String[] args) 
    	{
    		Sport Q = new Sport("Qui est l'actuel president des Etats-Unis","A: Barack Obama","B: Stephen Harper","C: Booba(lol)","D: Bush");
    		Q.qW();
    
    	}
    
    }
    




    -
    Edité par korked 1 avril 2015 à 20:35:09

    • Partager sur Facebook
    • Partager sur Twitter
      1 avril 2015 à 22:37:19

      Bonsoir.

      korked a écrit:

      a la ligne je voudrais que le Q change a chaque fois que je cree un nouvelle objet Q1..Q2...Q3 ect..

      Si tu veux définir plusieurs variables q1, q2, ... tu peux simplement faire ça dans une boucle :

      for (int i=0; i<5; i++) {
          Sport Q = ...
      }

      korked a écrit:

      au(ligne 14) if reponse.equals("a") || reponse.equals("A") que la lettre change pour les prochaine question cree

      En gros tu voudrais que la réponse dépende de la question ?

      Je te conseille de stocker la réponse dans ton objet Sport, en y ajoutant un attribut par exemple :

      class Sport {
          final List<String> propositions = new ArrayList<>();
          final int response;
          final String title;
      
          Sport(String title, String goodResponse, String... badResponses) {
              this.title = title;
              propositions.add(goodResponse);
              propositions.addAll(Arrays.asList(badResponses));
              Collections.shuffle(propositions);
              response = propositions.indexOf(goodResponse);
          }
      
          Collection<String> getPropositions() {
              return propositions;
          }
      
          boolean test(int index) {
              return index == response;
          }
      }

      Et l'utilisation :

      Sport Q = new Sport("Qui est l'actuel president des Etats-Unis",
              "Barack Obama", "Stephen Harper", "Booba(lol)", "Bush");
      System.out.println("Propositions: " + Q.getPropositions());
      System.out.println("0: " + Q.test(0));
      System.out.println("1: " + Q.test(1));
      System.out.println("2: " + Q.test(2));
      System.out.println("3: " + Q.test(4));
      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
        1 avril 2015 à 22:48:27

        Je ne comprend pas vraiment il y a des notion que tu m'explique que je n'est pas encore apprisla dans le tuto alors sa me dit rien avec mon code a t-il un moyen de le faire

        exemple j'ai essayer sa mais sa ne marche pas a la ligne(5) sa dit syntax error on token 'i' delete this token pis cannot convert from sport to sport[]

        	public void qW()
        	{
        		int i;
        		i++;
        	    Sport Q[i] = new Sport(question , rA , rB , rC , rD );
        	    System.out.println(Q[i].getQuestion());
        	    System.out.println();
        	    System.out.println(Q[i].getrA());
        	    System.out.println(Q[i].getrB());
        	    System.out.println(Q[i].getrC());
        	    System.out.println(Q[i].getrD());
        	    System.out.println();
        	    System.out.print("Veuillez choisir entre A,B,C ou D: ");
        	    reponse = sc.nextLine();
        	    
        	    if(reponse.equals("a") || reponse.equals("A"))
        	    {
        	    	System.out.println("bonne reponse");
        	    }
        	    
        	    else
        	    {
        	    	System.out.println("Mauvaise reponse");
        	    }
        
        	}



        -
        Edité par korked 1 avril 2015 à 23:08:54

        • Partager sur Facebook
        • Partager sur Twitter
          1 avril 2015 à 23:13:42

          Oui effectivement, je me suis un peu emballé :-°

          A mon avis tu devrais être capable de suivre ces étapes pour arriver vers un résultat similaire :

          • Initialise ton objet :
            • Il faut déclarer un ensemble (tableau, liste, ...) contenant l'ensemble des réponses possibles.
            • Il faut enregistrer la bonne réponse (String ou son index dans l'ensemble)
          • Déclare une méthode qui va tester si la réponse sélectionnée est bonne
            • Paramètre : le choix de l'utilisateur, par exemple l'index (0 à n-1)
            • Test : comparer la bonne réponse enregistrée avec celle sélectionnée
            • Retour : true si bonne réponse, false sinon
          • Controlleur : l'affichage et la saisie de l'utilisateur devrait se faire hors de ta classe Sport (dans ton main par exemple).
            • Affichage des propositions : parcourir l'ensemble des réponses possibles avec un foreach
            • Saisie utilisateur : demander un entier (Scanner::nextInt)
            • Test : appeler la méthode précédemment définie
            • Résultat : afficher le résultat
          • Partager sur Facebook
          • Partager sur Twitter
          Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
            1 avril 2015 à 23:44:35

            il n'y pas un moeyn de convertir sport a sport[] tous simplement. car a la ligne 5 sa me dit cannot convert from sport to sport[]

            -
            Edité par korked 1 avril 2015 à 23:47:45

            • Partager sur Facebook
            • Partager sur Twitter
              1 avril 2015 à 23:54:46

              sa ses ma classe sport au complet lerreur est a la ligne 59

              import java.util.Scanner;
              
              
              public class Sport
              {
              	
              	Scanner sc = new Scanner(System.in);
              	
              	public String question = " ";
              	public String rA = " ";
              	public String rB = " ";
              	public String rC = " ";
              	public String rD = " ";
              	public String reponse = " ";
              	
              	public Sport(String pQuestion , String prA , String prB , String prC , String prD)
              	{
              		question = pQuestion;
              		rA = prA;
              		rB = prB;
              		rC = prC;
              		rD = prD;
              	}
              	
              	public String getQuestion()
              	{
              		return question;
              	}
              	
              	public String getrA()
              	{
              		return rA;
              	}
              	
              	public String getrB()
              	{
              		return rB;
              	}
              	
              	public String getrC()
              	{
              		return rC;
              	}
              	
              	public String getrD()
              	{
              		return rD;
              	}
              	
              	public void setQuestion(String pQuestion)
              	{
              		this.question = question;
              	}
              	
              	public void qW()
              	{
              		int i = 0;
              		i++;
              	    Sport Q[i] = new Sport(question , rA , rB , rC , rD );
              	    System.out.println(Q[i].getQuestion());
              	    System.out.println();
              	    System.out.println(Q[i].getrA());
              	    System.out.println(Q[i].getrB());
              	    System.out.println(Q[i].getrC());
              	    System.out.println(Q[i].getrD());
              	    System.out.println();
              	    System.out.print("Veuillez choisir entre A,B,C ou D: ");
              	    reponse = sc.nextLine();
              	    
              	    if(reponse.equals("a") || reponse.equals("A"))
              	    {
              	    	System.out.println("bonne reponse");
              	    }
              	    
              	    else
              	    {
              	    	System.out.println("Mauvaise reponse");
              	    }
              
              	}
              
              }



              • Partager sur Facebook
              • Partager sur Twitter
                2 avril 2015 à 8:53:18

                Q[i] n'est pas un nom de variable correct, tout simplement.
                Tu confonds :
                - le type Sport[] qui est un tableau de type
                - la déclaration d'une variable Sport[] qui est une variable de type <code>Sport[]</code>
                - l'affectation ou la récupération q[i] d'une variable dans un tableau
                • Partager sur Facebook
                • Partager sur Twitter
                Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)

                jeu questionnaire methode

                × 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