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

Java Discussion :

Crétion d'une pioche pour un jeu


Sujet :

Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Crétion d'une pioche pour un jeu
    Bonjour,

    Je suis débutant en java et utilise eclipse.
    Mon pb est le suivant:

    j ai créé une classe EnsembleDePions où je désire faire piocher aléatoirement un joueur.
    pour cela j ai créé un tableau de valeurs de pion ou j ai defini toutes mes valeurs:

    private static final int[] valeurs = {0,1,...15}

    j ai ensuite créé un vector de Pion: (classe que j ai définie au préalable)

    private Vector<Pion> lesPions;

    (avec getters et setters...)

    mais je ne sais pas comment fire piocher aléatoirement , sauf le fait d'utiliser Math.random(?)....

    Merci aux futures réponses..;

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Mélange ton tableau de valeurs, puis lit les valeurs une à une en incrémentant l'index.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    pour mélanger j'ai entendu parler de "shuffle".
    Est-ce cohérent avec ce que je dois faire?
    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
    import java.util.Vector;
    import java.math.*;
     
    public class EnsembleDePions {
     
    	private static final int[] valeurs = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
    			1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
    			4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7,
    			7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12,
    			13, 13, 14, 15 }; // 80 pions au total
     
    	private Vector<Pion> lesPions;
     
    	// Constructeur
     
    	public EnsembleDePions() {
    		this.lesPions = new Vector<Pion>();
    	}
     
    	public Vector<Pion> getUnPion() {
    		return this.lesPions;
    	}
     
    	public Pion getUnPion(int i) {
     
    		if ((i > 0) && (i <= this.getTaille())) {
    			return this.getUnPion().elementAt(i);
    		} else {
    			return null;
    		}
    	}
     
    	public int getTaille() {
    		return this.getUnPion().size();
    	}
     
    	public void ajouter(Pion p) {
    		this.getUnPion().add(p);
    	}
     
    	public void supprimer(Pion p) {
    		this.getUnPion().remove(p);
    	}
     
    }

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    "shuffle" signifie mélanger en anglais
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    MERCIIIIIIII! mais ce que je voulais savoir c'est s'il existait une méthode java qui permettait de mélanger....et qui se nommait shuffle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void allouerAleatoire() {
     
    		this.lesPions = new Vector<Pion>(this.getTaille());
     
    		for (int i = 0; i < 80; i += 1) {
    			this.lesPions = new Vector<Pion>();
                            .....
    J avais pensé remplir un nouveau Vector de Pion avec mes valeurs( ce que je n'arrive pas à faire d'aillerurs...) et puis faire ensuite un Math.random........

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Ah pardon, je n'avais pas compris le sens de ta question.

    Pour le mode shuffle, sauf erreur de ma part, ça ne me dit rien dans l'API standard. Mais c'est simple à implémenter. Tout d'abord, remplir le tableau. Ensuite, pour chaque élément du tableau, tu l'échanges de manière aléatoire avec un autre élément du tableau.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ah d'accord!

    Mais je ne vois pas comment faire l'opération suivante:
    je voudrais effectuer :

    (int)Math.random(valeurs);

    mais il est impossible de l'utiliser puisqu' eclipse m indique:

    cannot convert from int to Vector<Pion> :s

  8. #8
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    La methode traditionnelle pour melanger un tableau est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Tableau source = [1,2,3,4]
    Entier TailleTableauSource = 4
    Tableau Dest = []
     
    Pour i allant de 1 a TailleTableauSource faire :
        n = Random(TailleTableauSource) 
        Ajouter source[n] dans dest
        Copier source[TailleTableauSource-1] dans source[n]
        Decrementer TailleTableauSource
    Premier tour (i=1) :
    TailleTableauSource = 4
    n est compris entre 0 et 3 (soit 2)
    Ajout : source = [1,2,3,4] dest = [3]
    Copie ! source = [1,2,4,4] TailleTableauSource = 3

    2e tour (i=2) :
    TailleTableauSource = 3
    n est compris entre 0 et 2 (soit encore 2)
    (note : n etant compris entre 0 et 2, la 4e cellule du tableau (index 3) ne sera jamais tiree !!)
    Ajout : source = [1,2,4,4] dest = [3,4]
    Copie ! source = [1,2,4,4] TailleTableauSource = 2
    (note : on recopie source[2] dans source[2] mais ca ne gene pas. TailleTableauSource etant egal a 2, on a bien sorti le 4 du tableau et ne pourra donc jamais etre retiré)

    Troisieme tour (i=3) :
    TailleTableauSource = 2
    n est compris entre 0 et 1 (soit 0)
    Ajout : source = [1,2,4,4] dest = [3,4,1]
    Copie ! source = [2,2,4,4] TailleTableauSource = 1

    Quatrieme tour (i=4) :
    TailleTableauSource = 1
    n est compris entre 0 et 0 (soit obligatoirement 0)
    Ajout : source = [2,2,4,4] dest = [3,4,1,2]
    Copie : source = [2,2,4,4] TailleTableauSource = 0

    Le tirage est terminé, et on a bien en maximum TailleTableauSource initial (soit 4) tirage, tiré tous les elements sans avoir de doublons.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Points : 432
    Points
    432
    Par défaut
    Collections.shuffle(lesPions);

    Tu devrais plutôt utiliser une ArrayList qu'un vector.

    oups pour le random:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pion pionTireAuHasard=lesPions.elementAt((int)(Math.random()*lesPions.getSize()));

Discussions similaires

  1. [Android] Je cherche une musique pour mon jeu
    Par Paul TOTH dans le forum Mon application mobile
    Réponses: 0
    Dernier message: 19/04/2015, 23h28
  2. Réponses: 1
    Dernier message: 01/07/2014, 15h50
  3. [PHP 4] Problème création d'une Map pour un jeu
    Par kazylax dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2011, 13h57
  4. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

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