def valid_givens(self, position=None, color=None):
     if position:
         candidates = self.adjacent_givens(position)
     else:
         candidates = self.givens.keys()
     for gpos in candidates:
         number = self.givens[gpos]
         adjs = self.given_adjacencies[gpos]
         if not valid.count_black(self, adjs, number):
             return False
     return True
 def valid_domino(self, position=None, color=None):
     for pos in self.black_positions:
         adjs = self.adjacencies[pos]
         if not valid.count_black(self, adjs, 1):
             return False
     return True