Conception d'un code génétique virtuel - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Gameplay, gamedesign (https://jeuweb.org/forumdisplay.php?fid=48) +--- Sujet : Conception d'un code génétique virtuel (/showthread.php?tid=5693) |
Conception d'un code génétique virtuel - madmax52 - 15-09-2011 Bonjour à tous, je suis en train de chercher comment crée mon système de code génétique pour mon futur jeu. Je tiens la base il me semble, mais je ne sais pas si je me trompe pas quelques part.... J'ai un doute... Le principe est basé sur des variables qui correspondront à une adresse de couche d'image. Les différentes couches constituera l'apparence du perso ici le poisson. A la place d'encombré le forum, Je vous laisse l'adresse de la page concerné. Si vous avez des idées ou une réflexion, n’hésiter pas la critique est toujours positive pour moi. Je ne savais pas bien ou poster alors si un admin veut déplacer le sujet, pas de soucis. RE: Conception d'un code génétique virtuel - Ter Rowan - 15-09-2011 ca peut le faire, ton explication n'est pas très claire cependant, et il m'a fallu réfléchir à ce que tu voulais exprimer pour bien tout suivre (en fait comme tu ne signales pas dans les "gênes" si ca vient du père ou de la mère c'est un peu compliqué) Par contre le modèle est très simple et ne rend pas l'aspect "transmission génétique" pour moi ton système se résume à : un liste de caractéristiques par individu (tous les individus ont toutes les caractéristiques, mais avec des valeurs différentes) une liste de valeurs possibles par caractéristiques (soit une liste de couleur, soit pour le sexe, 'M' et 'F') et pour " l'héritier "la valeur d'une caractéristique est tirée aléatoirement parmi la valeur du père et de la mère, avec une petite chance de réaliser un deuxième tirage aléatoire parmi la liste des valeurs possibles pour la caractéristique (ce qui simulerait la mutation) tu peux aller un peu plus loin pour être plus "génétique" chaque individu possède trois valeurs de caractéristiques : Celle de son père Celle de sa mère Celle qui est perçue (affiché à l'écran) Pour calculer la caractéristique perçue tu peux : soit définir une priorité stricte entre les valeurs (genre blond + brun = brun) soit donner des poids et calculer des probabilités : genre blond (3) + brun (17) ==> 15% de chance d'obtenir un blond, 85% d'obtenir un brun lors de la reproduction de deux individus, pour chaque caractéristique, pour chacun des deux individus, tu tires au hasard entre la caractéristique de son père et de sa mère ce qui donnera la contribution de l'individu au matériel exemple : carpe 1 (masculin) : couleur du père rouge couleur de la mère bleu couleur perçue bleu taille du père petit taille de la mère grand taille perçue grand carpe 2 (féminin) : couleur du père rouge couleur de la mère jaune couleur perçue jaune taille du père grand taille de la mère grand taille perçue grand tu reproduis carpe 1 et carpe 2 alors carpe issue de 1+2 couleur du père 1 (hasard entre rouge et bleu ==>) rouge couleur de la mère 2 (hasard entre rouge et jaune ==>) rouge ==> calcul entre rouge et rouge ==> couleur perçue de 1+2 rouge taille du père 1 (hasard entre petit et petit ==>) petit taille de la mère 2 (hasard entre grand et grand ==>) grand ==> calcul entre petit et grand ==> grand ? et voilà, grâce à la génétique tu arrives à générer une grande carpe rouge alors que les deux parents sont l'un bleu et l'autre jaune ce qui est statistiquement possible (25%) bien sûr je suis dans les cas de transmission génétique "simple" (pour l'homme c'est plus compliqué ^^ ) RE: Conception d'un code génétique virtuel - madmax52 - 15-09-2011 Tu as bien compris les grandes lignes. C'est assez dur à expliqué en faite, surtout quand tu as 13 facteurs. Justement j'ai mis les facteurs génération et évolution pour avoir un deux facteurs nouveau. Génération reprendra un facteur des anciennes génération. Évolution lui donne tire aux hasard un nouveau facteur dans 5% des cas. Le but est justement de perturbé le code. Je pense que mon système est plus simple pour le même résultat si j'ai bien compris. RE: Conception d'un code génétique virtuel - niahoo - 15-09-2011 Pour simplifier l'algorythme je reprendrais un modèle réel simplifié (une seule paire de chromosomes avec tous les gènes) (je ne fais que résumer ce qui a été dit d'une façon plus claire à mon sens) Petit rappel pour ceux qui suivent et qui ne connaitraient pas : chaque parent donne au hasard un seul de ses deux chromosomes. Donc, pour chaque carpe je stockerais deux chromosomes, un tiré au sort de chaque parent. et ensuite je stockerais également le résultat de cette combinaison comme résultat, en choisissant aléatoirement quand on a un allèle récéssif des deux parents. Blond + brun c'est toujours brun car on a des allèles récessifs et des dominants, pour d'autres gènes c'est plus compliqué mais je pense que tu peux réaliser un modèle, il doit y avoir de la doc là dessus sur internet. Pour le sexe je n'y connais rien mais chez les humains il me semble que la femme a deux chromosomes Y et l'homme 1X et 1Y Donc la détermination du sexe se fait aléatoirement en fonction du chromosome passé par le mâle. RE: Conception d'un code génétique virtuel - niahoo - 15-09-2011 Voici un prototype simplifié, sans gérer le sexe (qu'on peut choisir simplement grâce à du rand(1,2) en php - sauf si c'est comme les poules chez qui la température de couvaison détermine le sexe – à vérifier ) ; sans gérer l'évolution non plus, que j'aurais mise en surcouche une fois mon algo fini. Je l'ai fait en php mais c'est 100 fois plus marrant en erlang !
Le modèle de données est bien sur discutable, on pourrait bosser sur des int au lieu de strings, mais là c'est plus lisible |