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 / Exemple :
'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)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.