Пример #1
0
        private Dictionary <string, List <int> > GetAllBlackPossibleMovesDict(bool isInitialized)
        {
            var results = new Dictionary <string, List <int> >();

            foreach (var item in BlackDictionary)
            {
                var moves     = new List <int>();
                var pieceInfo = item.Value + item.Key;
                var input     = pieceInfo.ToCharArray();
                switch (item.Value)
                {
                case "p":
                    _pawnUnit = new Pawn(UnitColor.Black, ProtectKingMoves.ProtectWhiteKingMoves, ProtectKingMoves.ProtectBlackKingMoves, ProtectKingMoves.PotentialBlackMoves);
                    moves     = _pawnUnit.GetValidMoves(input, isInitialized);
                    break;

                case "q":
                    _queenUnit = new Queen(UnitColor.Black, ProtectKingMoves.ProtectWhiteKingMoves, ProtectKingMoves.ProtectBlackKingMoves, ProtectKingMoves.CoverKingMoves, ProtectKingMoves.PotentialBlackMoves);
                    moves      = _queenUnit.GetValidMoves(input, isInitialized);
                    break;

                case "r":
                    _rookUnit = new Rook(UnitColor.Black, ProtectKingMoves.ProtectWhiteKingMoves, ProtectKingMoves.ProtectBlackKingMoves, ProtectKingMoves.CoverKingMoves, ProtectKingMoves.PotentialBlackMoves);
                    moves     = _rookUnit.GetValidMoves(input, isInitialized);
                    break;

                case "b":
                    _bishopUnit = new Bishop(UnitColor.Black, ProtectKingMoves.ProtectWhiteKingMoves, ProtectKingMoves.ProtectBlackKingMoves, ProtectKingMoves.CoverKingMoves, ProtectKingMoves.PotentialBlackMoves);
                    moves       = _bishopUnit.GetValidMoves(input, isInitialized);
                    break;

                case "k":
                    _kingUnit = new King(UnitColor.Black, ProtectKingMoves.PotentialBlackMoves);
                    moves     = _kingUnit.GetPossibleMoves(input);
                    break;

                case "n":
                    _knightUnit = new Knight(UnitColor.Black, ProtectKingMoves.ProtectWhiteKingMoves, ProtectKingMoves.ProtectBlackKingMoves, ProtectKingMoves.PotentialBlackMoves);
                    moves       = _knightUnit.GetValidMoves(input, isInitialized);
                    break;
                }
                results.Add(pieceInfo, moves);
            }
            return(results);
        }