def __init__(self, **kwargs):
logging.info('Crossword __init__: Initializing crossword...')
logging.debug('kwargs:', kwargs)
# Reading kwargs
self.setup = kwargs
self.rows = int(kwargs.get('n', 5))
self.cols = int(kwargs.get('m', 5))
self.words_file = str(kwargs.get('word_file', 'lemma.num.txt'))
self.sort = bool(kwargs.get('sort', False))
self.maximize_len = bool(kwargs.get('maximize_len', False))
self.repeat_words = bool(kwargs.get('repeat_words', False))
logging.debug('Crossword __init__: n={}, m={}, fname={}'.format(self.rows, self.cols, self.words_file))
# Loading words
logging.debug('Crossword __init__: Started loading words from {}'.format(self.words_file))
arr = np.genfromtxt(self.words_file, dtype='str', delimiter=' ')
self.words = arr[np.in1d(arr[:, 3], ['v', 'n', 'adv', 'a'])][:, 2].tolist()
# Number of words loaded
logging.debug('Crossword __init__: Number of words loaded: {}'.format(len(self.words)))
self.words = list(set(x for x in self.words if len(x) <= self.rows and len(x) <= self.cols))
if self.sort:
self.words = sorted(self.words, key=len, reverse=self.maximize_len)
# After filter logging
logging.debug('Crossword __init__: Number of words after filter: {}, maxlen = {}'.format(len(self.words), len(
max(self.words, key=len))))
评论列表
文章目录