private static IEnumerable<Trade> GetValidTrades(Game g, Player p) { foreach (var rule in g.GetTradeRules(p.Id)) { var tr = CheckOnPlayersCells(g, rule, p.Id); if (tr == null && !p.OneDirection) { tr = CheckOnPlayersCells(g, ReverseRule(rule), p.Id); if (tr != null) tr.Reversed = true; } if (tr != null) { yield return tr; } } }