Aide programmation c#
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Aide programmation c#



  1. #1
    CodeurEnMousse

    Aide programmation c#


    ------

    Bonjour à tous,

    J'essaye de réaliser un jeu de Qwirkle, seulement j'ai un problème avec la fonction qui me sert à initialiser la main de mes joueurs.
    La fonction est la suivante, elle prend pour paramètres une liste de joueurs et la pioche du jeu :
    Code:
            public static void inithand(Pioche pioche, AllPlayers playerslist )
            {
                pioche.Piocheinit();
    
                foreach (var players in playerslist.getplayers())
                {
                    for (int index1 = 1; index1 <= 6; index1++)
                    {
                        var random = new Random();
                        int index = random.Next(pioche.getpieces().Count);
                        players.hand.Add(pioche.getpieces()[index]);
                        pioche.getpieces().Remove(pioche.getpieces()[index]);
                    }
                }
            }
    Cette fonction initialise la pioche du jeu et doit retirer 6 pièces au hasard de cette dernière pour initialiser la main de mes joueurs, dont la classe est la suivante :
    Code:
        public class Player        
        {
            public string playerID;
            public int playerPoints;
            public int playerturn;
            public List<Piece> hand;
    
    
            public Player(string playerID, int playerPoints, int playerturn, List<Piece> hand)
            {
                this.playerID = playerID;
                this.playerPoints = playerPoints;
                this.playerturn = playerturn;
                this.hand = new List<Piece>();
    
            }
    Cependant quand j'essaye de tester ma fonction inithand avec le test ci-dessous, ce dernier me dit que la main ne contient aucun élément (alors qu'elle doit en contenir 6), je dois vous avouer que je ne comprends pas pourquoi mais que, débutant dans ce langage ( et même en code en général ), peut-être que quelque chose m'échappe. Le test de ma fonction inithand est celui-ci, les 2 dernières lignes sont celles qui me font défaut :
    Code:
            public void testinithand()
            {
                AllPlayers listp = new AllPlayers();
                List<Piece> hand = new List<Piece>();
                List<Piece> hand1 = new List<Piece>();
                Pioche pioche = new Pioche();
                Player Louis = new Player("Louis", 800, 2, hand1);
                Player Jean = new Player("Jean", 600, 3, hand);
                listp.Addplayers(Louis);
                listp.Addplayers(Jean);
                Player.inithand(pioche, listp);
                Assert.AreEqual(96, pioche.getpieces().Count);
                Assert.AreEqual(6, hand1.Count);
                Assert.AreEqual(6, hand.Count);
            }
    Je vous remercie d'avance de l'aide que vous pourriez m'apporter

    -----

  2. #2
    LeMulet

    Re : Aide programmation c#

    Une chose pour commencer qui ne va pas ;

    Code:
          public string playerID;  
          public int playerPoints;   
          public int playerturn;      
          public List<Piece> hand;
    
        public Player(string playerID, int playerPoints, int playerturn, List<Piece> hand)    
         {     
            this.playerID = playerID;      
            this.playerPoints = playerPoints;     
            this.playerturn = playerturn;         
            this.hand = new List<Piece>();     
         }
    Le new List<Piece>() construit certes une liste de pièce mais la valeur hand passée en paramètre n'est pas utilisée.
    Alors que pour les autres variables, les valeurs passées en paramètre sont affectées aux variables de la classe (qui portent certes le même nom que les paramètres, mais ça passe)
    Il faudrait je pense également copier la valeur passée en paramètre, hand, dans la variable hand de la classe Player.
    Bonjour, et Merci.

  3. #3
    CodeurEnMousse

    Re : Aide programmation c#

    Bien vu ! C'était bien ça qui posait problème, merci infiniment.

Discussions similaires

  1. Aide programmation Ada
    Par Peerlenoire dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 10/07/2017, 14h36
  2. Aide PIC et programmation
    Par RipX dans le forum Électronique
    Réponses: 16
    Dernier message: 15/02/2013, 16h31
  3. Aide programmation PIC
    Par invitede334bfc dans le forum Électronique
    Réponses: 12
    Dernier message: 29/04/2010, 22h23
  4. aide programmation
    Par invite28559ad9 dans le forum Électronique
    Réponses: 1
    Dernier message: 01/12/2008, 21h11
  5. aide en programmation en c
    Par invite7670cc44 dans le forum Électronique
    Réponses: 0
    Dernier message: 12/06/2007, 16h45