34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import random
|
|
|
|
from untitled import PACKAGE_ROOT, content, namegen, rules
|
|
|
|
|
|
def generate_trait_sentence(traits):
|
|
article = "An" if traits["size"][0] in "aeiou" else "A"
|
|
description = f'{article} {traits["size"]} {traits["color"]} kitten with {traits["eyes"]} eyes who {traits["personality"]}'
|
|
return description
|
|
|
|
|
|
def generate_cat_choice(personality=None):
|
|
size = random.choice(content.CAT_SIZES)
|
|
color = random.choice(content.CAT_COLORS)
|
|
eyes = random.choice(content.CAT_EYE_COLORS)
|
|
personality = personality or random.choice(content.CAT_PERSONALITIES)
|
|
traits = {
|
|
"size": size,
|
|
"color": color,
|
|
"eyes": eyes,
|
|
"personality": personality,
|
|
}
|
|
return generate_trait_sentence(traits), traits
|
|
|
|
|
|
def generate_cat_choices(n=5):
|
|
personalities = random.sample(content.CAT_PERSONALITIES, n)
|
|
return [generate_cat_choice(p) for p in personalities]
|
|
|
|
|
|
with open(PACKAGE_ROOT / "assets" / "cat_names.txt") as f:
|
|
names = f.read().splitlines()
|
|
cat_name_generator = namegen.NameGenerator(names, rules.validate_auto_gen_cat_name)
|