public GameRuleStrategyBase SetNext(GameRuleStrategyBase rule)
 {
     this.next = rule;
     return rule;
 }
 private IList<IGameMove> CallGetStrategyValidMoves(GameRuleStrategyBase strategy, IGameBoard board, ITurn turn, IGameRuleStrategyContext context)
 {
     return strategy.GetStrategyAvailableMoves(board, turn, context)
         .Cast<IGameMove>()
         .ToList();
 }