SIMULATEUR DE VIE ENCORE UN(VERSION CORRIGE)

cs_saylar Messages postés 102 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 10 février 2008 - 31 janv. 2008 à 21:06
Styfore Messages postés 1 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 24 décembre 2009 - 24 déc. 2009 à 15:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45575-simulateur-de-vie-encore-un-version-corrige

Styfore Messages postés 1 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 15:01
Bon c'est vieux comme sujet, et le projet est sûrement abandonné, mais je voulais faire une petite remarque :
Pour bien suivre la théorie de l'évolution, et pour être sûr d'avoir une émergence de comportement, il manque quelque chose d'important, la sélection.
En effet, là tous les individus son égaux à la survie et à la reproduction, aucun n'es mieux adapté que l'autre, donc tout le monde peut se reproduire. Donc ça reste de génôme aléatoire.
Il manque une "règle du jeu", la survie. Il faut que certains, de par leur génome, soit plus enclin à survivre et donc à se reproduire que les autres. ainsi seuls les plus aptes peuvent donner leur gènes.

J'avais déjà fait une simulation de vie (mais très lente de par le fait que y avait pas de limite de population sinon le nombre de case, et comme ce n'était intéressant que sur une grande map, y avait énormément d'inividu, c'était très lent), quoi qu'il en soit ce n'était pas les même règles du tout (pas de gauche droite ni rien).
Mais voilà comment un individu était décrit :
Vie, régime alimentaire (en pourcentage), paramètre de "choix" de proies, vision.
Et là y avait bien sélection, quand on avait plus de vie on mangeait plus (de même our la vision), donc l fallait des proies plus grossess, donc plsu de risques de mourir en combat. Les morts et le surplux de nouriture ingurgité après une attaque était reconvertit en plante pour les végétariens.

Là y avait émergence de comportement, tantôt c'était dominante végétarien, tantôt un petit groupe de carniore commençait à augmentez et manger tous les végé, et ça oscillait comme ça.
cs_saylar Messages postés 102 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 10 février 2008
10 févr. 2008 à 16:47
C'est sympa mais on ne travail pas (encore) ensemble. J'ai un peu refusé non pas car je n'aime pas l'idée de travailler avec PADYVEN mais car nous n'avons pas les même façon de programmer (ses fonctions sont nommées en français moi en anglais, il utilise le génome ... moi pas).

Merci pour lui et pour moi :)
cs_alpha Messages postés 19 Date d'inscription samedi 17 novembre 2001 Statut Membre Dernière intervention 13 juillet 2012
8 févr. 2008 à 21:26
magnifique....
je parle de l'idée (et non du code que j'ai pas regardé lol) mais je trouve a vous 2 que l'idée de faire ce genre de programme est bien j'y avais pensé ya quelque temps mais j'avais vite laché l'affaire lol mais sa serai bien que tu remonte un peu juste avant que les genome apparaissent c'est a dire au moment ou ta planete se genere aléatoirement
ou peut etre la possibilité que plusieur planete se genere avec un soleil et tt et en fonction de tt sa t genome apparaisent a certain endroit plutot que d'autre mais idée a poursuivre jsuis tt coeur avc vous et j'espere que le projet va se poursuivre jusqu'au bout...
cs_saylar Messages postés 102 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 10 février 2008
8 févr. 2008 à 20:16
Mea culpa alors :)
PADYVEN Messages postés 69 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 29 août 2012
7 févr. 2008 à 15:11
Donc en fait c'est JCDJCD qui a raison on est plus pres d'un tore que d'une sphere mais dans les deux cas
la description est fausse puisque le rayon interne d'un tore est plus petit que le rayon externe et que chez moi les deux rayons ont la meme taille (un vrai tore serait sur un ecran de type trapeze et une sphere serait sur un cercle enfin si je me trompe pas ) donc on est bien dans un environement completement virtuel reboucle sur les bords.
mais on peut parler de X et Y sur une sphere si je me rappel bien ya une equation du genre x=rayon*cos(angle)
please ne corriger pas les math et moi ca fait 368 degres

