Difference between revisions of "Sexual Reproduction"

From WikiManual
Jump to: navigation, search
Line 15: Line 15:
 
Here is a version of Animal_Minimalis that supports Sexual Reproduction:
 
Here is a version of Animal_Minimalis that supports Sexual Reproduction:
  
==Complete Bot==
 
  
'Animal_Minimalis
+
'Animal_Minimalis
'By: Botsareus based on by Numsgil
+
'By: Botsareus based on by Numsgil
'Good for mutation sims and for
+
'Good for mutation sims and for
'newbies to see how a basic bot works.
+
'newbies to see how a basic bot works.
'Contains everything necessary for it
+
'Contains everything necessary for it
'to survive and reproduce.
+
'to survive and reproduce.
'Sexrepro version
+
'Sexrepro version
  
' Gene 1 Food Finder
+
'Gene 1 Food Finder
cond
+
cond
 
  *.eye5 0 >
 
  *.eye5 0 >
 
  *.refeye *.myeye !=
 
  *.refeye *.myeye !=
start
+
start
 
  *.refveldx .dx store
 
  *.refveldx .dx store
 
  *.refvelup 30 add .up store
 
  *.refvelup 30 add .up store
stop
+
stop
  
' Gene 2 Mate Finder
+
'Gene 2 Mate Finder
cond
+
cond
 
  *.eye5 0 >
 
  *.eye5 0 >
 
  *.refeye *.myeye =
 
  *.refeye *.myeye =
 
  *.nrg 20000 >
 
  *.nrg 20000 >
start
+
start
 
  *.refveldx .dx store
 
  *.refveldx .dx store
 
  *.refvelup 30 add .up store
 
  *.refvelup 30 add .up store
stop
+
stop
  
' Gene 3 Eat Food
+
'Gene 3 Eat Food
cond
+
cond
 
  *.eye5 50 >
 
  *.eye5 50 >
 
  *.refeye *.myeye !=
 
  *.refeye *.myeye !=
start
+
start
-1 .shoot store
+
-1 .shoot store
 
  *.refvelup .up store
 
  *.refvelup .up store
stop
+
stop
  
' Gene 4 Shoot Sperm
+
'Gene 4 Shoot Sperm
cond
+
cond
 
  *.eye5 50 >
 
  *.eye5 50 >
 
  *.refeye *.myeye =
 
  *.refeye *.myeye =
 
  *.nrg 20000 >
 
  *.nrg 20000 >
start
+
start
-8 .shoot store
+
-8 .shoot store
 
  *.refvelup .up store
 
  *.refvelup .up store
stop
+
stop
  
' Gene 5 Avoiding Family
+
'Gene 5 Avoiding Family
cond
+
cond
 
  *.eye5 0 =
 
  *.eye5 0 =
 
  *.refeye *.myeye = or
 
  *.refeye *.myeye = or
 
  *.nrg 20000 < and 'don't spin if time for sex repro
 
  *.nrg 20000 < and 'don't spin if time for sex repro
start
+
start
 
  314 rnd .aimdx store
 
  314 rnd .aimdx store
stop
+
stop
  
' Gene 6 Look for Family
+
'Gene 6 Look for Family
cond
+
cond
 
  *.refeye *.myeye !=
 
  *.refeye *.myeye !=
 
  *.nrg 20000 >
 
  *.nrg 20000 >
start
+
start
 
  314 rnd .aimdx store
 
  314 rnd .aimdx store
100 rnd .up store
+
100 rnd .up store
stop
+
stop
  
' Gene 7 Reproduce
+
'Gene 7 Reproduce
cond
+
cond
 
  *.nrg 20000 >
 
  *.nrg 20000 >
start
+
start
 
  10 .sexrepro store 'changed to sex repro
 
  10 .sexrepro store 'changed to sex repro
stop
+
stop
  
end
+
end

Revision as of 11:17, 22 June 2013

The main problem with implementing sexual reproduction is that since science doesn't even know why actual organisms have sex (there are some theories), so we aren't sure what we really need to implement, if we can take any shortcuts, etc.

There are several, possibly inter-related features of organisms that have sex.

  • Dipoidity - Although diploidness is the most common, many funguses even have up to dozens of each chromosome.
  • Dominant, Co Dominant and Recessive expression - Most real life genes are either dominant, recessive, or more commonly co dominant. Is this required for sexual reproduction to be effective?
  • Crossing Over - A shuffling of the parents' DNA before gifting to the child. Does crossing over need to happen between the parents' DNA itself, or can crossing over work between haploid strains of both parents?
  • Chromosomes - Physically seperated sections of DNA. Perhaps to seperate certain genes from being able to cross over with each other? Perhaps totally pointless? If so why do organisms maintain it?

Because relatively little is known for sure about the role each has in sex and evolution, the safest (if most intensive) course of action is to model all of them. "How" becomes a hotly debatable question.


For simplicity Botsareus created a simple cross over algorithm to implement sex repro for version 2 of DarwinBots:

Here is a version of Animal_Minimalis that supports Sexual Reproduction:


'Animal_Minimalis
'By: Botsareus based on by Numsgil
'Good for mutation sims and for
'newbies to see how a basic bot works.
'Contains everything necessary for it
'to survive and reproduce.
'Sexrepro version
'Gene 1 Food Finder
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refveldx .dx store
*.refvelup 30 add .up store
stop
'Gene 2 Mate Finder
cond
*.eye5 0 >
*.refeye *.myeye =
*.nrg 20000 >
start
*.refveldx .dx store
*.refvelup 30 add .up store
stop
'Gene 3 Eat Food
cond
*.eye5 50 >
*.refeye *.myeye !=
start
-1 .shoot store
*.refvelup .up store
stop
'Gene 4 Shoot Sperm
cond
*.eye5 50 >
*.refeye *.myeye =
*.nrg 20000 >
start
-8 .shoot store
*.refvelup .up store
stop
'Gene 5 Avoiding Family
cond
*.eye5 0 =
*.refeye *.myeye = or
*.nrg 20000 < and 'don't spin if time for sex repro
start
314 rnd .aimdx store
stop
'Gene 6 Look for Family
cond
*.refeye *.myeye !=
*.nrg 20000 >
start
314 rnd .aimdx store
100 rnd .up store
stop
'Gene 7 Reproduce
cond
*.nrg 20000 >
start
10 .sexrepro store 'changed to sex repro
stop
end