Ejemplo n.º 1
0
        public override List <BoardPosition> GetPossibleMoves(IChessItemModel[,] items, out List <bool> isJumpList, out List <bool> killPossibilityList)
        {
            var         result = new List <BoardPosition>();
            List <bool> isJumpList1;
            List <bool> isJumpList2;

            List <bool> killPossibilityList1;
            List <bool> killPossibilityList2;

            foreach (var poss_move in PossibleMovesFinder.GetRookPossibleMoves(items, Side, Pos, Steps, false, false, out isJumpList1, out killPossibilityList1))
            {
                result.Add(poss_move);
            }

            foreach (var poss_move in PossibleMovesFinder.GetBishopPossibleMoves(items, Side, Pos, false, out isJumpList2, out killPossibilityList2))
            {
                if (poss_move != Pos)
                {
                    result.Add(poss_move);
                }
            }

            isJumpList = new List <bool>();
            foreach (var isJump in isJumpList1)
            {
                isJumpList.Add(isJump);
            }
            foreach (var isJump in isJumpList2)
            {
                isJumpList.Add(isJump);
            }

            killPossibilityList = new List <bool>();
            foreach (var killPossibility in killPossibilityList1)
            {
                killPossibilityList.Add(killPossibility);
            }
            foreach (var killPossibility in killPossibilityList2)
            {
                killPossibilityList.Add(killPossibility);
            }

            return(result);
        }
Ejemplo n.º 2
0
 public override List <BoardPosition> GetPossibleMoves(IChessItemModel[,] items, out List <bool> isJumpList, out List <bool> killPossibilityList)
 {
     return(PossibleMovesFinder.GetRookPossibleMoves(items, Side, Pos, Steps, true, false, out isJumpList, out killPossibilityList));
 }