#!/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]