Désolé de revenir sur le débat mais tu n'as pas l'air de te rendre compte, dans l'hypothèse où l'arbre est pur, si l'on a une portée du muldos ébène, on choisi le sexe à 50% pas de bol (ou justement, de la chance) on tombe sur 2 mâles, oui mais c'est des ébènes, du coup impossible de tenir le ratio évoqué au départ de 10% de mâles seulement, comme tu le soulèves, ça va faire tendre la répartition de sexes vers l'équilibre (50/50).
Maintenant prenons un cas avec un arbre non pur, ébène et et indigo dans l'arbre, encore une fois, on choisi le sexe à 50% pas de bol (ou justement, de la chance) on tombe sur 2 mâle encore, dis moi comment créer un algorithme qui va prendre en compte le fait de choisir la race par rapport à l'arbre tout en ayant une contrainte sur le sexe de celle-ci ? Dans tous les cas, si tu génères la race, après le sexe, tu ne peux absolument pas avoir de contrôle sur le sexe par rapport à la race et tu va tendre vers du 50/50 pour une population donnée assez grande pour qu'elle soit représentative au niveau de la mixité possible des arbres. Générer le sexe avant la race tout en voulant avoir un contrôle sur les répartitions de sexes c'est comme si tu voulais construire quelque chose à moindre coût mais que tu t'imposes au départ tous les matériaux et l'endroit où tu vas les acheter, à partir du moment où tu fixe quelque chose, tu ne peux plus avoir le contrôle de ce paramètre par rapport à d'autres.
Donc oui, prendre en compte le fait de gérer la race générée par rapport au sexe choisi, c'est très très compliqué à implémenter...
Tu prends des exemples ultraspécifiques, et en suite tu en tires une généralité qui ne marche pas

. En moyenne, les arbres très mixtes, il y aura autant de muldos à tendance mâle que de muldos à tendance femelle, grossomodo. Globalement, dans des arbres très "mixtes", si tu tires le sexe en premier, ça veut dire que :
- Si tu tires un mâle, il aura plus de chances d'être orchidée ou pourpre
- Si tu tires une femelles, il aura plus de chances d'être indigo ou ébène
Ce qui suffit à assurer les sexratio.
Dans l'exemple d'un couple pourpre / ébène sauvages (ou purs, en négligeant les bicolores),
- Un bébé mâle issu de ce couple aura 75% de chances d'être pourpre, 25% d'être ébène (p(pourpre|mâle) = 0.75)
- Un bébé femelle issu de ce couple aura 75% de chances d'être ébène, 25% de chances d'être pourpre (p(pourpre|mâle)=0.25)
Ce qui donne, en considérant que chaque sexe est équiprobable :
p(mâle|pourpre) = p(mâle,pourpre)/p(pourpre) = p(pourpre/mâle)*p(mâle)/p(pourpre) = 0.75*0.5/0.5 = 0.75
et de même p(mâle|ébène) = 0.25.
(pour ceux qui n'auraient pas suivi p(pourpre) = p(pourpre,mâle) + p(pourpre,femelle) = p(mâle)*p(pourpre|mâle) + p(femelle)*p(pourpre|femelle) = 0.5*0.75 + 0.5*0.25 = 0.5)
Plus généralement, il suffit que dans le calcul de la couleur, la pondération soit appliquée sur les nœuds de l'arbre selon le sexe et la couleur de chaque nœud, rien de bien compliqué à implémenter.
------------------------------------------------
Pour parler d'autre chose, j'ai une théorie sur les collisions, si vous avez envie de la mettre à l'épreuve. Je dirais qu'elles sont calculées de la manière suivante :
Si [les numéros de lignées sont différents], alors pas de collision -> 4 repro
Sinon, si [les numéros de lignée des papas sont identiques]&[les numéros de lignée des mamans sont identiques] -> 1 reproduction (collision maximale, probablement frères et soeur)
Sinon, si [les numéros de lignée des papas sont identiques], on compare les grands-parents paternels (de la même manière que précédemment), si full collision -> 2 reproductions
(de même si il faut remonter dans la lignée des mamans)
Sinon, on compare les parents du grand-parent qui collisionne, s'il y a full collision -> 3 repro, sinon 4
Cette théorie a le mérite d'expliquer le cas de frères en sœurs qui engendrent des muldos à 4 reproductions malgré l'arbre identique au-dessus : le niveau n+1 de l'arbre n'est consulté qu'en cas de collision au niveau n.