Salut les Hardwarien !  
  
 
J'ai pour tâche de développer un genre de jeu de carte en Java. Là où je bloque c'est dans la distribution des cartes aux nbJoueur joueurs. Je m'explique, je possède :
 
- un Integer nbJoueur : contenant le nombre de joueur par exemple 3
- un Integer nbCarte : contenant le nombre de carte par exemple 6
- une arrayList paquet : contenant la liste de toutes les cartes dans un ordre aléatoire par exemple {5;3;1;2;4;6}
 
1. Pour distribuer les cartes de l'arrayList paquet, il faut d'abord créer le paquet de carte pour chaque joueur (dans une arraylist je suppose?). Donc Arraylit Joueur1, ArrayList Joueur 2 ... Jusqu'à ArrayList Joueur nbJoueur.
 
Seulement, je ne vois pas comment créer automatiquement des Arraylist de Joueur 1 jusqu'à Joueur nbJoueur.  
  
 
2. Une fois les ArrayList créé, comment distribuer les cartes de l'arraylist paquet vers les arraylist Joueur 1, Joueur 2 => Joueur nbJoueur?  
  
 
Voici mon code pour les courageux. On ne s'occupe que de la méthode "distribution" :
 
 
Citation :
 
 
 package JeuDeCarte;
   import java.util.*;
   public class GestionJeuDeCarte   {
  public static void main(String[] args)    {
  	JeuDeCarte jdc = new JeuDeCarte();
  	jdc.creationPaquetDeCarte();
  	jdc.distribution();
      }
 }
       class JeuDeCarte
 {
  int nbJoueur;
  int nbCarte;
  int[] paquet;
  
  public void creationPaquetDeCarte()            //Declaration de la fonction de creation de paquet de carte
  {
  	Scanner scannbCarte = new Scanner(System.in);          	//Instanciation des scanners
  	Scanner scannbJoueur = new Scanner(System.in);
      	System.out.println("Bonjour, combien y a t-il de joueur?" );
  	int nbJoueur = scannbJoueur.nextInt();              //Associe la valeur rentree par l'utilisateur dans l'entier nbJoueur
      	while (0 < nbJoueur && nbJoueur > 11)              //Boucle qui redemande de rentrer le nombre de joueur si le nombre rentre n'est pas compris entre 0 et 10
  	{
    System.out.println("Entree incorrecte ... Merci de renseigner un nombre de joueurs compris entre 1 et 10:" );
    nbJoueur = scannbJoueur.nextInt();              //Associe la nouvelle valeur rentree par l'utilisateur dans l'entier nbJoueur
  	}
      	System.out.println("Merci, combien y a t-il de cartes dans votre paquet?" );
  	nbCarte = scannbCarte.nextInt();              	//Associe la valeur rentree par l'utilisateur dans l'entier nbCarte
      	while (0 < nbCarte && nbCarte > 101)            	//Boucle qui redemande de rentrer le nombre de joueur si le nombre rentre n'est pas compris entre 0 et 100
  	{
    System.out.println("Entree incorrecte ... Merci de renseigner un nombre de cartes compris entre 1 et 100:" );
    nbCarte = scannbCarte.nextInt();              //Associe la nouvelle valeur rentree par l'utilisateur dans l'entier nbCarte
  	}
      	while (nbCarte % nbJoueur != 0)              	//Boucle qui indique que le reste de la division de nbCarte par nbJoueur doit etre nul pour que les deux valeurs soient des multiples entre eux
  	{
    System.out.println("Le nombre de carte n'est pas un multiple du nombre de joueur, merci de saisir un nouveau nombre de carte :" );
    nbCarte = scannbCarte.nextInt();
  	}
      
  	System.out.println("La partie commence avec " + nbCarte + " cartes, et " + nbJoueur + " joueurs. C'est parti !" );
      	scannbCarte.close();
  	scannbJoueur.close();
  }
  
  public void distribution()
  {
      	ArrayList <Integer> paquet = new ArrayList <Integer> (nbCarte);      	//Creation du paquet de carte dans une arraylist
  
  	int length = 0;    
    while (length < nbCarte)                //Melange des cartes de maniere aleatoire
    {
    	int n = (int) (Math.random() * nbCarte);
    	if (!paquet.contains(n))
    	{
      paquet.add(n);
      length += 1;
    	}
    }
        for (int i=0; i < nbCarte; i++)
    {
    	System.out.println("Le paquet est melange ! Voici les valeurs dans l'ordre : " + paquet.get(i));	//Affiche la liste des cartes melangees
    }
  
  }
 }
  
 
   | 
 
Message édité par jumpin le 07-11-2015 à 13:16:26