JAVA - Distribution d'un paquet de carte

JAVA - Distribution d'un paquet de carte - Java - Programmation

Marsh Posté le 07-11-2015 à 13:06:10    

Salut les Hardwarien !  :p  
 
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.  :ouch:  
 
2. Une fois les ArrayList créé, comment distribuer les cartes de l'arraylist paquet vers les arraylist Joueur 1, Joueur 2 => Joueur nbJoueur?  :pt1cable:  
 
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
Reply

Marsh Posté le 07-11-2015 à 13:06:10   

Reply

Marsh Posté le 07-11-2015 à 13:08:55    

Trompé de catégorie :D

Reply

Marsh Posté le 07-11-2015 à 13:15:36    

Oups c'est dans quelle catégorie ? :)

Reply

Marsh Posté le 07-11-2015 à 13:47:13    

Ce sujet a été déplacé de la catégorie Achats & Ventes vers la categorie Programmation par Djalex


---------------
------------------------------------------
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed