Darwinbots Forum
Bots and Simulations => DNA - General => Topic started by: Anazasi on July 05, 2007, 05:43:11 PM
-
Hi everyone, I'm pretty new at this of DArwin Bots and I wold like to know if there is anyway I can make a bot to rewrite one of his own genes or add a new one?
is delgene the only way of modifying my DNA?
I hope not
(english is a foreign language for me so excuse me if I dont use it preperly)
-
Bots have very little control over modifying their own DNA. However, since sysvars are all basically numbers, and the values they receive are numbers, it's possible to set up a bot that can modify its workings to a point.
Check out this experiment (http://www.darwinbots.com/Forum/index.php?showtopic=2090).
And, of course, mutations can create random changes in the DNA to provide diversity for natural selection.
-
You can duplicate genes using viruses. Has to be co-ordinated with another bot though, even then its pretty hard.
Had some success using them for horizontal gene transfer, producing more novel evolution behavior.
Still, like Nums was saying its easier to simply change the value of the variables/phenotype of the bot; rather than messing with it's base code/dna.
-
thats ok, but I really need to change DNA, it seems that I'll have to tell you mi idea for winning the league, I already make it work but it isn as good as it could be if I could change the dna.
I'm trying to build a chameleon, a bot that would make his myeye equeal to refeye, and since everyone uses this to identify enemies it would be untouchable.
I already make it posible adding this gene a los of times at the end of the bots DNA
cond
*.eye1 0 >
start
stop
and this other gene deletes them. leaving stoping if the enemy has less than 4 eye calls because it uses these for eating and moving.
cond
*.refeye *.myeye <
*.refeye 4 > and
start
*.genes .delgene store
stop
there are two problems with this way of doing it:
1 it takes a cicle to delete a gene so they have to be as few as posible
2 I cant know how many eye calls have an enemy (actually I can jeje if I look at the bots in the league) son it has to be as many as posible.
the only way os solving this is if I could write all the needed eye calls in one cicle.
I hope you understand what I'm saying
MINI CHAMELEON
'made from animal minimalis
'by anazasi
'genes 1 to 4 animal minimalis modified to identify by aimdx instead of eye
cond
*.eye5 0 >
*.refaimdx *.myaimdx !=
start
*.refveldx .dx store
*.refvelup 30 add .up store
stop
cond
*.eye5 50 >
*.refaimdx *.myaimdx !=
start
-1 .shoot store
*.refvelup .up store
stop
cond
*.eye5 0 =
*.refaimdx *.myaimdx = or
start
314 rnd .aimdx store
stop
cond
*.nrg 15000 >
start
30 .repro store
stop
'gene 5 gene deletion gne
cond
*.refeye *.myeye <
*.refeye 3 > and
start
*.genes .delgene store
stop
' gene 6 and later fake eye calls
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
cond
*.eye1 0 >
start
stop
end
-
Take a look at blue on blue in the F2 Bestiary, it changes it's own DNA.
http://www.darwinbots.com/Forum/index.php?showtopic=1463 (http://www.darwinbots.com/Forum/index.php?showtopic=1463)
-
it seems that I wasnt the first with that idea
-
-
-
Heh
-
Also, you could set up some sort of dynamic gene that uses the *
It would probably be difficult and not incredibly useful, but it would be impressive.