/// <summary> /// Модификация от 22 октября 2015 года /// Заложен июнь 2015 года /// </summary> /// <returns></returns> public bool MovaControlling() { bool reto = false; pozo tp = null; List<string> variantosy; string commento; string aa = GetAttro(gmAttro.Fen); if (aa == string.Empty) { tp = pozo.Starto(); flagFromStart = true; } else { } FillMainMoves(); lFactMoves = new List<Mova>(); lPozos = new List<pozo>(); lPozos.Add(tp); foreach( string minimov in onlymainmoves ) { if (minimov.StartsWith("{")) { //Это комментарий из текста, добавляем его непосредственно к позиции //И в лист комментов с указанием ссылки на позу для обратного восстановления из сохраненного гамо flagComments = true; string doba = minimov.Substring(1); } else if (minimov.StartsWith("$")) { //Это строка тайминга. Добавляем ее в лист таймингов с указанием позиции. //Так как возможен неполный, а только выборочный тайминг. flagTiming = true; if (lTimos == null) { lTimos = new List<gTimo>(); } string timo = minimov.Substring(1); int curmove = tp.NumberMove; bool curcolor = tp.IsQueryMoveWhite; gTimo curTimo = new gTimo(curmove.ToString(), curcolor ? "w" : "b", timo); lTimos.Add(curTimo); } else if (tp.ContraMov(minimov)) { lFactMoves.Add(tp.GetFactMoveFilled()); tp = tp.GetPozoAfterControlMove(); lPozos.Add(tp); } else { //раз дошли досюдова, то ход был, но он невозможный - фиксирукм это в гаму flagImpossibleMove = true; strimpossiblemove = string.Format("Невозможный ход {0} после {1} хода {2}", minimov, tp.NumberMove, !tp.IsQueryMoveWhite ? "белых" : "чёрных"); } } if (lFactMoves.Count > 0) { reto = true; if (Qavo == string.Empty) { SetAttro(gmAttro.PlyCount, lFactMoves.Count.ToString()); } } return reto; }
/// <summary> /// Модификация от 22 октября 2015 года /// Заложен июнь 2015 года /// </summary> /// <returns></returns> public bool MovaControlling() { bool reto = false; pozo tp = null; List <string> variantosy; string commento; string aa = GetAttro(gmAttro.Fen); if (aa == string.Empty) { tp = pozo.Starto(); flagFromStart = true; } else { } FillMainMoves(); lFactMoves = new List <Mova>(); lPozos = new List <pozo>(); lPozos.Add(tp); foreach (string minimov in onlymainmoves) { if (minimov.StartsWith("{")) //Это комментарий из текста, добавляем его непосредственно к позиции //И в лист комментов с указанием ссылки на позу для обратного восстановления из сохраненного гамо { flagComments = true; string doba = minimov.Substring(1); } else if (minimov.StartsWith("$")) //Это строка тайминга. Добавляем ее в лист таймингов с указанием позиции. //Так как возможен неполный, а только выборочный тайминг. { flagTiming = true; if (lTimos == null) { lTimos = new List <gTimo>(); } string timo = minimov.Substring(1); int curmove = tp.NumberMove; bool curcolor = tp.IsQueryMoveWhite; gTimo curTimo = new gTimo(curmove.ToString(), curcolor ? "w" : "b", timo); lTimos.Add(curTimo); } else if (tp.ContraMov(minimov)) { lFactMoves.Add(tp.GetFactMoveFilled()); tp = tp.GetPozoAfterControlMove(); lPozos.Add(tp); } else //раз дошли досюдова, то ход был, но он невозможный - фиксирукм это в гаму { flagImpossibleMove = true; strimpossiblemove = string.Format("Невозможный ход {0} после {1} хода {2}", minimov, tp.NumberMove, !tp.IsQueryMoveWhite ? "белых" : "чёрных"); } } if (lFactMoves.Count > 0) { reto = true; if (Qavo == string.Empty) { SetAttro(gmAttro.PlyCount, lFactMoves.Count.ToString()); } } return(reto); }