code: def nconflicts(self, var, val, assignment):
          
          n = len(self.vars)
          c = self.rows[val] + self.downs[var+val] + self.ups[var-val+n-1]
          if assignment.get(var, None) == val:
              c -= 3
          return c
docs: The number of conflicts, as recorded with each assignment.
          Count conflicts in row and in up, down diagonals. If there
          is a queen there, it can't conflict with itself, so subtract 3.