code: def actions(self, state):
          
          if len(state) == len(self.vars):
              return []
          else:
              assignment = dict(state)
              var = find_if(lambda v: v not in assignment, self.vars)
              return [(var, val) for val in self.domains[var]
                      if self.nconflicts(var, val, assignment) == 0]
docs: Return a list of applicable actions: nonconflicting
          assignments to an unassigned variable.