private RokadeEnum possibleRokade(IPositionAbstraction position) { var prop = position.GetType().GetProperty("Implementor", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var getImplementor = prop.GetGetMethod(true); IPositionImpl implementor = (IPositionImpl)getImplementor.Invoke(position, null); return(implementor.PossibleRokade()); }
public static IEnumerable <(PieceEnum Piece, SquareEnum Square)> Create(PieceEnum piece, SquareEnum square, IPositionImpl position) { var moves = Create(piece); foreach (var m in moves.GetIteratorFor(square, position, piece).Iterate()) { yield return(m.Piece, m.Square); } }