Пример #1
0
        // 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);
        }
Пример #2
0
        // 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é
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        // 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);
        }