From be731e1e42cfd74c8a882047a032c476b6e87248 Mon Sep 17 00:00:00 2001 From: Raphael Roberts Date: Sun, 7 Apr 2019 21:42:18 -0500 Subject: [PATCH] Put everything under if name = "__main__", added words guessed already --- main.py | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/main.py b/main.py index 4ac656c..e8d999a 100755 --- a/main.py +++ b/main.py @@ -12,27 +12,39 @@ def canidates(letters, min=2, max=5): for perm in itertools.permutations(comb): word = ''.join(perm) pos.append(word) - return SPELL.known(pos) + return set(SPELL.known(pos)) def filter_pos(pos, regex): pat = re.compile(regex + '$') - return list(filter(pat.match, pos)) + return set(filter(pat.match, pos)) -while True: - letters = input('Enter letters: ') - if letters == ":quit:": - break - pos = canidates(letters) - inp = None - while inp not in (":quit:", ":new:"): - if inp is not None: - for word in filter_pos(pos, inp): - print('>>>', word) - print('Letters: ', ','.join(letters)) - prompt = """Enter pattern, ':new:' for new letters, -or ':quit:' to exit: """ - inp = input(prompt) - if inp == ":quit:": - break +if __name__ == "__main__": + while True: + letters = input('Enter letters: ') + if letters == ":quit:": + break + pos = canidates(letters) + inp = None + guessed = set() + while inp not in (":quit:", ":new:"): + if inp == ":enter:": + inp = None + while inp != ":done:": + if inp is not None: + guessed.add(inp) + inp = input("Enter guessed word, :done: to exit: ") + elif inp is not None: + fpos = filter_pos(pos, inp) + for word in fpos-guessed: + print('>>>', word) + print('Letters: ', ','.join(letters)) + prompt = """\ +Enter pattern, +':new:' for new letters, +':enter:' to fill in guessed words, or +':quit:' to exit: """ + inp = input(prompt) + if inp == ":quit:": + break