Exemple #1
0
 /// <summary>
 /// Модификация от 6 октября 2015 года
 /// Заложен 4 октября 2015 года
 /// </summary>
 /// <param name="gm"></param>
 public vGamo(Gamo gm)
     : this()
 {
     namo     = gm.GamerWhite + " - " + gm.GamerBlack;
     bignamo  = namo + " " + gm.EventoDate + " " + gm.Resulto + " " + gm.ECO;
     White    = gm.GamerWhite;
     Black    = gm.GamerBlack;
     Result   = gm.Resulto;
     Date     = gm.Date;
     Event    = gm.Evento;
     ECO      = gm.ECO;
     PlyCount = gm.Qavo;
     WElo     = gm.EloWhite;
     BElo     = gm.EloBlack;
     Site     = gm.Sito;
     Round    = gm.Roundo;
     Fen      = gm.Fen;
     if (gm.Qavo.Length > 0)
     {
         movacount = int.Parse(gm.Qavo) / 2;
     }
     else
     {
         movacount = 0;
     }
     OnlyMova  = gm.VanStrokeMovaRegion();
     AddAtr    = gm.VanStrokeRestAttributes();
     Descripto = string.Empty;
 }
Exemple #2
0
        /// <summary>
        /// Модификация от 29 сентября 2015 года
        /// Заложен 29 сентября 2015 года
        /// </summary>
        /// <param name="pgm">Элемент, в котором и будем менять значение Даты битвы</param>
        /// <returns></returns>
        private string IntelChangeEventDate(Gamo pgm)
        {
            string reto    = string.Format("Не удалось скорректировать значение EventDate ${0}$", pgm.EventoDate);
            string valonew = string.Empty;

            if (rondoeventdatelist == null)
            {
                rondoeventdatelist = new Dictionary <string, string>();
            }
            string rondo = pgm.Roundo;

            if (rondo.Contains("."))   //По другому вроде бы и не должно быть на дату создания метода
            {
                string[] aa   = rondo.Split('.');
                string   isko = aa[0];
                if (rondoeventdatelist.ContainsKey(isko))
                {
                    valonew = rondoeventdatelist[isko];
                }
                else
                {
                    List <Gamo> lrondo = lga.Where(G => G.KorrFlago == gmKorrAtr.AllOK && G.Roundo.StartsWith(isko + ".")).ToList();
                    if (lrondo.Count > 0)
                    {
                        foreach (Gamo bb in lrondo)
                        {
                            string bevento = bb.EventoDate;
                            if (valonew == string.Empty)
                            {
                                valonew = bevento;
                            }
                            else
                            {
                                if (valonew != bevento)
                                {
                                    reto   += string.Format(" --- Две разных даты у {0} раунда ${1}${2}$", isko, valonew, bevento);
                                    valonew = string.Empty;
                                    break;
                                }
                            }
                        }
                        if (valonew != string.Empty)
                        {
                            rondoeventdatelist.Add(isko, valonew);
                        }
                    }
                }
                if (valonew != string.Empty)
                {
                    string oldo = pgm.EventoDate;
                    pgm.EventoDate = valonew;
                    reto           = string.Format("Произведена замена с {0} на {1}", oldo, valonew);
                }
            }
            return(reto);
        }
Exemple #3
0
        /// <summary>
        /// Модификация от 22 октября 2015 года
        /// Заложен 31 августа 2015 года
        /// </summary>
        /// <param name="attrolist">Набор предустановленных атрибутов</param>
        /// <param name="intellipredolist">Набор предустановленных заготовок для интеллектуального обновления значений атрибутов
        /// Готовится на основании анализа лога</param>
        /// <returns></returns>
        public bool FullListControl(List <string> attrolist, List <string> intellipredolist)
        {
            List <Gamo> problemolist = null;
            bool        reto         = false;

            Dictionary <gmAttro, string> predo = Gamo.CreateDictoAttribute(attrolist);

            logomesso = new List <string>();
            List <string> progo = null;

            foreach (Gamo aa in lga)
            {
                if (!aa.FillDictoAttribute(predo))
                {
                    if (problemolist == null)
                    {
                        problemolist = new List <Gamo>();
                    }
                    problemolist.Add(aa);
                }
                aa.MovaControlling();
                progo = aa.CreateMovaRegionWithoutComments();
                for (int i = 0; i < progo.Count; i++)
                {
                    string vanProgo = progo[i];
                    string twoFailo = aa.pgnMoveRegione[i];
                    if (vanProgo != twoFailo)   //Пишем сообщение в лог
                    {
                        string bblogo = string.Format("{0}-{1} Отличие:файл-прого${2}${3}$", aa.GamerWhite, aa.GamerBlack, twoFailo, vanProgo);
                        logomesso.Add(bblogo);
                    }
                }
                if (aa.ImpossibleMoveFlag)
                {
                    logomesso.Add(string.Format("{0}-{1} !!! {2}", aa.GamerWhite, aa.GamerBlack, aa.ImpossibleMoveString));
                }
            }
            if (problemolist != null)
            {
                IntelPredustanovka(intellipredolist);
                foreach (Gamo aa in problemolist)
                {
                    string ichres = string.Empty;
                    if (aa.KorrFlago == gmKorrAtr.EventDateHasAnswer)
                    {
                        ichres = IntelChangeEventDate(aa);
                    }
                    string bblogo = string.Format("{0}-{1} ИнтеллиЧенж:{2}", aa.GamerWhite, aa.GamerBlack, ichres);
                    logomesso.Add(bblogo);
                }
            }
            return(reto);
        }
Exemple #4
0
 /// <summary>
 /// Модификация от 29 сентября 2015 года
 /// Заложен 29 сентября 2015 года
 /// </summary>
 /// <param name="pgm">Элемент, в котором и будем менять значение Даты битвы</param>
 /// <returns></returns>
 private string IntelChangeEventDate(Gamo pgm)
 {
     string reto = string.Format("Не удалось скорректировать значение EventDate ${0}$", pgm.EventoDate);
     string valonew = string.Empty;
     if( rondoeventdatelist == null ) {
         rondoeventdatelist = new Dictionary<string,string>();
         }
     string rondo = pgm.Roundo;
     if (rondo.Contains(".")) { //По другому вроде бы и не должно быть на дату создания метода
         string[] aa = rondo.Split('.');
         string isko = aa[0];
         if (rondoeventdatelist.ContainsKey(isko)) {
             valonew = rondoeventdatelist[isko];
         } else {
             List<Gamo> lrondo = lga.Where(G => G.KorrFlago == gmKorrAtr.AllOK && G.Roundo.StartsWith(isko + ".")).ToList();
             if (lrondo.Count > 0) {
                 foreach (Gamo bb in lrondo) {
                     string bevento = bb.EventoDate;
                     if (valonew == string.Empty) {
                         valonew = bevento;
                     } else {
                         if (valonew != bevento) {
                             reto += string.Format(" --- Две разных даты у {0} раунда ${1}${2}$", isko, valonew, bevento);
                             valonew = string.Empty;
                             break;
                             }
                         }
                     }
                 if (valonew != string.Empty) {
                     rondoeventdatelist.Add(isko, valonew);
                     }
                 }
             }
         if (valonew != string.Empty) {
             string oldo = pgm.EventoDate;
             pgm.EventoDate = valonew;
             reto = string.Format("Произведена замена с {0} на {1}", oldo, valonew);
             }
         }
     return reto;
 }