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