Ejemplo n.º 1
0
        /// <summary>
        /// Passe à l'étape d'après
        /// </summary>
        /// <returns>Vrai si on a réussi à passer à l'étape suivante</returns>
        internal EtapeDonne EtapeSuivante()
        {
            if (this.Etape != EtapeDonne.FinDonne)
            {
                this.Etape++;

                RAZMiseJoueurs(false);

                // Le joueur suivant est le suivant du donneur
                _numJoueur = _numDealer;
                do
                {
                    _numJoueur = (_numJoueur + 1) % ListeJoueurs.Count;
                } while (ListeJoueurs[_numJoueur].JeterCartes);
                _numJoueurPrecedent = _numDealer;

                // On lui dit aussi qu'il a fini de jouer
                foreach (Joueur j in ListeJoueurs)
                {
                    j.TourDeJeu = false;
                }
                ListeJoueurs[_numJoueur].TourDeJeu = true;

                // C'est le dealer qui a fait la derniere relance : 0 et qui a joué
                this.DerniereRelance        = ListeJoueurs[_numDealer];
                this.MontantDerniereRelance = 0;

                logServeur.Debug("*** Début de l'étape : {0}. Dealer = {1}", this.Etape, ListeJoueurs[_numDealer].Nom);

                // On tire les cartes du board
                switch (this.Etape)
                {
                case EtapeDonne.Flop:
                    this.Board[0] = JeuPoker.TirerUneCarteAuHasard();
                    this.Board[1] = JeuPoker.TirerUneCarteAuHasard();
                    this.Board[2] = JeuPoker.TirerUneCarteAuHasard();
                    break;

                case EtapeDonne.Turn:
                    this.Board[3] = JeuPoker.TirerUneCarteAuHasard();
                    break;

                case EtapeDonne.River:
                    this.Board[4] = JeuPoker.TirerUneCarteAuHasard();
                    break;
                }
            }

            return(this.Etape);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Redémarre une donne
        ///  Etape : preflop
        /// </summary>
        internal void NouvelleDonne()
        {
            this.Etape = EtapeDonne.PreFlop;
            Pot        = 0;
            // Le dealer change : c'est le suivant du précédent qui était dealer
            do
            {
                _numDealer = (_numDealer + 1) % ListeJoueurs.Count;
            } while (ListeJoueurs[_numDealer].Elimine);
            ChangerDealer(_numDealer);

            JeuPoker.ReinitialiserJeu();

            // On "reset" les infos de chaque joueur
            foreach (Joueur j in ListeJoueurs)
            {
                j.Mise           = 0;
                j.MiseTotale     = 0;
                j.TourDeJeu      = false;
                j.DerniereAction = TypeActionJoueur.Aucune;
                j.JeterCartes    = false;

                if (!j.Elimine)
                {
                    j.Carte1 = JeuPoker.TirerUneCarteAuHasard();
                    j.Carte2 = JeuPoker.TirerUneCarteAuHasard();
                }
                else
                {
                    j.Carte1 = null;
                    j.Carte2 = null;
                    j.Bouton = TypeBouton.Aucun;
                }
            }

            this.Board = new CartePoker[5];

            this.NumeroDonne++;
        }