Accueil > > > NURMITES : DEBUT DE MODULE DU CERVEAU
NURMITES : DEBUT DE MODULE DU CERVEAU
Information sur la source
Description
Bon ben voici le debut du module de cerveau que je suis en train de faire...Il est pas tres complet mais je preferai que vous me donniez votre avis avant que je le continue ! J'ai encore pas mal d'idees, genre les maladies infectieuses et autres mais pour ca il faudrai creer d'autres fonctions genre detecter si un autre nurmite est visible par le nurmite, pouvoir detecter l'odeur en + de la direction...bon voila, donnez-moi votre avis avant que je continue !!!
Source
- 'Voici le module de cerveau tout frais que je viens de faire
- 'Comme je sais pas la fonction pr se deplacer, j'utilise : Bouge(Nurmite as nurm, Direction as direction)
-
- Const NURM_Free = True
- Const NURM_Action = False
-
- Type Nurm
- XPos As Integer
- YPos As Integer
- Age As Integer
- Generation As Integer
- Memory As NurmMemoryMatrix
- State As NurmState
- WorldVue As Vision
- Trajectoire As Route
- Props As Bio
- End Type
-
- Type NurmMemoryMatrix
- End Type
-
- Type NurmState
- Action As Boolean
- Action_Type As String
- Vie As Integer
- Sommeil As Integer
- Faim As Integer
- Soif As Integer
- Maladie As Integer
- End Type
-
- Type Bio
- Vie_Max As Integer
- Intelligence As Integer
- Resistance As Integer
- Vue As Integer
- Odorat As Integer
- Ouie As Integer
- End Type
-
- Type Vision
- End Type
-
- Type Route
- End Type
-
- 'Cette fonction doit être appelee a chaque changement de cycle absolument !!!
- Public Function NurmNewCycle(Nurmite As Nurm)
- Dim tmp As Integer
- Dim malus As Integer
-
- 'Augmente la faim du Nurm
- tmp = Int(Rnd * 100) + 1
- Nurmite.State.Faim = Nurmite.State.Faim + tmp
-
- 'Augmente la soif du Nurm
- tmp = Int(Rnd * 100) + 1
- Nurmite.State.Soif = Nurmite.State.Soif + tmp
-
- 'Augmente le sommeil du Nurm
- tmp = Int(Rnd * 100) + 1
- Nurmite.State.Sommeil = Nurmite.State.Sommeil + tmp
-
- 'Teste la faim, la soif et le sommeil du Nurmite
- If Nurmite.State.Faim > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "FAIM"
- If Nurmite.State.Sommeil > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOMMEIL"
- If Nurmite.State.Soif > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOIF"
-
- 'Teste la maladie qui est due au vent
- malus = (((Int(Rnd * windspeed) + 3) * 8) - Nurmite.State.Props.Resistance)
- 'Puis c'est la pluie qui afaiblit le nurmite
- If IsRaining = True Then
- malus = malus + (((Int(Rnd * 6) + 3) * 8) - Nurmite.State.Props.Resistance)
- End If
- 'S'il n'y a aucun malus, le nurmite reprend des forces
- If malus <= 0 Then malus = -((Int(Rnd * 5) + 1) * Nurmite.Props.Resistance)
-
- 'Ajoute le malus a la valeur de maladie du nurm
- Nurmite.State.Maladie = Nurmite.State.Maladie + malus
-
- 'Execute l'action du Nurm
- Select Case Nurmite.State.Action_Type
- Case "FAIM"
- NurmChercheManger Nurmite, ODEUR_VIANDE
- Case "SOIF"
- NurmChercheManger Nurmite, ODEUR_EAU
- Case "SOMMEIL"
- NurmDort (Nurmite)
- End Select
- End Function
-
- 'Fonction appelée quand le Nurm mange
- 'Je m'occupe pas des fonctions de NurmFood.bas
- Public Function NurmMange(Nurmite As Nurm)
- Nurmite.State.Faim = Nurmite.State.Faim - 1500
- If Nurmite.State.Faim > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "FAIM"
- End Function
-
- 'Quand le Nurm boit...
- 'Teste aussi s'il a encore soif
- Public Function NurmBoit(Nurmite As Nurm)
- Nurmite.State.Soif = Nurmite.State.Soif - 1500
- If Nurmite.State.Soif > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOIF"
- End Function
-
- 'Et là quand il dort
- Public Function NurmDort(Nurmite As Nurm)
- Nurmite.State.Sommeil = Nurmite.State.Sommeil - 1500
- If Nurmite.State.Sommeil > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOMMEIL"
- End Function
-
- 'Recherche de nourriture quand il a faim ou soif
- 'Retourne Vrai si le nurmite a trouve a mange
- 'Retourne Faux si le nurmite n'a rien trouve...
- Public Function NurmChercheManger(Nurmite As Nurm, Odeur As Odeur) As Boolean
- 'Cherche une odeur quelconque
- Direction = FindNearestOdeur(Nurmite, Odeur)
- 'S'il trouve l'odeur de la viande
- If Direction <> "" Then
- Bouge Nurmite, Direction
- Else
- 'S'il ne trouve pas l'odeur de la viande, on va voir s'il est assez intelligent pour en chercher...
- 'Comme ca ca renforce l'idee de la selection naturelle
- 'Un nurmite peut mourir de faim s'il est pas assez intelligent pour chercher a manger
- If Nurmite.Props.Intelligence >= (Int(Rnd * 20) + 1) Then
- Direction = DetectNouvelleOdeur(Nurmite)
- End If
- End If
- End Function
-
- Public Function NurmDort(Nurmite As Nurm)
- Dim malus As Integer
- If DuBruit(Nurmite) = True Then malus = Int(Rnd * 100) + 1
- Nurmite.State.Sommeil = Nurmite.State.Sommeil - (Int(Rnd * 200) + 100)
- End Function
'Voici le module de cerveau tout frais que je viens de faire
'Comme je sais pas la fonction pr se deplacer, j'utilise : Bouge(Nurmite as nurm, Direction as direction)
Const NURM_Free = True
Const NURM_Action = False
Type Nurm
XPos As Integer
YPos As Integer
Age As Integer
Generation As Integer
Memory As NurmMemoryMatrix
State As NurmState
WorldVue As Vision
Trajectoire As Route
Props As Bio
End Type
Type NurmMemoryMatrix
End Type
Type NurmState
Action As Boolean
Action_Type As String
Vie As Integer
Sommeil As Integer
Faim As Integer
Soif As Integer
Maladie As Integer
End Type
Type Bio
Vie_Max As Integer
Intelligence As Integer
Resistance As Integer
Vue As Integer
Odorat As Integer
Ouie As Integer
End Type
Type Vision
End Type
Type Route
End Type
'Cette fonction doit être appelee a chaque changement de cycle absolument !!!
Public Function NurmNewCycle(Nurmite As Nurm)
Dim tmp As Integer
Dim malus As Integer
'Augmente la faim du Nurm
tmp = Int(Rnd * 100) + 1
Nurmite.State.Faim = Nurmite.State.Faim + tmp
'Augmente la soif du Nurm
tmp = Int(Rnd * 100) + 1
Nurmite.State.Soif = Nurmite.State.Soif + tmp
'Augmente le sommeil du Nurm
tmp = Int(Rnd * 100) + 1
Nurmite.State.Sommeil = Nurmite.State.Sommeil + tmp
'Teste la faim, la soif et le sommeil du Nurmite
If Nurmite.State.Faim > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "FAIM"
If Nurmite.State.Sommeil > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOMMEIL"
If Nurmite.State.Soif > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOIF"
'Teste la maladie qui est due au vent
malus = (((Int(Rnd * windspeed) + 3) * 8) - Nurmite.State.Props.Resistance)
'Puis c'est la pluie qui afaiblit le nurmite
If IsRaining = True Then
malus = malus + (((Int(Rnd * 6) + 3) * 8) - Nurmite.State.Props.Resistance)
End If
'S'il n'y a aucun malus, le nurmite reprend des forces
If malus <= 0 Then malus = -((Int(Rnd * 5) + 1) * Nurmite.Props.Resistance)
'Ajoute le malus a la valeur de maladie du nurm
Nurmite.State.Maladie = Nurmite.State.Maladie + malus
'Execute l'action du Nurm
Select Case Nurmite.State.Action_Type
Case "FAIM"
NurmChercheManger Nurmite, ODEUR_VIANDE
Case "SOIF"
NurmChercheManger Nurmite, ODEUR_EAU
Case "SOMMEIL"
NurmDort (Nurmite)
End Select
End Function
'Fonction appelée quand le Nurm mange
'Je m'occupe pas des fonctions de NurmFood.bas
Public Function NurmMange(Nurmite As Nurm)
Nurmite.State.Faim = Nurmite.State.Faim - 1500
If Nurmite.State.Faim > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "FAIM"
End Function
'Quand le Nurm boit...
'Teste aussi s'il a encore soif
Public Function NurmBoit(Nurmite As Nurm)
Nurmite.State.Soif = Nurmite.State.Soif - 1500
If Nurmite.State.Soif > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOIF"
End Function
'Et là quand il dort
Public Function NurmDort(Nurmite As Nurm)
Nurmite.State.Sommeil = Nurmite.State.Sommeil - 1500
If Nurmite.State.Sommeil > (Nurmite.Props.Resistance * 100) Then Nurmite.State.Action_Type = "SOMMEIL"
End Function
'Recherche de nourriture quand il a faim ou soif
'Retourne Vrai si le nurmite a trouve a mange
'Retourne Faux si le nurmite n'a rien trouve...
Public Function NurmChercheManger(Nurmite As Nurm, Odeur As Odeur) As Boolean
'Cherche une odeur quelconque
Direction = FindNearestOdeur(Nurmite, Odeur)
'S'il trouve l'odeur de la viande
If Direction <> "" Then
Bouge Nurmite, Direction
Else
'S'il ne trouve pas l'odeur de la viande, on va voir s'il est assez intelligent pour en chercher...
'Comme ca ca renforce l'idee de la selection naturelle
'Un nurmite peut mourir de faim s'il est pas assez intelligent pour chercher a manger
If Nurmite.Props.Intelligence >= (Int(Rnd * 20) + 1) Then
Direction = DetectNouvelleOdeur(Nurmite)
End If
End If
End Function
Public Function NurmDort(Nurmite As Nurm)
Dim malus As Integer
If DuBruit(Nurmite) = True Then malus = Int(Rnd * 100) + 1
Nurmite.State.Sommeil = Nurmite.State.Sommeil - (Int(Rnd * 200) + 100)
End Function
Conclusion
J'ai cree des caracteristiques pour les nurmites telles que leur intelligence, leur resistance, etc...ces donnees vont de 1 à 20 et pour le codage genetique ca sera bien facile, suffira de mettre les chiffres les uns apres les autres(en les formattant à 2 chiffres) pour donner la chaine "d'ADN"...(ex: 160811 -> 16 en intelligence, 8 en resistance et 11 en je sais pas quoi). Ces caracteristiques sont toutes aussi importantes les unes que les autres et le cerveau commence montre bien la selection naturelle qui se produit...Allez hop, depechez-vous de juger pour que je puisse continuer parce que je suis bourre d'idees !!!!! @+, le Toaster eleveur de nurm(je recommande Pedigree Nurm, la nourriture des champions)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Debut du Module de cerveau [ par ToasTy ]
J'ai mis le debut du module de erveau que je suis en train de faire mais je le continuerai que si j'ai des avis positifs...J'ai pas mal d'idees mais s
A propos du module de cerveau...(à lire !!!) [ par ToasTy ]
Bon j'avais pas tenu compte du module dans le projet, mais maintenant je suis en train d'arranger tout ca.Par contre j'ai besoin de plusieurs chose :
Nurmite: le module ROUTE [ par Sylderon ]
Bonjour à tous.J'ai vu récemment ce projet et décidé de vous donner un coup de main.Aussi je vous propose de m'occuper du module ROUTE pour élaborer d
.: module Abandon :. [ par El Manipulator [Le vrai Le seul L'unique ] ]
ben c'est moi, et je vous présente le nouveau module que j'ai mis tant de temps a développer. Le module Abandon.Le concept de base de ce module consis
Module ROUTE [ par Sylderon ]
Une première intégration de calcul d'itinéraire est dispo en zone download.C'est un début et je continue de travailler dessus.A+
c2i.fr - Module Route : GRRRRRRR...... [ par c2i-Richard Clark ]
Je me balade ce dimanche sur ce site du cher Nix.Je vois à ce moment le projet Nurmite dont je trouve l'idée fort sympathique .Je regarde les différen
insertion de SQL dans un module [ par Mary ]
re-bonjour...je voudrais savoir si l'insertion de SQL dans un module d'un projet en vb6 est possible...en fait vb semble reconnaître le sql qd on l'in
Constructeur dans module de classe [ par antho ]
Bonjour,Je voudrais savoir s'il est possible de passer des paramètres à un constructeur dans une classe VB. L'événement Class_initialize ne prend pas
Encore une question : sur les modules [ par Brodeur ]
Bonjour, je sais que je prends beaucoup de place dans ce forum et je suis desole mais je suis tres curieux et tres debutant aussi. Maintenant, je me d
Connection Rdo à partir d'un module [ par faf ]
URGENT MERCItt d'abord : bonne année, bon siècle, bon millénaire !je cherche à me connecter à une BDD oracle à partir d'une feuille qui appelle une fo
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|