sinon je vous invite tous a telecharger la mise a jour j'ai ameliorer le codage des genomes (avant c'eait un gene sur deux donc deux permutation possible pour deux parent) maintenant c'est des bloc de gene du pere et de la mere
d'ailleur j'ai avec certain parametres des comportements non prevu au bout de 17 genrations
j'espere que c'est pas du a un bug parceque ca m'inerresse enormement(les bestiolles ont des periodes synchrone sans mouvement) je pense que c'est du a l'utilisation des genes manger prendre lacher boire qui non pas d'action sur le mouvement.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
6 févr. 2008 à 19:50
ben je pense que oui.
si en se deplacant trop a gauche on revient a droite (et l'inverse) et trop en bas on revient en haut (et l'inverse) alors c'est un tore et surement pas une sphere
et le tore et la sphere n'ont RIEN de similaire (cf les probleme de mappage sur des spheres)

et c'est code comme un tore et non une sphere, d'ailleurs peut-on vraiment parler de coordonnees X et Y sur une sphere ???
cs_saylar Messages postés 102 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 10 février 2008
6 févr. 2008 à 14:28
Non, en fait je crois que "théoriquement", c'est bien une sphere. Si quelqu'un est au bout de l'écran, il revient sur l'autre bout. Comment avec un donuts en 2d pourrait t'on faire cela? Certe en réalité, c'est surement un donuts mais vu comment c'est codé, ca fait pensé à une sphere.

Je me trompe ?
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
5 févr. 2008 à 18:21
petite correction : ta popultation ne vit pas sur une sphere mais sur un tore (un donuts), ton monde est bien circulaire mais il n'est pas pour autant spherique...
PADYVEN Messages postés 69 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 29 août 2012
2 févr. 2008 à 05:17
Matertonyc
salut: je ne pense pas ajouter de maladie,les genes de l'enfant(son deplacement) sont fonction des parents donc
son mouvement vas herité d'une partie de la mere et d'une partie du pere, si tes parent font 400 enfants les enfants auront t'il des maladies (reponse non) ils aurant peut etre tous le meme defaut (un gros nez par exemple)
et ce defaut ira s'accentura si les enfant ce reproduise avec les parents ou entre eux,(chez moi il en sera de meme le mouvement sera singer sur celui des parent et en continuant il deviendra de plus en plus similaire)
par contre avec l'ajout d'un point eau et un point nourriture les gene ne permettant pas de joindre les deux point et de ce reproduire periront (La bestiolle mourrera si elle n'a pas mangé ou bu donc elle ne pourra plus transmettre ses genes)(lire darwing)
je pense donc au contraire a jouter de plus en plus de contrainte pour avoir des genes de plus en plus evolué
apres j'ajouterai une petite memoire d'execution (peut etre un truc du genre If then) et donc une petite intelligence
Matertonyc Messages postés 2 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 1 février 2008
1 févr. 2008 à 13:30
Bonjour,
D'accord, quand j'aurai reinstallé mon IDE j'irai voir. Autrement j'ai aussi pensé a un pettplus qui pourrai encore rajouter de la complexité au programme et le rendre plus interessant. Rajouter des maldies congenitales quand les mêmes bestioles se reproduisenensemble trop de fois. Ainsi, ilerai imossible seuleument deux bestioles de faire renaitre toute uneie.

Matertonyc
cs_saylar Messages postés 102 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 10 février 2008
1 févr. 2008 à 08:40
Il faudrait que je fasse aussi une limite de naissances. J'ai pensé aussi à un fichier (style: data.txt) dans lequel l'utilisateur pourra définir : la taille, la durée de vie et les humains de départ (chez moi ca commence par "Adam et Eve" en gros) et le programme lit se fichier (vérifie si les données sont correctes) et lance le prog en utilisant les valeurs contenu dans le fichier.

Comment ca le code est illisible ? Il faudrait que je regarde le tiens :) Que me conseillerais tu à ce niveau ?

Je n'ai pas trop le temps en ce moment de tout changer (de mon côté) et de regarder tout code mais comment fais tu pour gérer la reproduction, moi je me base sur la position du carré :
si carre1.position.x carre2.position.x et carre1.position.y carre2.position.y et carre1.sexe != carre2.sexe alors appel de la fonction createNewLife.

Lis la doc avant le code sinon tu vas pas trop comprendre le cheminement de mes idées.

Moi aussi, tout est piquable sauf le code... Non je déconne TOUT est à prendre :)
PADYVEN Messages postés 69 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 29 août 2012
1 févr. 2008 à 01:51
n'hesitez pas a changer les parametres du fichier constante il est bien commenté je pense et le programme est concu pour etre simple a lire
dans une version prochaine j'essarai de gerer la taille et la couleur d'apres le genome .et j'ajouterai aussi la suppression d'un individu par la souris
avec un curseur marrant.

