Пример #1
0
        private void CompareFlags(Move m)
        {
            if (!GameValidator.IsLegalMove(m.MoveString))
            {
                MoveFlags = "";
                return;
            }

            string validatorFlags = GameValidator.GetMoveFlags(m.MoveString);

            GameValidator.AppendMove(m.MoveString);

            bool equal = true;

            foreach (char c in m.MoveFlags)
            {
                if (!validatorFlags.Contains(c) && c.ToString() != Moves.EnpassantCapture)
                {
                    equal = false;
                    break;
                }
            }

            if (equal)
            {
                foreach (char c in validatorFlags)
                {
                    if (!m.MoveFlags.Contains(c))
                    {
                        equal = false;
                        break;
                    }
                }
            }

            this.MoveFlags  = "MV : '" + m.MoveFlags + "'" + Environment.NewLine + "GV : '" + validatorFlags + "'" + Environment.NewLine;
            this.MoveFlags += "Fen : '" + m.Fen + "'" + Environment.NewLine + "Move : '" + m.MoveString + "'";

            if (equal)
            {
                return;
            }

            if (MoveFlagsError != null)
            {
                MoveFlagsError(this, EventArgs.Empty);
            }
        }