Пример #1
0
        private static bool IsCorrectMove(ChessFigures figure, string from, string to)
        {
            var dx = Math.Abs(to[0] - from[0]); //смещение фигуры по горизонтали
            var dy = Math.Abs(to[1] - from[1]); //смещение фигуры по вертикали

            return(figure switch
            {
                ChessFigures.King => (dy == 1 && dx == 1) || (dy == 0 && dx == 1) || (dx == 0 && dy == 1),
                ChessFigures.Queen => (dx == dy && dx != 0) || (dy == 0 && dx != 0) || (dx == 0 && dy != 0),
                ChessFigures.Rook => (dy == 0 && dx != 0) || (dx == 0 && dy != 0),
                ChessFigures.Bishop => (dx == dy && dx != 0),
                ChessFigures.Knight => (dx != dy && ((dx == 2 && dy == 1) || (dy == 2 && dx == 1))),
                ChessFigures.Pawn => throw new NotImplementedException(),
                _ => throw new ArgumentException(),
            });
Пример #2
0
 public static void Chess(ChessFigures figure, string from, string to)
 {
     Console.WriteLine(figure.ToString() + " : {0}-{1} {2}", from, to, IsCorrectMove(figure, from, to));
 }