Saylar je voulais dire aussi que j'ai jetee un oeil une fois sur ton code,ca ma fais peur,j'ai reessaye de meme
alors j'ai tous recode,sinon j'aurais travaillais directement sur le tien

PPS tous est librement piquable.

a++
PADYVEN Messages postés 69 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 29 août 2012
1 févr. 2008 à 01:47
bon pour repondre dans l'ordre (Saylar)
l'idee ca fais longtemps que je l'avais les outils je les connaissais mais j'avais la flemme de devellopper tu ma
juste aiguiller.Life.exe c'est ton nom mon amis pourquoi appelle rouge un programme qui est vert.par contre regarde le code je pense qu'il est plus propre(en tout cas plus facile a lire) Les couleurs t'a qua changert les dessins du moment qu'il soit en png et du meme nom (PS j'ai aussi piqué la police de caractere).
pour l'evolution j'applique seulement le principe de la vie naissance ,adulte ,vieux ,mort,pourris
les effet lumineux sur les femme sont la pour montrer les periode d'ovulations une femme ne peut ovuler que entre deux deux constante (15eme jour du mois plus ou moins 3jour)

Ls enfants vont ensemble car c'etait un bug je remet la source a jour assez vite.
mais au bout de quelque gneration ca devrai logiquement ce produire puisque les reproductions se font soit sur les individu en groupe soit sur les individus ce suivant soit sur les individu ce croisant pendant des periode de reproduction

Pour Matertonyc oui c'est normal il y a une constante pour definir le nombre max d'individu, sur ta version il est regle a 1000(j'ajoute prochainement le reglage)
donc les adultes ne peuvent plus ce reproduire limite de population, quand ils vont mourrir normalement en masse si ils sont arrivé en meme temps,les enfants vont renaitre (ca marche par cycle
)
Matertonyc Messages postés 2 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 1 février 2008
31 janv. 2008 à 21:42
Bonjour,

Alors deja je trouve ton programme super. Pour repondre a Saylar, je pense (corrigez moi si je me trompe) que la population totale est representée sur une sphere, qui a mon avis represente la terre, les enfants marchants en groupe cela doit representer un foyer de population fixe non ?
Autrement, j'aimerai te proposer quelques ameliorations, deja, je trouverai interessant qu'il y ai une fonction permettant d'eliminer seuleument un individu pour voir comment survirai une population de seuleument un nombre limité d'individus.
Et puis j'ai un petit probleme, je suis a 935 individus, quasiment tous adultes et ils ne se reproduisent plus. Est-ce normal ?

Matertonyc
cs_saylar Messages postés 102 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 10 février 2008
31 janv. 2008 à 21:12
Après test : Les effets lumineux sur les femmes sont amusants :D Mais j'aime pas le fait que les enfants vont ensemble, enfin je ne sais pas pourrais tu m'expliquer pourquoi les enfants marchent ils en groupe ?

Merci d'avance :)
cs_saylar Messages postés 102 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 10 février 2008
31 janv. 2008 à 21:06
Eh ben ! Bravo :) On a eu l'a même idée (au même moment, j'en sais rien) et en utilisant les mêmes outils lol.

Ton programme explose le miens en matière de design, je vais le tester de suite (Life.ex_ ca me rappel mon programme xd)

Je te donne des conseils pour la suite (je sais pas si tu les appliques déjà) :

Rajouter une partie memoire dans l'entité : Combien à t'il d'enfants...Gérer les couleurs exemple : entité1.couleur noir + entité2.couleur blanc -> enfant.couleur = gris.
Après je verrai ce que je vais rajoutter dans leur mémoire.
J'ai pas encore testé le prog mais déjà, j'aime pas le : vert enfant, rouge femme car en réalité, une femme n'est pas rouge pas plus qu'un enfant n'est vert et moi je suis bleu xd

Ce que je tire de ton programme:
Je ne suis pas assez original vu que ton prog et le miens se ressemble énormément en terme d'interface (tu affiches les "stats", un mort une croix, chez moi : un mort un carré noir)
Il faut que je gère les degrès de vieillesses car moi ca fait : vie -> si temps de vie > temps de vie accordé -> mort.

Je suis super content d'avoir un "rival", tu as utilisé ma fonction void writeTxt ? :)

Encore une fois, félicitation (je vais améliorer le design et ajouter des trucs sympas durant ces vacances)