private void ReadFiguresPositions() { for (var i = 0; i < BitBoard.FieldSize; i++) { for (var j = 0; j < BitBoard.FieldSize; j++) { var figure = ChessBoard[i, j]; if (figure.Equals(Figure.None)) { continue; } if (figure.color == Color.White) { WPositions.Set(i, j); if (figure.piece == Piece.King) { KingPosition = new Cell(i, j); // Белый король } } else { BPositions.Set(i, j); } } } }
private bool MoveInto(int m, int n, BitBoard output) // false - дальнейшее движение фигуры в данном направлении невозможно { if (BitMatrix.CheckBoundaries(m, n) == false) { return(false); } switch (ProbeCell(m, n)) { case Obstacle.Friend: return(false); case Obstacle.Enemy: output.Set(m, n); return(false); case Obstacle.None: output.Set(m, n); return(true); default: throw new Exception("Unknown Obstacle entery"); } }