private void TraiterEvtActionJoueur(string[] infosEvt, TypeActionJoueur typeAction) { this.EvenementCourant = new ActionJoueurStat() { TypeAction = typeAction, Nom = infosEvt[3], Mise = int.Parse(infosEvt[4]), Tapis = int.Parse(infosEvt[5]) }; }
/// <summary> /// Calcule les actions possible pour le joueur concerné : si aucune action n'est possible renvoie null /// </summary> /// <param name="J">Le joueur concerné</param> /// <returns></returns> internal Dictionary <TypeActionJoueur, ActionPossible> CalculActionsPossibles(Joueur j) { Dictionary <TypeActionJoueur, ActionPossible> actions = null; if (!j.JeterCartes && j.TapisJoueur > 0) { actions = new Dictionary <TypeActionJoueur, ActionPossible>(); // Passe actions[TypeActionJoueur.Passe] = ActionPossible.Jeter; // Parole ou suivre if ( (j.DerniereAction == TypeActionJoueur.GrosseBlind && j == this.DerniereRelance && this.Etape == EtapeDonne.PreFlop) || (this.MontantDerniereRelance == 0) ) { actions[TypeActionJoueur.Parole] = new ActionPossible(TypeActionJoueur.Parole, 0, 0); } else if (j.TapisJoueur >= this.MontantDerniereRelance) { // Pour suivre, montant min = la mise actuelle du joueur, montant max = la somme totale à mettre actions[TypeActionJoueur.Suit] = new ActionPossible(TypeActionJoueur.Suit, j.Mise, this.MontantDerniereRelance); } // Relance / mise if (j.TapisJoueur > this.RelanceMinimum()) { // Si le joueur est le premier à parler : il mise, sinon il relance TypeActionJoueur actionJoueur = TypeActionJoueur.Relance; if (this.MontantDerniereRelance == 0) { actionJoueur = TypeActionJoueur.Mise; } actions[actionJoueur] = new ActionPossible(actionJoueur, this.RelanceMinimum(), j.TapisJoueur); } // Tapis actions[TypeActionJoueur.Tapis] = new ActionPossible(TypeActionJoueur.Tapis, j.TapisJoueur, j.TapisJoueur); } return(actions); }
/// <summary> /// Enregistrement de l'action d'un joueur /// </summary> /// <param name="expediteur"></param> /// <param name="action"></param> internal void EnregistrerActionJoueur(Joueur expediteur, TypeActionJoueur action) { try { ActionJoueurStat actionStat = new ActionJoueurStat(); actionStat.Tapis = expediteur.TapisJoueur; actionStat.Mise = expediteur.Mise; actionStat.Nom = expediteur.Nom; actionStat.TypeAction = action; foreach (IStatistiques stat in _statistiques) { stat.Enregistrer(actionStat); } } catch (Exception ex) { logServeur.Debug("Erreur lors d'EnregistrerActionJoueur : " + ex.Message); } }
/// <summary> /// Création d'une action avec un montant égal à 0 /// </summary> /// <param name="type">Le type de l'action</param> public ActionJoueur(TypeActionJoueur type) : this(type, 0) { }
/// <summary> /// Création d'une action avec un montant /// </summary> /// <param name="expediteur">La source de l'action</param> /// <param name="type">Le type de l'action</param> /// <param name="montant">Le montant de l'action</param> public ActionJoueur(TypeActionJoueur type, int montant) { _typeAction = type; _montantAction = montant; }
/// <summary> /// Création d'une action possible /// </summary> /// <param name="type">Le type de l'action</param> /// <param name="active">Action active</param> /// <pa public ActionPossible(TypeActionJoueur type, int montantMin, int montantMax) : this(type) { _montantMin = montantMin; _montantMax = montantMax; }
/// <summary> /// Création d'une action possible /// </summary> /// <param name="type">Le type de l'action</param> /// <param name="active">Action active</param> public ActionPossible(TypeActionJoueur type) { _typeAction = type; }