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

C# Discussion :

carte/pioche C# Collection


Sujet :

C#

  1. #21
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Alors déjà "tour" c'est pas folichon comme nom, perso ça me parle pas pour un sou.
    enfait c'est un objet joueur intermédiaire, c'est une copie du joueur qui joue, je fait les modif et le remet dans ma liste....
    comme currentPlayer de ton exemple,
    je m'y colle bientot au nom j'essaye mais sur le moment je met ce qui me parle et je me rend compte que ça parle qu'a moi

    Voilà un exemple un peu plus complet et qui devrait t'aider à mieux comprendre :
    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
    // ma liste de joueurs
    public List<Player> Players = new List<Player>();
    // le joueur qui doit jouer
    public Player CurrentPlayer = null;
    // la fonction d'initialisation (en dur, pour toi ça se fera via ton interface)
    public void InitPlayers() {
    	this.Players.Add(new Player("jean"));
    	this.Players.Add(new Player("charles"));
    	this.Players.Add(new Player("kevin"));
    	this.Players.Add(new Player("andré"));
    	this.Players.Add(new Player("pierre"));
    	// le joueur courant est initialisé sur le premier
    	this.CurrentPlayer = this.Players[0];
    }
    // la fonction qui passe au joueur suivant
    public void ChangePlayer() {
    	// Players.IndexOf(CurrentPlayer) te renvoie un chiffre entre 0 et 4 (dans mon exemple à 5 joueurs)
    	// on fait donc +1 pour avoir le suivant
    	// l'utilisation du % (modulo) va nous permettre de repasser vers 0 si jamais on obtient Players.Count (qui est égal à 5)
    	CurrentPlayer = Players[(Players.IndexOf(CurrentPlayer) + 1) % Players.Count];
    }
    ooooh cool le modulo


    (Players.IndexOf(CurrentPlayer) + 1)
    on est d'accord que CurrentPlayer n'est pas dans la liste, donc il cherche l'index de quelque chose qui est égal à CurrentPlayer ??

  2. #22
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Citation Envoyé par Hemir Voir le message
    enfait c'est un objet joueur intermédiaire, c'est une copie du joueur qui joue, je fait les modif et le remet dans ma liste....
    comme currentPlayer de ton exemple,
    D'où mon "problème" avec le nom que tu as choisi (tour) et le choix dans mon exemple (CurrentPlayer).
    NB : il ne s'agit pas d'une "copie" mais d'une "référence" (il n'y a pas de duplication en mémoire).

    Citation Envoyé par Hemir Voir le message
    ooooh cool le modulo
    Dans sa définition c'est : le reste de la division euclidienne.

    Citation Envoyé par Hemir Voir le message
    (Players.IndexOf(CurrentPlayer) + 1)
    on est d'accord que CurrentPlayer n'est pas dans la liste, donc il cherche l'index de quelque chose qui est égal à CurrentPlayer ??
    CurrentPlayer est dans la liste : il est initialisé sur le premier joueur dans la fonction InitPlayers.

  3. #23
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    D'où mon "problème" avec le nom que tu as choisi (tour) et le choix dans mon exemple (CurrentPlayer).
    NB : il ne s'agit pas d'une "copie" mais d'une "référence" (il n'y a pas de duplication en mémoire).
    abus de langage, c'est noté.


    CurrentPlayer est dans la liste : il est initialisé sur le premier joueur dans la fonction InitPlayers.
    pour moi j'ai pas fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Players.Add(CurrentPlayer);
    donc il n'est pas dans la liste, ou bien il y a une notion qui m'echappe...

  4. #24
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Oui, manifestement il y a une notion qui t'échappe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.CurrentPlayer = this.Players[0];
    CurrentPlayer pointe sur le premier élément de la liste. Donc il appartient bien à la liste. Ce n'est pas une copie mais un pointeur sur un objet.
    Ce n'est pas comme en C++ où là tu aurais effectivement une copie en mémoire de l'objet.

  5. #25
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    NB : il ne s'agit pas d'une "copie" mais d'une "référence" (il n'y a pas de duplication en mémoire).
    Citation Envoyé par ebastien Voir le message
    CurrentPlayer pointe sur le premier élément de la liste. Donc il appartient bien à la liste. Ce n'est pas une copie mais un pointeur sur un objet.
    là j'ai bien compris

  6. #26
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    re,
    après un petit week end je reviens dessus direct un soucis
    je veux ajouter a mon joueur (CeluiQuiJoue = tour mais il me reste encore beaucoup a changé comme lstJoueur )
    j'ai une propriété noJoueur mais elle commence a 1 donc je fais -1 pour avoir le bon indice
    j'ai une propriété carteDetenu qui est une liste de carte vide

    et la je veux prendre une carte de ma CarteList , qui seras bleu , avec find je prend le 1er qui rempli la condition mais je ne sais pas comment écrire ma condition et l'ajouter a ma liste carteDetenu
    (remove je peux avec l'index ça va mais c'est la condition le soucis)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Jeu.Instance.lstJoueur[CeluiQuiJoue.NoJoueur - 1].carteDetenu.Add(Pioche.Instance.CarteList.Find(Carte.couleur.bleu)

    Code ma pioche : 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
     public class Pioche
        {
            public List<Carte> CarteList = new List<Carte>();
            private static Pioche listCarte = null;
            private static readonly object padlock = new object();
     
            Carte bleu = new Carte(Carte.typeCarte.couleur, Carte.couleur.bleu);
            Carte jaune = new Carte(Carte.typeCarte.couleur,Carte.couleur.jaune);
            Carte marron = new Carte(Carte.typeCarte.couleur, Carte.couleur.marron);
            Carte orange = new Carte(Carte.typeCarte.couleur,Carte.couleur.orange);
            Carte rouge = new Carte(Carte.typeCarte.couleur,Carte.couleur.rouge);
            Carte vert = new Carte(Carte.typeCarte.couleur,Carte.couleur.vert);
            Carte violet = new Carte(Carte.typeCarte.couleur,Carte.couleur.violet);
            Carte joker = new Carte(Carte.typeCarte.joker, Carte.couleur.aucun);
            Carte plus2 = new Carte(Carte.typeCarte.plus2, Carte.couleur.aucun);        
            Carte dernManche = new Carte(Carte.typeCarte.dernManche,Carte.couleur.aucun);
     
     
            public void initialiserPioche()
            {
                Pioche.Instance.AjouteNeuf(bleu);
                Pioche.Instance.AjouteNeuf(jaune);
                Pioche.Instance.AjouteNeuf(marron);
                Pioche.Instance.AjouteNeuf(orange);
                Pioche.Instance.AjouteNeuf(rouge);
                Pioche.Instance.AjouteNeuf(vert);
                Pioche.Instance.AjouteNeuf(violet);
                Pioche.Instance.Ajoutetrois(joker);
                Pioche.Instance.AjouteNeuf(plus2); // il faut 3 cartes +2 , donc j'utilise ma methode pour en add 9
                Pioche.Instance.CarteList.Add(plus2);  // j'en ajoute 1 de plus ça fait 10
                Pioche.Instance.CarteList.Insert(63, dernManche);
            }
            public void AjouteNeuf(Carte c)
            {
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
            }
            public void Ajoutetrois(Carte c)
            {
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
                Pioche.Instance.CarteList.Add(c); 
            }

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Salut,

    N'hésite pas à regarder sur MSDN, tu trouveras beaucoup d'exemple et d'explication de méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Pioche.Instance.CarteList.Find(c => c.Property == "bleu")
    Si c'était bien la question ?

    A+

  8. #28
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    Citation Envoyé par egautier18 Voir le message
    Salut,

    N'hésite pas à regarder sur MSDN, tu trouveras beaucoup d'exemple et d'explication de méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Pioche.Instance.CarteList.Find(c => c.Property == "bleu")
    Si c'était bien la question ?
    c'est le bon but , mais je n'ai pas de méthode .Property & bleu n'est pas un string
    je sais pas comment l'adapter
    Code les carte : 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
    public class Carte
    {
        public enum typeCarte {couleur, joker, plus2, dernManche}
        public enum couleur {bleu, jaune, marron, orange, rouge, vert, violet, aucun}
        private typeCarte type;
        private couleur color;
     
     
        public Carte(typeCarte t, couleur c)
        {
            this.type = t;
            this.color = c;
        }
     
     
    }

  9. #29
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 10
    Par défaut
    mdr hemir bien Delvaux ?

  10. #30
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Ta classe Carte devrait comporter des propriétés publiques du genre CouleurCarte et TypeCarte (avec un getter et un setter). Tu pourras ensuite adapter le code de egautier18 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pioche.Instance.CarteList.Find(c => c.CouleurCarte == Couleur.Bleu)

  11. #31
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    Ta classe Carte devrait comporter des propriétés publiques du genre CouleurCarte et TypeCarte (avec un getter et un setter). Tu pourras ensuite adapter le code de egautier18 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pioche.Instance.CarteList.Find(c => c.CouleurCarte == Couleur.Bleu)
    arf enfait j'ai 2 propriété mais j'avais pas fait les get & set ....
    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
    public class Carte
    {
        public enum typeCarte {couleur, joker, plus2, dernManche}
        public enum couleur {bleu, jaune, marron, orange, rouge, vert, violet, aucun}
        private typeCarte type;
        private couleur color;
            
    
    
        public Carte(typeCarte t, couleur c)
        {
            this.type = t;
            this.color = c;
        }
    
    
    }
    je peux réutiliser celle là

  12. #32
    Invité de passage
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 1
    Par défaut
    Le code de ebastien laisse à désirer...

  13. #33
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    Citation Envoyé par Guigui156 Voir le message
    Le code de ebastien laisse à désirer...
    c'est gentil de dire ça s'en explication...
    moi ça fait ce que je veux, si ça ne le fait pas bien faut expliquer pourquoi...

  14. #34
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Citation Envoyé par Guigui156 Voir le message
    Le code de ebastien laisse à désirer...
    C'est ce que j'appelle un commentaire constructif
    Pourquoi ne pas étayer un peu votre remarque ?

  15. #35
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Bonjour tout le monde...

    Je prends le train en route (un peu en retard je dirais même) et j'en reviens à la question initiale.

    J'ai lu "List<Carte>" comme réponse.

    Permettez-moi de m'insurger :o

    Une "pioche", c'est quoi ? Une pile de carte.
    Et une pile, c'est quoi en C# ? Une Stack<Carte> ou une Queue<Carte> selon si elle est de type FIFO ou FILO (si on remet des éléments dedans, si on les remet sous la pioche, ou par dessus).

    Si tu ne rajoute jamais rien, peut importe.

    Donc sur une Stack ou Queue, on fait des "Pop()" pour récupérer l'élément du dessus. Et des "Push()" pour ajouter des éléments (au dessus ou en dessous de la pile).
    C'est bien plus propre qu'un List<> où on sait très bien faire des Add() et Remove(), sans vraiment savoir où chercher.

    A noter que tu peux parfaitement créer une Stack<> ou Queue<> à partir d'une List<> (plus simple pour mélanger les carte en début de partie).

  16. #36
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    Bonjour tout le monde...
    Je prends le train en route (un peu en retard je dirais même) et j'en reviens à la question initiale.

    J'ai lu "List<Carte>" comme réponse.

    Permettez-moi de m'insurger :o
    il n'est jamais trop tard comme on dit
    faut taper sur egautier18

    Citation Envoyé par StringBuilder Voir le message

    Une "pioche", c'est quoi ? Une pile de carte.
    Et une pile, c'est quoi en C# ? Une Stack<Carte> ou une Queue<Carte> selon si elle est de type FIFO ou FILO (si on remet des éléments dedans, si on les remet sous la pioche, ou par dessus).

    Si tu ne rajoute jamais rien, peut importe.

    Donc sur une Stack ou Queue, on fait des "Pop()" pour récupérer l'élément du dessus. Et des "Push()" pour ajouter des éléments (au dessus ou en dessous de la pile).
    C'est bien plus propre qu'un List<> où on sait très bien faire des Add() et Remove(), sans vraiment savoir où chercher.
    exactement le principe d'une pioche
    pour mes rangé et les carte détenu par les joueur je fais une pile aussi ?
    sachant que les rangé il ne peut pas y avoir plus de 3 carte, avec la liste j'etait obligé de faire un if( .count <= 3)


    A noter que tu peux parfaitement créer une Stack<> ou Queue<> à partir d'une List<> (plus simple pour mélanger les carte en début de partie).
    je garde ma liste et je fais des insert dans la pile ou je change ma list<> en stack<>
    comment melanger ?? puisqu'avec la liste moi je faisait un random qui me servait d'indice pour tirée les carte

  17. #37
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Une Stack, comme une List, a une propriété, qu'on peut définir à la construction "Capacity".
    Donc au lieu de faire des "if count > 3", met le Capacity à 3, et gère proprement les exceptions levées par l'objet. Je trouve ça plus propre.
    (bon, après, y'a deux écoles quand au Early Error Management et le Lazy Error Management).

    Moi je suis partisan de la fénéantise, donc du Lazy.
    C'est d'ailleurs l'approche du langage ADA, dont la stabilité n'a jamais pu être égalée :
    => Un programme ne peut compiler que si l'ensemble des exceptions qu'il pourrait lever sont correctement gérées.


    Sinon, tu peux créer une Stack à partir d'une List. C'est d'ailleurs ce que je t'ai proposé pour la création de la pioche. C'est plus facile d'alimenter une liste et de la mélanger que de le faire avec une Stack.

    Donc :

    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Carte> cartes = new List<Cartes>(3); // capacité de 3
    [...] // Alimentation + mélange
    Stack<Carte> Pioche = new Stack<Carte>(cartes);

    Sinon, pour le mélange, je t'invite à visiter ce lien :
    http://stackoverflow.com/questions/2...stt-in-c-sharp

  18. #38
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 37
    Par défaut
    fainéantise*

    sinon je pense avoir compris le "GetProducts();" c'est mon alimentation d'ailleurs je la trouve pas très joli , je vous met le code voir si vous voyez moyen de l'optimiser
    Code morceau de mon initialisation : 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
     
    public List<Carte> CarteList = new List<Carte>();
     
    Carte bleu = new Carte(Carte.typeCarte.couleur, Carte.couleur.bleu);
    Carte jaune = new Carte(Carte.typeCarte.couleur,Carte.couleur.jaune);
    Carte marron = new Carte(Carte.typeCarte.couleur, Carte.couleur.marron);
    Carte orange = new Carte(Carte.typeCarte.couleur,Carte.couleur.orange);
    Carte rouge = new Carte(Carte.typeCarte.couleur,Carte.couleur.rouge);
    Carte vert = new Carte(Carte.typeCarte.couleur,Carte.couleur.vert);
    Carte violet = new Carte(Carte.typeCarte.couleur,Carte.couleur.violet);
    Carte joker = new Carte(Carte.typeCarte.joker, Carte.couleur.aucun);
    Carte plus2 = new Carte(Carte.typeCarte.plus2, Carte.couleur.aucun);        
    Carte dernManche = new Carte(Carte.typeCarte.dernManche,Carte.couleur.aucun);
     
     
    public void initialiserPioche()
    {
        Pioche.Instance.AjouteNeuf(bleu);
        Pioche.Instance.AjouteNeuf(jaune);
        Pioche.Instance.AjouteNeuf(marron);
        Pioche.Instance.AjouteNeuf(orange);
        Pioche.Instance.AjouteNeuf(rouge);
        Pioche.Instance.AjouteNeuf(vert);
        Pioche.Instance.AjouteNeuf(violet);
        Pioche.Instance.Ajoutetrois(joker);
        Pioche.Instance.AjouteNeuf(plus2); // il faut 3 cartes +2 , donc j'utilise ma methode pour en add 9
        Pioche.Instance.CarteList.Add(plus2);  // j'en ajoute 1 de plus ça fait 10
        Pioche.Instance.CarteList.Insert(63, dernManche);
    }
    public void AjouteNeuf(Carte c)
    {
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
    }
    public void Ajoutetrois(Carte c)
    {
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
        Pioche.Instance.CarteList.Add(c); 
    }

    EDIT: plus important
    Erreur 1 La méthode d'extension doit être définie dans une classe statique non générique

  19. #39
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Re,

    oui pour les méthodes d'extension (fonction statique avec un paramètre this) il faut les placer dans une classe statique.
    Perso dans mes projets de test j'ai une classe statique appelées Extensions où je les mets toutes mais c'est pas le plus propre.

  20. #40
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Je n'ai pas lu les règles de ton jeu et je ne sais pas comment tu vas utiliser tes cartes présentes dans la pioche. Toutefois, il faut bien avoir conscience que tu as une seule instance de carte par couleur et que tu ajoutes cette instance 9 fois dans ta pioche. En gros, tu as une seule carte que tu ajoutes 9 fois dans une pioche... Cela ne va-t-il pas poser problème ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/04/2007, 16h52
  2. [Turbo Pascal] [MS-DOS] Lire la Mac-address de la carte réseau
    Par toctoc dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 21/02/2003, 22h08
  3. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  4. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49
  5. Accès au port 700h pour une carte d'interface
    Par haypo dans le forum Matériel
    Réponses: 3
    Dernier message: 07/11/2002, 11h30

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