Du befindest dich hier: FSI Informatik » Fachschaftsinitiative Informatik » Organisation der FSI » Regelmäßiges » fsien_flotter_dreier » steckbriefe_data.py (Übersicht)
#!/usr/bin/env python3
import sys, random, csv
SIMPLE_PROPERTIES = {
'alter': 'Alter 20 bis 25', 'schuhgroesse': ('Schuhgröße', ['36 bis 39', '41 bis 44']), 'pi': 'Kann die ersten fünf Ziffern von Pi auswendig', 'haarfarbe': ('Haarfarbe', ['blond', 'braun']), 'groesse': 'Körpergröße über 1,80 m', 'augenfarbe': ('Augenfarbe', ['blau', 'braun']), 'wohnort': 'Wohnt in Erlangen'
} SIMPLE_KEYS = list(SIMPLE_PROPERTIES.keys())
MEDIUM_PROPERTIES = {
'alter': 'Alter über 25', 'augenfarbe': 'Augenfarbe grün', 'kleidung': ('Trägt heute', ['Rock oder Kleid', 'ein Hemd']), 'sprache': ('Spricht', ['spanisch', 'französisch']), 'fakultaet': ('Studiert an der', ['Technischen Fakultät', 'Naturwissenschaftl. Fakultät', 'Philiosophischen Fakultät']), 'auto': 'Besitzt ein Auto'
} MEDIUM_KEYS = list(MEDIUM_PROPERTIES.keys())
HARD_PROPERTIES = {
'vorname': ('Anfangsbuchstabe des Vornamens ist', ['A', 'C', 'F', 'J', 'L', 'M', 'S', 'T']), 'linkshänder': 'Linkshänder/in', 'sternzeichen': ('Sternzeichen', ['Widder', 'Stier', 'Zwillinge', 'Krebs', 'Löwe', 'Jungfrau', 'Waage', 'Skorpion', 'Schütze', 'Steinbock', 'Wassermann', 'Fische']), 'alter': 'Alter unter 20', 'haarfarbe': ('Haarfarbe', ['rot', 'schwarz']), 'sprache': ('Spricht', ['türkisch', 'russisch', 'italienisch']), 'wohnort': ('Wohnt in', ['Nürnberg', 'Fürth']), 'haustier': 'Hat ein Haustier'
} HARD_KEYS = list(HARD_PROPERTIES.keys())
BAD_TOGETHER = [
('schuhgroesse', 'kleidung'), ('groesse', 'kleidung')
]
def main(args):
writer = csv.writer(sys.stdout, delimiter=';') count = int(args[0])
for i in range(count): writer.writerow(get_tasks())
def get_tasks():
simple_key = random.choice(SIMPLE_KEYS) medium_key = random.choice(MEDIUM_KEYS) hard_key = random.choice(HARD_KEYS)
while medium_key == simple_key or (simple_key, medium_key) in BAD_TOGETHER: medium_key = random.choice(MEDIUM_KEYS) while hard_key == medium_key or hard_key == simple_key or (medium_key, hard_key) in BAD_TOGETHER or \ (simple_key, hard_key) in BAD_TOGETHER: hard_key = random.choice(HARD_KEYS)
# Put the hardest part in the middle properties = (SIMPLE_PROPERTIES[simple_key], HARD_PROPERTIES[hard_key], MEDIUM_PROPERTIES[medium_key]) tasks = []
for p in properties: if isinstance(p, tuple): tasks.append('{} {}'.format(p[0], random.choice(p[1]))) else: tasks.append(p)
return tasks
if name == 'main':
main(sys.argv[1:])
[/code]