예제 #1
0
        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());
        }
예제 #2
0
        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 });
        }