begin process at 2008 07 20 09:20:57
1 213 150 membres
71 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SIMULATEUR DE VIE ENCORE UN(VERSION CORRIGE)


Information sur la source

Catégorie :Graphique Classé sous : simulateur vie, encore un, SDL ImageTtf, genetique, graphique Niveau : Débutant Date de création : 31/01/2008 Date de mise à jour : 07/02/2008 15:23:01 Vu / téléchargé: 3 753 / 259

Note :
Aucune note

Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

Description

*********************************************************
Life v1.1
*********************************************************
Auteur:Nevy
Version: 1.1
Remarque: d'apres une idée de Saylar et de plein d'autres
Life.ex_ contient l'executable windows a renomer en Life.exe
*********************************************************
Fonctionnement:
Ce programme simule l'evolution de bestiolle (de 1 à 1000 sans problème aprés ca commence à ramer)
(Code couleur Vert Enfant,Rouge Femme,Rose Femme en ovulation,Bleu Homme,Gris Vieux,Noir avec une croix Mort)
Les bestiolles vivent sur une sphere(le bord droit est lié au bord gauche, de meme la bordure basse est lié a la bordure haute)

Chaque bestiolle dispose d'un genome codant ses actions Haut Bas Droite Gauche (Manger Boire Prendre Lacher:pas encore actif)
lors d'une reproduction echange de la moitié des genes pere contre ceux de la mere, et eventuellement une mutation sur un des genes
une reproduction ne peut avoir lieux que entre un homme et une femme enceinte

Un appuis sur les bouton e,f,h,v permet de provoquer une mort subite des Enfant Femme Homme Vieux

********************************************************
Bug connu
********************************************************
La reproduction n'est pas possible si chacune des deux bestiolles est sur une extremitée opposée (corrigé dans version 2)
le compteur de jour et le compteur de reproduction doivent etre lié a la vitesse de simulation

********************************************************
Le principe de base et de simuler l'evolution selon Darwing, donc apres quelque generation on voit apparaitre des comportements de groupe
et des deplacemenst un peu plus marrant que du simple aleatoire (la population initiale est aleatoire) car seul les bestiolles
vivant en groupe ou le hasard peut justifier une recontre et donc une reproduction
dans les prochaines versions l'ajout de la nourriture et de l'eau vont complexifier le probleme (le genome devra etre plus grand)
********************************************************
Evolution Future:

V1.1 a V1.9
-Amelioration du code (optimisation)
-Ajout de la nourriture et de l'eau (complexification des trajectoires)
-Ajout des obstacles et des elements(et gestion de colision sur les obstacles)
-Mise en service des genes Manger Boire Prendre Lacher
-Transformation des constantes en variables et ajout d'un menu de reglage de celles-ci

V2
-Ajout des objets communications (interface entre l'utilisateur et les bestiolle)
-Ajout de la communication entre bestiolle
-Ajout d'une memoire sur les bestiolles (2 à 3 cases memoire)

V3
-Si vous avez des idees

Source

  • tous est dans le zip
  • ca utilise sdl et sdl ttf
tous est dans le zip

ca utilise sdl et sdl ttf

Conclusion

je n'ai pas mis cette source pour concurencer saylar mais au contraire pour l'aider a avancer dans la programmation
j'espere que j'ai bien fait.
de plus ca fait un bout de temps que je voulais coder un truc comme ca mais en plus evoluer maintanant que j'ai la base je vais continuer
(Ps: tout as ete reecris ce n'est pas une copie d'un code,sauf la void pour ecrire sur l'ecran je la trouve pratique)
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

31 janvier 2008 09:06:23 :
correction d'un bug sur la creation de genome et modification de la routine de gestion des bestiolles plus propre
01 février 2008 01:55:39 :
correction du bug sur la reproduction: presence de jumaux amelioration de deux ou trois point du code
07 février 2008 15:23:02 :
modification de la gestion des genes (plus realiste) ajout de interface.c et interface.h amelioration du code et ajout de la fonction kil et aide
  • signaler à un administrateur
    Commentaire de saylar le 31/01/2008 21:06:30

    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)

  • signaler à un administrateur
    Commentaire de saylar le 31/01/2008 21:12:14

    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 :)

  • signaler à un administrateur
    Commentaire de Matertonyc le 31/01/2008 21:42:47

    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

  • signaler à un administrateur
    Commentaire de PADYVEN le 01/02/2008 01:47:02

    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
    )

  • signaler à un administrateur
    Commentaire de PADYVEN le 01/02/2008 01:51:17

    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++

  • signaler à un administrateur
    Commentaire de saylar le 01/02/2008 08:40:25

    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 :)

  • signaler à un administrateur
    Commentaire de Matertonyc le 01/02/2008 13:30:23

    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

  • signaler à un administrateur
    Commentaire de PADYVEN le 02/02/2008 05:17:02

    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

  • signaler à un administrateur
    Commentaire de JCDjcd le 05/02/2008 18:21:28

    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...

  • signaler à un administrateur
    Commentaire de saylar le 06/02/2008 14:28:05

    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 ?

  • signaler à un administrateur
    Commentaire de JCDjcd le 06/02/2008 19:50:01

    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 ???

  • signaler à un administrateur
    Commentaire de PADYVEN le 07/02/2008 15:11:28

    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.

  • signaler à un administrateur
    Commentaire de saylar le 08/02/2008 20:16:22

    Mea culpa alors :)

  • signaler à un administrateur
    Commentaire de alpha le 08/02/2008 21:26:47

    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...

  • signaler à un administrateur
    Commentaire de saylar le 10/02/2008 16:47:06

    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 :)

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS