public Chess Move(string move) //Example: move = Ke2e4 (K = king, e2 = old move, e4 = new move) { FigureMoving fm = new FigureMoving(move); //fm = from, to, figure, promotion if (!moves.CanMove(fm)) { return(this); } if (board.IsCheckAfterMove(fm)) { return(this); //the same board } Board nextBoard = board.Move(fm); //отвечает за ход, содержит всю инфу о доске, массив фигур, фен от которого отталкивается при пост новой доски, после хода Chess nextChess = new Chess(nextBoard); //запускает игру return(nextChess); }