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

Langage Java Discussion :

Problème de jeu question / réponse


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Points : 37
    Points
    37
    Par défaut Problème de jeu question / réponse
    Bonjour, dans le cadre d'un projet que j'ai à faire je fais un jeu de question réponse, j'essaie d'ajouter des categories de questions (sport, culture générale, etc...), l'ajout se déroule bien après je veux afficher mes categories que j'ai ajouté mais ça m'affiche juste le tout dernier élément ajouté dans le Vector.
    je vous mets le code ci dessous merci de m'aider:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    import java.util.Vector;
     
     
    public class Lejeu 
    {
     
     
     
     
    	public static void main(String [] args) throws Exception
    		{
     
     
    			System.out.println("*********************************************************************************");
    			System.out.println("                    Bonjour et bienvenue dans le jeu                           ");                           
    			System.out.println("*********************************************************************************");
    			String pseudo = null;//pseudo admin
    			String pass = null;//pass admin
    			int a = 1;
    			do
    				{
    					System.out.println("veuillez choisir :");
    					System.out.println("1 ==> Administrateur");
    					System.out.println("2 ==> Joueur");
    					System.out.println("3 ==> Quitter");
    					int ch=Lire.i();
    					switch(ch)
    					{
    						//Administrateur
    						case 1: System.out.println("veuillez entrer votre pseudo:");
    								pseudo=Lire.S();
    							    System.out.println("veuillez entrer votre mot de passe:");
    							    pass=Lire.S();
    							    if(pseudo.equals("admin") && pass.equals("admin"))//si pseudo et pass sont bons authentification
    									{
    										System.out.println("bienvenue M. l'Administrateur");
    										System.out.println("1 ==> Ajouter une catégorie");
    										System.out.println("2 ==> Supprimer une catégorie");
    										int ch1=Lire.i();
    										if(ch1==1)//Ajouter une catégrie
     
    										{
    											char rep;//la réponse au fait si on veut ajouter une autre catégorie
    											Listecateg L= new Listecateg();
    											L.initialiser();
    											do
    											{
     
    												System.out.println("entrer le nom de votre catégorie");
    												String categ=Lire.S();
    												Categorie C=new Categorie(categ);
    												Listecateg.ajouter_categ(C);
    												System.out.println("voulez vous ajouter une autre catégorie ?");
    												rep=Lire.c();
    											}
    											while(rep=='o');
    											System.out.println("vos catégorie sont:");
    											L.afficher_list();
     
     
    										}
    										if(ch1==2)//Supprimer une catégrie
    										{
     
    										}
    									}
    							    else
    									{
    										a=0;//variable servant à reboucler en cas d'echec d'identification
    										System.out.println("echec");
    									}
     
    						//Joueur
    						//case 2: System.out.println("veuillez entrer votre pseudo");
    								//String pseudo_j=Lire.S();
     
    					}
     
     
    				}
    			while(a==0);
     
    		}
    }
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    import java.util.*;
    import java.io.*;
     
     
    public class Listecateg 
    {
    	public static Vector<Categorie> v;
    	static int nb_categ=0;//nombre de categorie dans la liste
     
     
     
     
     
    	public void initialiser() //initialise le Vector
    	{
    		v= new Vector<Categorie> ();
    	}
     
     
    	public static boolean ajouter_categ(Categorie catego)throws Exception//ajoute une categorie à la collection
    	{
    		 if(v.add(catego))//retourne true si l'ajout s'est bien déroulé
    		 	{
    				System.out.print("l'ajout s'est bien deroulé\n");
    				nb_categ++;
    				return true;
     
    		 	}
    		 else 
    			{
    				System.out.print("l'ajout n'est pas effectué\n");
    				return false;
    			}
     
    	}
     
    	public static boolean supprimer_categ(Categorie categ)//supprimer une categorie à la collection
    	{
    		if (v.remove(categ))//retourne true si la suppression s'est bien déroulé
    			return true;
    			else//retourne false sinon
    			return false;
    	}
     
    	public void afficher_list()
    	{
    		/*for(int i=0;i<v.size();i++)
    		{
    			((Categorie) v.elementAt(i)).afficher_categ();
    		}*/
    		Enumeration<Categorie> e =  v.elements() ; 
    		while(e.hasMoreElements())  
    		{
    	         ((Categorie) e.nextElement()).afficher_categ();
     
    		}
    	}
     
    }
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    import java.util.Vector;
     
     
    public class Categorie 
    {
    	static String nom_Categ; //le type de la catégorie
    	public Vector<Questrep> v; //on stockera nos questions réponses dans une classe Vector
    	int nb_quest_rep; //le nombre des questions réponses dans la catégorie
     
    	public Categorie(String nom)//constructeur de categorie
    	{
    		Categorie.nom_Categ=nom;
    	}
     
     
    	public void initialise() //initialise le Vector
    	{
    		v= new Vector<Questrep> ();
    	}
    	public boolean ajouter(Questrep quest)//ajoute des questions réponses à la catégorie
    	{
    		if (v.add(quest))//retourne true si l'ajout s'est bien déroulé
    		return true;
    		else//retourne false sinon
    		return false;
    	}
     
    	public boolean supprimer(Questrep quest)//ajoute des questions réponses à la catégorie
    	{
    		if (v.remove(quest))//retourne true si la suppression s'est bien déroulé
    		return true;
    		else//retourne false sinon
    		return false;
    	}
     
    	public void afficher_categ() 
    	{
    		System.out.println(Categorie.nom_Categ);
     
    	}
     
     
     
     
     
     
    }
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
     
    import java.io.*;
    public class Lire
    {
    public static String S() // Lire un String
    {
    String tmp = "";
    char C='\0';
    try {
             while ((C=(char) System.in.read()) !='\n')
             {
              if (C != '\r')  tmp = tmp+C;
     
             }
       }
     catch (IOException e)
            {
              System.out.println("Erreur de frappe");
              System.exit(0);
            }
     return tmp;
    } // fin de S()
     
     public static byte b()  // Lire un entier byte
     {
      	 byte x=0;
     	 	try {
    			 x=Byte.parseByte(S());
    	  	 	}
     	 	catch (NumberFormatException e) {
              System.out.println("Format numérique incorrect");
              System.exit(0);
        }	
    	  return x ;
     }
     
     public static short s()  // Lire un entier short
     {
       	 short x=0;
     	 	try {
    			 x=Short.parseShort(S());
    	  	 	}
     	 	catch (NumberFormatException e) {
              System.out.println("Format numérique incorrect");
              System.exit(0);
        }	
    	  return x ;
     }
     
     public static int i()  // Lire un entier
     {
     	 int x=0;
     	 	try {
    			 x=Integer.parseInt(S());
      	 	}
     	 	catch (NumberFormatException e) {
              System.out.println("Format numérique incorrect");
              System.exit(0);
        }	
    	  return x ;
     }
     
     public static long l()  // Lire un entier long
     {
     	 long x=0;
     	 	try {
    			 x=Long.parseLong(S());
      	 	}
     	 	catch (NumberFormatException e) {
              System.out.println("Format numérique incorrect");
              System.exit(0);
        }	
    	  return x ;
     }
     
     public  static double d()  // Lire un double
     {
      	double x=0.0;
     	 	try {
    	 		x=Double.valueOf(S()).doubleValue();
     	 	}
     	 	catch (NumberFormatException e) {
              System.out.println("Format numérique incorrect");
              System.exit(0);
        }	
    	  return x ;
     }
     
     public  static float f()  // Lire un float
     {
       float x=0.0f;
     	try {
     		x=Float.valueOf(S()).floatValue();
        	}
     	catch (NumberFormatException e) 
     	{
              System.out.println("Format numérique incorrect");
              System.exit(0);
        }	
    	  return x ;
     }
     
     public  static char c()  // Lire un caractere
     {
      String tmp=S();
      if (tmp.length()==0)
    	  return '\n';
      else 
    		{
    		return tmp.charAt(0);
    		}
     }
    }
    merci d'avance

  2. #2
    Membre actif

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Points : 295
    Points
    295
    Par défaut
    Bonjour,

    Ton problème provient de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static String nom_Categ;
    Dans ta classe Categorie

    Il faut transformer ce champ en non static :
    son utilisation dans le code ne se fera plus avec la syntaxe :
    mais la syntaxe :
    Tes vecteurs étaient initialisées correctement,
    néanmoins, tu remplissais la catégorie dans un champ static.
    Rapidement, un champ static est un champ qui garde la même valeur quelque soit l'instance appelée de ta classe,
    ici, tous tes éléments Categorie dans ton vecteur avaient donc la même valeur statique du nom de catégorie.
    Pour ne pas paraphraser plus, je te conseilles de lire la FAQ a ce sujet pour bien comprendre le static : http://java.developpez.com/faq/java/...motsClesStatic

    Par définition, utilises des variables dynamiques non statiques pour créer tes objets, cela t'éviteras de retomber sur ce problème.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Points : 37
    Points
    37
    Par défaut merci
    merci infiniment pour l'aide

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    profile
    Inscrit en
    Novembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : profile
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut manar 18
    salem
    svp aide moi sur le programme d`un jeux question reponse en java
    j`attend votre reponses
    merci

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

Discussions similaires

  1. Jeu de matching questions/réponses
    Par Revolver dans le forum Général Python
    Réponses: 6
    Dernier message: 22/05/2013, 13h33
  2. [AC-2007] Création de jeu (questions/réponses)
    Par adameteve dans le forum Modélisation
    Réponses: 1
    Dernier message: 17/10/2011, 13h42

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