ChessServer.GameLogic.AttackMap.MoveVariants C# (CSharp) Method

MoveVariants() public method

public MoveVariants ( string cell ) : List
cell string
return List
        public List<string> MoveVariants(string cell)
        {
            var moveVariants = new List<string>();
            for (var i = 0; i < Board.BoardSize; i++)
            {
                for (var j = 0; j < Board.BoardSize; j++)
                {
                    if (Attackers[i, j].Contains(SourceBoard[cell]))
                        moveVariants.Add((char)('a' + i) + (j + 1).ToString(CultureInfo.InvariantCulture));
                }
            }
            return moveVariants;
        }

Usage Example

        public override Response DoWork(string request)
        {
            var moveVariantsRequest = JsonConvert.DeserializeObject<MoveVariantsRequest>(request);
            var moveVariantsResponse = new MoveVariantsResponse();

            var game = Server.Games[moveVariantsRequest.GameID];

            var map = new AttackMap(game.Moves);
            if (map.SourceBoard[moveVariantsRequest.Cell].Side == game.Turn)
            {
                moveVariantsResponse.Cells = map.MoveVariants(moveVariantsRequest.Cell);
            }
            else
            {
                moveVariantsResponse.Cells = new List<string>();
            }
            moveVariantsResponse.Status = Statuses.Ok;
            return moveVariantsResponse;
        }