/// <summary> /// Initializes a new instance of the CSP/> class. /// </summary> /// <param name="varsCSP">Variables</param> /// <param name="domainCSP">Domain</param> public CSP(List <Variable> varsCSP, List <OverFloorType> domainCSP, int toleranceFW, int toleranceFM) { this.vars = varsCSP; this.domain = domainCSP; neighbours = new Dictionary <Vector2, List <Variable> > (); assignments = new List <Assignment>(); this.toleranceFM = toleranceFM; this.toleranceFW = toleranceFW; for (int i = 0; i < varsCSP.Count(); i++) { Variable v = varsCSP[i]; neighbours[v.pos] = v.FilterNeighbours(varsCSP); v.remDomain = domain.ToList(); if (v.val.HasValue) { AssignValue(v, v.val.Value, false); } } }