public override bool IsCheckMove(Move move, Board _board) { if (!base.IsCheckMove(move, _board )) return false; //Сначала проверяем ход ферзя, как слона Bishop objBishop = new Bishop(this.Color, this.Symbol); objBishop.SilentMode = true; bool blnBishop = objBishop.IsCheckMove(move, _board); //Потом делаем провеку хода как ладьи Rock objRock = new Rock(this.Color, this.Symbol); objRock.SilentMode = true; bool blnRock = objRock.IsCheckMove(move, _board); //Если обе проверки мы не прошли, значит ошибка if ((!blnBishop) && (!blnRock)) { Console.WriteLine("Ошибочный ход!!!"); return false; } return true; }
//Начальная установка одной фигуры для белых и черных public void SetFigureOne(string strFigureType, char symbol, int intCol) { char chrUp = char.Parse(symbol.ToString().ToUpper()); char chrLower = char.Parse(symbol.ToString().ToLower()); switch (strFigureType) { case "Bishop": _board[0, intCol] = new Bishop (FigureColor.White, chrUp); _board[7, intCol] = new Bishop (FigureColor.Black, chrLower); break; case "King": _board[0, intCol] = new King(FigureColor.White, chrUp); _board[7, intCol] = new King (FigureColor.Black, chrLower); break; case "Knight": _board[0, intCol] = new Knight(FigureColor.White, chrUp); _board[7, intCol] = new Knight (FigureColor.Black, chrLower); break; case "Queen": _board[0, intCol] = new Queen(FigureColor.White, chrUp); _board[7, intCol] = new Queen (FigureColor.Black, chrLower); break; case "Rock": _board[0, intCol] = new Rock (FigureColor.White, chrUp); _board[7, intCol] = new Rock (FigureColor.Black, chrLower); break; } }