// Methode Ordinateur // A tour de role Thread.sleep pour les Ordinateurs public void putCarteInTable(Joueur joueur) { // Carte random correspondant a la Coleur/Suit de la table Carte carte = null; // Jusqu'a qu'il trouve une Carte random qui correspont a la Coleur/Suit joue List <Carte> paquetDuJoueur = joueur.Paquet; List <Carte> cartesValide = new List <Carte>(); // Les Cartes qui peuvent etre joue // Met les cartes qui peuvent etre joue dans une Liste foreach (Carte card in paquetDuJoueur) { if (card.Color == Suit) { cartesValide.Add(carte); } } // Si elle n'est pas vide Alors le Joueur(Ordi) a une carte de la coleur en question qui peut etre joue if (cartesValide.Count != 0) { carte = cartesValide[random.Next(cartesValide.Count)]; //joueur.CouleurExclus.Add(Suit); } else { // Il peut jouer un autre Coleur/Suit // boucle } // Ajout Success ListeCartesEnJeu.Add(carte); }
// Methode Ordinateur // A tour de role Thread.sleep pour les Ordinateurs // Jusqu'a qu'il trouve une Carte random qui correspont a la Coleur/Suit joue de la partie public void putCarte(Joueur joueur) { Carte carte = null; List <Carte> paquetDuJoueur = joueur.Paquet; List <Carte> cartesValide = new List <Carte>(); // Met les cartes qui peuvent etre joue dans une Liste [cartesValide] foreach (Carte card in paquetDuJoueur) { if (card.Color == Suit) { cartesValide.Add(carte); } } // Si elle n'est pas vide. Cela dit que le Joueur-Ordi a une carte de la couleur en question qui peut etre joue if (cartesValide.Count != 0) { carte = cartesValide[random.Next(cartesValide.Count)]; } else { // Get l'index de la Couleur int index = (int)Suit; List <int> couleursRestant = joueur.Couleurs; if (couleursRestant.Count == 0) { // Jouer n'a plus de carte / Jeu terminé } // Apres enleve l'index de la couleur couleursRestant.Remove(index); // L'ordinateur joue une autre Couleur/Suit random et ne prend pas en consideration la couleur qu'il ne possede pas int indexCouleur = joueur.Couleurs[random.Next(couleursRestant.Count)]; // Nouvelle Suit du jeu this.Suit = (Couleur)indexCouleur; // Rejoue pour mettre une carte putCarte(joueur); } // Ajout Success if (carte != null) { ListeCartesEnJeu.Add(carte); joueur.Paquet.Remove(carte); } else { // Jouer n'a plus de carte / Jeu terminé } }
public Carte PutCarte(Joueur joueur) { Carte carte = null; List <int> couleursRestant = joueur.Couleurs; // en int List <Carte> paquetDuJoueur = joueur.Paquet; List <Carte> cartesValide = new List <Carte>(); // Met les cartes qui peuvent etre joue dans une Liste [cartesValide] foreach (Carte card in paquetDuJoueur) { if (card.Color.Equals(this.Suit)) { cartesValide.Add(card); } } if (cartesValide.Count != 0) { carte = cartesValide[random.Next(cartesValide.Count)]; ListeCartesEnJeu.Add(carte, joueur); joueur.Paquet.Remove(carte); } else if (cartesValide.Count == 0 && couleursRestant.Count != 0) { int index = (int)Suit; couleursRestant.Remove(index); int indexCouleur = joueur.Couleurs[random.Next(couleursRestant.Count)]; this.Suit = (Couleur)indexCouleur; // Pour ajoute une nouvelle carte de cette suite // cartesValides est a 0 ici foreach (Carte card in paquetDuJoueur) { if (card.Color.Equals(this.Suit)) { cartesValide.Add(card); } } carte = cartesValide[random.Next(cartesValide.Count)]; } // return null si le joueur n'a plus de carte return(carte); }
// Methode Depricated /// <summary> /// Methode Ordinateur /// A tour de role Thread.sleep pour les Ordinateurs /// Jusqu'a qu'il trouve une Carte random qui correspont a la Coleur/Suit joue de la partie /// </summary> /// <param name="joueur"> Le Joueur Ordinateur </param> /// <returns></returns> public Carte putCarte(Joueur joueur) { Carte carte = null; List <Carte> paquetDuJoueur = joueur.Paquet; List <Carte> cartesValide = new List <Carte>(); // Met les cartes qui peuvent etre joue dans une Liste [cartesValide] foreach (Carte card in paquetDuJoueur) { if (card.Color.Equals(Suit)) { cartesValide.Add(card); } } // Si elle n'est pas vide. Cela dit que le Joueur-Ordi a une carte de la couleur en question qui peut etre joue if (cartesValide.Count != 0) { carte = cartesValide[random.Next(cartesValide.Count)]; // Incluant 0 ListeCartesEnJeu.Add(carte, joueur); joueur.Paquet.Remove(carte); } else if (paquetDuJoueur.Count != 0) { // Il n'a plus de Cette couleur mais que son paquet n'est pas encore vide // Get l'index de la Couleur int index = (int)Suit; List <int> couleursRestant = joueur.Couleurs; // en int // Apres enleve l'index de la couleur dans joueur couleursRestant.Remove(index); // L'ordinateur joue une autre Couleur/Suit random et ne prend pas en consideration la couleur qu'il ne possede pas int indexCouleur = joueur.Couleurs[random.Next(couleursRestant.Count)]; // Nouvelle Suit du jeu this.Suit = (Couleur)indexCouleur; // il faut update le suit dans FormJeu alors // Rejoue pour mettre une carte putCarte(joueur); } // else si cette methode return carte null ca veut dire que l'usager n'a plus de carte 0 dans son paquet // Jouer n'a plus de carte / Jeu terminé // this.Fin = false if carte is null return(carte); }