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 :
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 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]); } } }
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 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>(); }
Je vous remercie d'avance de l'aide que vous pourriez m'apporterCode: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); }
-----