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()); }
private static void ChangeWhoToMove(IPositionAbstraction position) { var prop = position.GetType().GetProperty("IsWhiteToMove"); var getIsWhiteToMove = prop.GetGetMethod(); bool isWhiteToMove = (bool)getIsWhiteToMove.Invoke(position, null); var setIsWhiteToMove = prop.GetSetMethod(true); setIsWhiteToMove.Invoke(position, new object[] { !isWhiteToMove }); }