Esempio n. 1
0
        public override MyList <Position> GetAttacks()
        {
            MyList <Position> l = new MyList <Position>();

            foreach (MovePolitics mp in attackpolitics)
            {
                l.AddRange(mp.GetMoves(this, chessfield));
            }
            return(l);
        }
Esempio n. 2
0
        /// <summary>
        /// Возвращает список позиций в которые может пойти данная фигура
        /// </summary>
        /// <returns></returns>
        public virtual MyList <Position> GetMoves()
        {
            MyList <Position> l = new MyList <Position>();

            foreach (MovePolitics mv in movepolitics)
            {
                l.AddRange(mv.GetMoves(this, chessfield));
            }
            return(l);
        }
Esempio n. 3
0
        /// <summary>
        /// Отмена подсветки хода
        /// </summary>
        /// <returns></returns>
        public MyList <Position> Escape()
        {
            if (state == GameState.HighlightedBlack)
            {
                state = GameState.WaitBlack;
            }
            if (state == GameState.HighlightedWhite)
            {
                state = GameState.WaitWhite;
            }
            MyList <Position> movs = new MyList <Position>();

            movs.AddRange(moves);
            movs.AddRange(attacks);
            movs.AddRange(castlings);
            movs.Add(highlightedfigurepos);
            movs.AddRange(inmoveattacks);
            moves         = null;
            attacks       = null;
            castlings     = null;
            inmoveattacks = null;
            return(movs);
        }