using System; using System.Collections; namespace aima.search.csp { /// /// Ported to .NET by Kris Noesgaard /// from the Java implementation by Ravi Mohan /// public class MapColoringConstraint : Constraint { private Hashtable neighbors; MapColoringConstraint(Hashtable neighbors) { this.neighbors = neighbors; } public bool isSatisfiedWith(Assignment assignment, string variable, Object value) { ArrayList variableNeighbors = (ArrayList) neighbors[variable]; for (int i = 0; i < variableNeighbors.Count; i++) { string neighbor = variableNeighbors[i].ToString(); if (assignment.hasAssignmentFor(neighbor)) { string neighborColor = assignment.getAssignment(neighbor).ToString(); if (neighborColor.Equals(value)) { return false; } } } return true; } } }