Python avec équité et incompatibilités

Bonjour, j'ai besoin d'un script python pour générer "aléatoirement" une série de 11100 images et je ne sais pas comment faire. (presta bienvenue si besoin)
Il y a 3 types de personnages avec chacun leur propre style :
- 3700 guerriers qui devront être numérotés de 1 à 3700
- 3700 gardiens qui devront être numérotés de 3701 à 74000
- 3700 marchand qui devront être numérotés de 74001 à 11100
Chaque image générée doit être constituée de différents attributs, dont certains obligatoires, comme le background, la peau, la bouche, ou les yeux.
Ces attributs seront donc tous au nombre de 11100 pour chacune de ces catégories mais générés en nombre différents selon la forme ou la couleur.
Par exemple, les yeux marrons sont 8325, les yeux bleus sont 1665, les yeux verts sont 1110.

Ces déclinaisons doivent être réparties équitablement entre chacun des personnages.
 Par exemple pour les yeux marrons, il y en aura 2775 (8325/3) pour le guerrier, 2775 pour le gardien et 2775 pour le marchand.
D'autres attributs sont optionnels, comme les cheveux, la barbe / moustache, les accessoires, les chapeaux ou encore les tatouages.
Ils seront donc édité avec un nombre inférieur 11100.
Certains de ces attributs optionnels peuvent aller à n'importe lequel des personnages comme par exemple la barbe de 3 jours, ils doivent dans ce cas être attribués de manières égales entre chaque personnage; D'autres ont été crée spécifiquement pour aller avec un personnages en particulier, par exemple, la barbe pattes de mouton qui n'est que pour le guerrier (dans ce cas nous avons prévu aussi une barbe spécifique au gardien et une au marchand avec le même nombre).
Certaines combinaisons d'attributs ne peuvent pas aller ensemble, par exemple la casquette ne peux pas aller sur la coupe de cheveux punk.
Cela se complique encore un peu plus quand on rajoute l'attribut vêtement. Chaque modèle de vêtement sera spécifiquement créé pour aller à un personnage. Seulement tous ne sont pas cumulable. Par exemple un personnage ne peut pas porter un tshirt et une chemise à la fois.
En revanche tout personnage qui a un manteau doit avoir un autre vêtement en dessous.
Et tous les personnages doivent porter au moins 1 vêtement.

Le plus important c'est que tous les attributs soient répartis de manière proportionnelle entre chaque personnages pour faire en sorte qu'il ne soit pas plus avantageux d'être un guerrier plutôt qu'un gardien ou un marchand (car on pourra choisir son personnage avant la génération des images).

Êtes-vous capable de créer ce genre de script ? Avez-vous besoin d'information complémentaire ? Que doit-on vous fournir ou prévoir de faire lors de l'enregistrement des images ?
Cordialement, 
Grégory

Réponses

  • nicolas.patrois
    Modifié (February 2022)
    Ça peut se faire avec le module PIL (pillow) pour la création des images matricielles et avec svgwrite pour le SVG.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • gresar
    Modifié (February 2022)
    Hello Nicolas, merci pour ta réponse. Peux-tu m'en dire un peu plus, par exemple ou est-ce que je trouve ça et surtout comment l'utiliser ? 
  • Pour la création des costumes proprement dits, essaie d’abord à la main : comment ferais-tu avec un papier et un crayon.
    Par exemple, tu peux créer une liste de 11100 listes, les tant premières sont des magiciens, les tant suivantes des guerriers, etc.
    Ensuite, tu leur donne la caractéristique suivante en alternant (les tant premiers magiciens ont ceci, les tant suivants magiciens ont cela, etc.)
    Pour les contraintes sur la création de personnages aléatoire, tu peux utiliser une boucle tant que mais ça risque de mouliner un certain temps.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
Connectez-vous ou Inscrivez-vous pour répondre.