예제 #1
0
파일: Championnat.cs 프로젝트: 74nu5/poker
        protected override void EnregistrerNouvellePartie(NouvellePartie evt)
        {
            Directory.CreateDirectory(Path.GetDirectoryName(_cheminFichierChampionnat));
            if (File.Exists(_cheminFichierChampionnat))
            {
                _stats.Load(_cheminFichierChampionnat);
            }
            else
            {
                _stats.LoadXml("<" + XML_CHAMPIONNAT + "/>");
            }

            _partieEnCours = _stats.CreateNode(XmlNodeType.Element, XML_PARTIE, null);
            // Date de la partie
            XmlAttribute att = _stats.CreateAttribute(XML_DATE);

            att.Value = evt.DateEvenement.ToString(FORMAT_DATE);
            _partieEnCours.Attributes.Append(att);

            // Enjeu de la partie
            att       = _stats.CreateAttribute(XML_ENJEU);
            att.Value = (evt.ListeJoueurs.Count * evt.OptionsJeu.TapisInitial).ToString();
            _partieEnCours.Attributes.Append(att);

            _stats.DocumentElement.AppendChild(_partieEnCours);
        }
예제 #2
0
        protected override void EnregistrerNouvellePartie(NouvellePartie evt)
        {
            // Initialisation des chemins des fichiers
            string cheminFichiers = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Constantes.REPERTOIRE_DATA);

            Directory.CreateDirectory(cheminFichiers);
            _cheminPartieCsv              = Path.Combine(cheminFichiers, string.Format(NOM_FICHIER_BILAN_PARTIE, evt.DateEvenement));
            _writerResumePartie           = new StreamWriter(Path.Combine(cheminFichiers, string.Format(NOM_FICHIER_RESUME_PARTIE, evt.DateEvenement)));
            _writerResumePartie.AutoFlush = false;
            _writerDetailPartie           = new StreamWriter(Path.Combine(cheminFichiers, string.Format(NOM_FICHIER_DETAILSPARTIE, evt.DateEvenement)));
            _writerDetailPartie.AutoFlush = false;
            _writerListeDonnes            = new StreamWriter(Path.Combine(cheminFichiers, string.Format(NOM_FICHIER_LISTE_DONNES, evt.DateEvenement)));
            _writerListeDonnes.AutoFlush  = false;

            // Ecriture de l'entete de la partie
            _datePartie = evt.DateEvenement;
            _enjeu      = evt.OptionsJeu.TapisInitial * evt.ListeJoueurs.Count;

            // Ecriture de l'entete du résume de la partie
            string entete = "DateDonne;NumeroDonne;";
            string donne0 = string.Format("{0};0;", evt.DateEvenement);

            foreach (JoueurStat j in evt.ListeJoueurs)
            {
                entete += j.Nom + ";";
                donne0 += j.Tapis.ToString() + ";";
            }
            entete += "Gain;JoueurGagnant;CombinaisonGagnante;Carte1;Carte2;Flop1;Flop2;Flop3;Turn;River;Dealer;PetiteBlind;GrosseBlind;MontantPetiteBlind;MontantGrosseBlind";
            donne0 += "0;-;-;-;-;-;-;-;-;-;-;-;-;-;-";

            _writerResumePartie.WriteLine(entete);
            _writerResumePartie.WriteLine(donne0);

            // Ecriture de l'entete de la liste des donnes
            _writerListeDonnes.WriteLine("DateEvenement;NumeroDonne;Joueur;Carte1;Carte2;Tapis");

            // Ecriture de l'entete du détail de la partie
            // Rappel : Les champs Infos1, Infos2 et Infos3 correspondent aux informations suivantes
            //          AugmentationBlinds	Chat	ActionJoueur	NouvelleDonne	Flop	Turn	River   FinDonne	            FinPartie	    NouvellePartie
            //  Infos1  PB,GB               Message	Mise	        Dealer,PB,GB    Carte1	Carte1	Carte1  ListeJoueursGagnants    ListeJoueurs	ListeJoueurs
            //  Infos2	PPB, PGB            -       Tapis	        PB,GB           Carte2	-	    -       Combinaison:ListeCartes	-               ListeTapisJoueurs
            //  Infos3	Delai               -       -               PPB,PGB         Carte3	-       -       Pot                     -               -
            _writerDetailPartie.WriteLine("DateEvenement;NumeroDonne;TypeAction;Infos1;Infos2;Infos3");
            string listeJoueurs = string.Empty;
            string listeTapis   = string.Empty;

            foreach (JoueurStat j in evt.ListeJoueurs)
            {
                listeJoueurs += "," + j.Nom;
                listeTapis   += "," + j.Tapis;
            }
            EcrireDetailPartie(evt.DateEvenement, 0, "NouvellePartie", listeJoueurs.Substring(1), listeTapis.Substring(1), PAS_D_INFOS);
        }
예제 #3
0
        private void TraiterEvtNouvellePartie(string[] infosEvt)
        {
            List <JoueurStat> resListe = new List <JoueurStat>();

            string[] listeJoueurs = infosEvt[3].Split(',');
            string[] potJoueurs   = infosEvt[4].Split(',');
            for (int i = 0; i < listeJoueurs.Length; i++)
            {
                resListe.Add(new JoueurStat()
                {
                    Nom = listeJoueurs[i], Tapis = int.Parse(potJoueurs[i]), Carte1 = null, Carte2 = null, PositionElimination = 0
                });
            }
            NouvellePartie nellePartie = new NouvellePartie();

            nellePartie.ListeJoueurs = resListe;
            this.EvenementCourant    = nellePartie;
        }
예제 #4
0
        /// <summary>
        /// Enregistrement d'une nouvelle partie
        /// </summary>
        internal void EnregistrerNouvellePartie(List <Joueur> listeJoueurs, Options optJeu)
        {
            try
            {
                NouvellePartie partie = new NouvellePartie();
                partie.OptionsJeu   = CloneOptionsEnOptionsStats(optJeu);
                partie.ListeJoueurs = CloneListeJoueurs(listeJoueurs);

                foreach (IStatistiques stat in _statistiques)
                {
                    stat.Enregistrer(partie);
                }
            }
            catch (Exception ex)
            {
                logServeur.Debug("Erreur lors d'EnregistrerNouvellePartie : " + ex.Message);
            }
        }
예제 #5
0
        private void TraiterEvtNouvellePartie(NouvellePartie evt)
        {
            _listeJoueurs = new Dictionary <string, Joueur>();
            List <Joueur> resListe = new List <Joueur>();

            foreach (JoueurStat j in evt.ListeJoueurs)
            {
                Joueur jReplay = new Joueur(j.Nom);
                jReplay.Identifiant  = Guid.NewGuid();
                jReplay.TapisJoueur  = j.Tapis;
                _listeJoueurs[j.Nom] = jReplay;
                resListe.Add(jReplay);
            }

            if (DemarrageNouvellePartie != null)
            {
                DemarrageNouvellePartie(resListe);
            }
            if (MessageInformation != null)
            {
                MessageInformation(new MessageInfo(MessageJeu.NouvellePartie));
            }
        }