private void ChainOfFour(List <GamePosition> List, List <FourChain> Chains, GamePosition NewPoint) { var Bool = Chains.Where(x => x.IsContituent(NewPoint)).Any(); if (!Bool) { var Near = List.Where(point => !point.Equals(NewPoint) && Math.Abs(NewPoint.X - point.X) < 2 && Math.Abs(NewPoint.Y - point.Y) < 2).ToList(); foreach (var p in Near) { var c = new FourChain(NewPoint, p); if (!Chains.Any(x => x.IsSame(c))) { Chains.Add(c); } } } }
public bool IsSame(FourChain c) { return(c.Chain.All(x => Chain.Any(y => y.Equals(x)))); }