mirror of
https://github.com/RussellChamp/tilde-projects.git
synced 2026-10-28 00:22:34 +00:00
Add files I forgot
This commit is contained in:
1 parent
5f1bf146c3
commit
772995c0ff
29 files changed
+1807
No files matched your search
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/python
|
||||
import random
|
||||
import inflect
|
||||
|
||||
p = inflect.engine()
|
||||
dictionary = "/usr/share/dict/american-english-small"
|
||||
BAD_WORDS_FILE = "/home/krowbar/Code/irc/data/badwords.txt"
|
||||
|
||||
|
||||
def gen_wordlist():
|
||||
# I feel weird calling this "get_wordlist" when it's a generator without calling out that I do in fact realise it's weird - ~deltawitch
|
||||
# how about gen_wordlist
|
||||
with open(BAD_WORDS_FILE, "r") as fp:
|
||||
bad_words = set(fp)
|
||||
|
||||
for word in open(dictionary).readlines():
|
||||
if "'" not in word and word not in bad_words:
|
||||
yield word.rstrip()
|
||||
|
||||
|
||||
def get_puzzle():
|
||||
dict_words = list(gen_wordlist())
|
||||
words = random.sample(dict_words, 3)
|
||||
key = random.randrange(0, 3) # get values 1-3
|
||||
puzzle = "When alphebetized, what is the {} in {}?".format(
|
||||
p.ordinal(p.number_to_words(key + 1)), ", ".join(words)
|
||||
)
|
||||
words.sort()
|
||||
answer = words[key]
|
||||
return [answer, puzzle]
|
||||
|
||||
|
||||
def get_anagram(maxlen=6):
|
||||
dict_words = [
|
||||
word for word in gen_wordlist() if len(word) > 2 and len(word) < maxlen + 1
|
||||
]
|
||||
word = random.choice(dict_words)
|
||||
anagram = list(word)
|
||||
random.shuffle(anagram)
|
||||
anagram = "".join(anagram)
|
||||
|
||||
# Anagrams can have multiple answers, so we provide a check function that accepts all possibilities
|
||||
def answer_checker(guess):
|
||||
# Check for exact match
|
||||
if guess == word:
|
||||
return True
|
||||
# Bail out early if they didn't even use all the same letters
|
||||
if sorted(guess) != sorted(word):
|
||||
return False
|
||||
# Ok, gotta actually check if it's a word now
|
||||
return any(guess == item for item in gen_wordlist())
|
||||
|
||||
return [answer_checker, "Unscramble the following word: '{}'".format(anagram)]
|
||||
Reference in new issue
Block a user