Darwinbots Forum
Bots and Simulations => Bot Tavern => Topic started by: Martian on July 03, 2007, 05:10:51 PM
-
This is my first bot.
I did post the bot in the Bestiary but I would like some comments on this.
'Martian Tank
'By Martin Welgemoed, Martian in the DB Forum
'
'Thanks PY for simplebot tutorial
'Thanks to Elite for the counter attacking gene, the turning gene, the accuracy gene and the venom and poison tutorials
cond
*.robage 0 =
start
.tie inc
stop
cond
*.robage 1 =
start
.deltie inc
stop
Cond
*.refeye *.myeye !=
*.eye1 *.eye2 >=
*.eye1 *.eye3 >=
*.eye1 *.eye4 >=
*.eye1 *.eye5 >=
*.eye1 *.eye6 >=
*.eye1 *.eye7 >=
*.eye1 *.eye8 >=
*.eye1 *.eye9 >=
start
mult -140
stop
cond
*.refeye *.myeye !=
*.eye9 *.eye2 >=
*.eye9 *.eye3 >=
*.eye9 *.eye4 >=
*.eye9 *.eye5 >=
*.eye9 *.eye6 >=
*.eye9 *.eye7 >=
*.eye9 *.eye8 >=
*.eye9 *.eye1 >=
start
mult 140
stop
cond
*.refeye *.myeye !=
*.eye2 *.eye9 >=
*.eye2 *.eye3 >=
*.eye2 *.eye4 >=
*.eye2 *.eye5 >=
*.eye2 *.eye6 >=
*.eye2 *.eye7 >=
*.eye2 *.eye8 >=
*.eye2 *.eye1 >=
start
mult -105
stop
cond
*.refeye *.myeye !=
*.eye8 *.eye9 >=
*.eye8 *.eye3 >=
*.eye8 *.eye4 >=
*.eye8 *.eye5 >=
*.eye8 *.eye6 >=
*.eye8 *.eye7 >=
*.eye8 *.eye2 >=
*.eye8 *.eye1 >=
start
mult 105
stop
cond
*.refeye *.myeye !=
*.eye3 *.eye9 >=
*.eye3 *.eye8 >=
*.eye3 *.eye4 >=
*.eye3 *.eye5 >=
*.eye3 *.eye6 >=
*.eye3 *.eye7 >=
*.eye3 *.eye2 >=
*.eye3 *.eye1 >=
start
mult -70
stop
cond
*.refeye *.myeye !=
*.eye7 *.eye9 >=
*.eye7 *.eye8 >=
*.eye7 *.eye4 >=
*.eye7 *.eye5 >=
*.eye7 *.eye6 >=
*.eye7 *.eye3 >=
*.eye7 *.eye2 >=
*.eye7 *.eye1 >=
start
mult 70
stop
cond
*.refeye *.myeye !=
*.eye4 *.eye9 >=
*.eye4 *.eye8 >=
*.eye4 *.eye7 >=
*.eye4 *.eye5 >=
*.eye4 *.eye6 >=
*.eye4 *.eye3 >=
*.eye4 *.eye2 >=
*.eye4 *.eye1 >=
start
mult -35
stop
cond
*.refeye *.myeye !=
*.eye6 *.eye9 >=
*.eye6 *.eye8 >=
*.eye6 *.eye7 >=
*.eye6 *.eye5 >=
*.eye6 *.eye4 >=
*.eye6 *.eye3 >=
*.eye6 *.eye2 >=
*.eye6 *.eye1 >=
start
mult 35
stop
cond
*.refeye *.myeye !=
*.eye5 *.eye9 >=
*.eye5 *.eye8 >=
*.eye5 *.eye7 >=
*.eye5 *.eye6 >=
*.eye5 *.eye4 >=
*.eye5 *.eye3 >=
*.eye5 *.eye2 >=
*.eye5 *.eye1 >=
start
mult
stop
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refxpos *.refypos angle .setaim store
*.refveldx .dx store
*.refvelup 30 add .up store
stop
cond
*.eye5 0 >
*.refeye *.myeye =
start
rnd .amdx store
50 .up store
stop
cond
start
.aimdx store
stop
cond
*.nrg 5100 >
start
50 .repro store
100 .strbody store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
*.robage 50 mod = 0
start
rnd .amdx store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
start
100 .up store
stop
cond
*.shflav 0 !=
*.shflav -2 !=
start
*.shang .aimshoot store
32 .shootval store
-6 .shoot store
0 .shflav store
stop
cond
*.venom 200 <
start
100 .strvenom store
stop
cond
*.eye5 30 <
*.refeye *.myeye !=
*.refeye 0 >
start
-3 .shoot store
stop
cond
*.eye5 30 >
*.refeye *.myeye !=
start
16 .shootval store
-1 .shoot store
stop
cond
*.robage 0 =
start
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop
cond
*.poison 500 <
start
100 .strpoison store
stop
end
-
The new and improved Martian Tank 2. What do you think?
cond
*.robage 0 =
start
.tie inc
stop
cond
*.robage 1 =
start
.deltie inc
stop
cond
*.refeye *.myeye !=
*.eye1 *.eye2 >=
*.eye1 *.eye3 >=
*.eye1 *.eye4 >=
*.eye1 *.eye5 >=
*.eye1 *.eye6 >=
*.eye1 *.eye7 >=
*.eye1 *.eye8 >=
*.eye1 *.eye9 >=
start
mult -140
stop
cond
*.refeye *.myeye !=
*.eye9 *.eye2 >=
*.eye9 *.eye3 >=
*.eye9 *.eye4 >=
*.eye9 *.eye5 >=
*.eye9 *.eye6 >=
*.eye9 *.eye7 >=
*.eye9 *.eye8 >=
*.eye9 *.eye1 >=
start
mult 140
stop
cond
*.refeye *.myeye !=
*.eye2 *.eye9 >=
*.eye2 *.eye3 >=
*.eye2 *.eye4 >=
*.eye2 *.eye5 >=
*.eye2 *.eye6 >=
*.eye2 *.eye7 >=
*.eye2 *.eye8 >=
*.eye2 *.eye1 >=
start
mult -105
stop
cond
*.refeye *.myeye !=
*.eye8 *.eye9 >=
*.eye8 *.eye3 >=
*.eye8 *.eye4 >=
*.eye8 *.eye5 >=
*.eye8 *.eye6 >=
*.eye8 *.eye7 >=
*.eye8 *.eye2 >=
*.eye8 *.eye1 >=
start
mult 105
stop
cond
*.refeye *.myeye !=
*.eye3 *.eye9 >=
*.eye3 *.eye8 >=
*.eye3 *.eye4 >=
*.eye3 *.eye5 >=
*.eye3 *.eye6 >=
*.eye3 *.eye7 >=
*.eye3 *.eye2 >=
*.eye3 *.eye1 >=
start
mult -70
stop
cond
*.refeye *.myeye !=
*.eye7 *.eye9 >=
*.eye7 *.eye8 >=
*.eye7 *.eye4 >=
*.eye7 *.eye5 >=
*.eye7 *.eye6 >=
*.eye7 *.eye3 >=
*.eye7 *.eye2 >=
*.eye7 *.eye1 >=
start
mult 70
stop
cond
*.refeye *.myeye !=
*.eye4 *.eye9 >=
*.eye4 *.eye8 >=
*.eye4 *.eye7 >=
*.eye4 *.eye5 >=
*.eye4 *.eye6 >=
*.eye4 *.eye3 >=
*.eye4 *.eye2 >=
*.eye4 *.eye1 >=
start
mult -35
stop
cond
*.refeye *.myeye !=
*.eye6 *.eye9 >=
*.eye6 *.eye8 >=
*.eye6 *.eye7 >=
*.eye6 *.eye5 >=
*.eye6 *.eye4 >=
*.eye6 *.eye3 >=
*.eye6 *.eye2 >=
*.eye6 *.eye1 >=
start
mult 35
stop
cond
*.refeye *.myeye !=
*.eye5 *.eye9 >=
*.eye5 *.eye8 >=
*.eye5 *.eye7 >=
*.eye5 *.eye6 >=
*.eye5 *.eye4 >=
*.eye5 *.eye3 >=
*.eye5 *.eye2 >=
*.eye5 *.eye1 >=
start
mult
stop
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refxpos *.refypos angle .setaim store
*.refveldx .dx store
*.refvelup 30 add .up store
stop
cond
*.eye5 0 >
*.refeye *.myeye =
start
rnd .amdx store
50 .up store
stop
cond
start
.aimdx store
stop
cond
*.nrg 5100 >
start
50 .repro store
100 .strbody store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
*.robage 50 mod = 0
start
rnd .amdx store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
start
100 .up store
stop
cond
*.eye5 15 <
*.refeye *.myeye !=
*.refeye 0 >
start
-3 .shoot store
stop
cond
*.eye5 30 >
*.refeye *.myeye !=
*.refpoison *.refshell >
start
16 .shootval store
-6 .shoot store
stop
cond
*.eye5 30 >
*.refeye *.myeye !=
*.refpoison *.refshell <
start
16 .shootval store
-1 .shoot store
stop
cond
*.eye5 30 >
*.refeye *.myeye !=
*.shoot 0 =
start
16 .shootval store
-6 .shoot store
stop
cond
*.shflav 0 !=
*.shflav -2 !=
*.refeye *.myeye !=
*.refpoison *.refshell <
start
*.shang .aimshoot store
32 .shootval store
*.refshell
-1 .shoot store
0 .shflav store
stop
cond
*.shflav 0 !=
*.shflav -2 !=
*.refeye *.myeye !=
*.refpoison *.refshell >
start
*.shang .aimshoot store
32 .shootval store
*.refshell
-6 .shoot store
0 .shflav store
stop
cond
*.venom 200 <
start
100 .strvenom store
stop
cond
*.robage 0 =
start
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop
cond
*.poison 500 <
start
100 .strpoison store
stop
end
-
cond
*.refeye *.myeye !=
*.eye1 *.eye2 >=
*.eye1 *.eye3 >=
*.eye1 *.eye4 >=
*.eye1 *.eye5 >=
*.eye1 *.eye6 >=
*.eye1 *.eye7 >=
*.eye1 *.eye8 >=
*.eye1 *.eye9 >=
start
mult -140
stop
What is that gene exactly doing, is it doing anything at all.
Martin Welgemoed klinkt als een nederlandse naam, ben jij ook nederlands.?
If you don't understand that line just say no.
-
Martin Welgemoed is a Dutch name, are you from Holland?
If the conditions are met then it adds -140 to the top of the stack; later on there is a
cond
start
.aimdx store
stop
gene which takes the top number off the stack and uses that to set the .aimdx value.
It's a cost cutting method that avoids using store too often. (First used by PY).
(I should have this tested by the end of the week btw Martin, just have to test some other bots first!)
-
Martin Welgemoed klinkt als een nederlandse naam, ben jij ook nederlands.?
No, I'm not Dutch. I'm Afrikaans which is close to Dutch, so I can understand a (very small) amount of Dutch.
"Hierdie sin is Afrikaans. Sien jy wat ek bedoel?" This is an Afrikaans sentence.
It seems to work very well when *.refxpos *.refypos angle .setaim store is added, otherwise there is a bit of trouble hitting small bots.
I should have this tested by the end of the week btw Martin, just have to test some other bots first!
OK thanks.
-
Do you speak English? That was an English sentence. Just say no if you can't read it.
-
Okay, thanks for the explanation. I did'nt had a clue what it was doing.
"Hierdie sin is Afrikaans. Sien jy wat ek bedoel?" This is an Afrikaans sentence.
Deze zin is Afrikaans. Zie jij wat ik bedoel?
This sentence is african. Do you see what I mean?
Am I right. African is just old dutch. Being a former colonie. This gives an idea how much the languege has changed in the jears. It look a little like Frysk but then a lot more closer to dutch.
Do you speak English? That was an English sentence. Just say no if you can't read it.
Wat zeg nu wel ooit allemaal, zit je mij nu uit te lachen?
Ce que tu, dis es tu ris à moi?
Was sagst du, bist du lachen an mir?
-
Wat zeg nu wel ooit allemaal, zit je mij nu uit te lachen?
No, I'm not laughing at you.
Ce que tu, dis es tu ris à moi?
Was sagst du, bist du lachen an mir?
I don't speak French or German.
-
Congrats on your bot, Martian. When I ran it, it got stopped by excalibur, but I think it will go farther if you get the venom working properly. When firing venom, you need to specify how much venom is actually being used in .shootval
- by the way, blue on blue can fool refeye conspec recognition, so that may be a bit of a problem for you.
-
Congrats on your bot, Martian. When I ran it, it got stopped by excalibur, but I think it will go farther if you get the venom working properly. When firing venom, you need to specify how much venom is actually being used in .shootval
Thanks a LOT. Now Martian Tank 3 is #2 on my compter . I'm now trying to fine tune it so that it beats excalibur 1.12
-
If you do get it past Excalibur 1.12, be sure to grab a copy Aura, which is the current f2 league title holder
I think the up to date league tables and all the bots in the league are in the respective threads.
-
Here's Martian Tank 3
I've improved the venom genes and added a leach gene.
It's still stopped by Excalibur 1.12
'Martian Tank 3
'By Martin Welgemoed, Martian in the DB Forum
'
'Please comment on this bot.
'
'Thanks PY for simplebot tutorial
'Thanks to Elite for the counter attacking gene, the turning gene, the accuracy gene and the venom and poison tutorials
'Thanks to Abyaly for helping with the venom
'
'Designed for 2.43
'Designed for F2
'Leaching
cond
*.tiepres 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
1000 .tieval store
stop
'Delete birthtie
cond
*.robage 0 =
start
.tie inc
.shoot .memloc store
.shoot .vloc store
-2 .venval store
.shoot .ploc store
stop
cond
*.robage 1 =
start
.deltie inc
stop
'Get rid of waste
cond
*.waste 500 >
start
*.waste .shootval store
-4 .shoot store
0 .shflav store
stop
'Search for a target
cond
*.refeye *.myeye !=
*.eye1 *.eye2 >=
*.eye1 *.eye3 >=
*.eye1 *.eye4 >=
*.eye1 *.eye5 >=
*.eye1 *.eye6 >=
*.eye1 *.eye7 >=
*.eye1 *.eye8 >=
*.eye1 *.eye9 >=
start
mult -140
stop
cond
*.refeye *.myeye !=
*.eye9 *.eye2 >=
*.eye9 *.eye3 >=
*.eye9 *.eye4 >=
*.eye9 *.eye5 >=
*.eye9 *.eye6 >=
*.eye9 *.eye7 >=
*.eye9 *.eye8 >=
*.eye9 *.eye1 >=
start
mult 140
stop
cond
*.refeye *.myeye !=
*.eye2 *.eye9 >=
*.eye2 *.eye3 >=
*.eye2 *.eye4 >=
*.eye2 *.eye5 >=
*.eye2 *.eye6 >=
*.eye2 *.eye7 >=
*.eye2 *.eye8 >=
*.eye2 *.eye1 >=
start
mult -105
stop
cond
*.refeye *.myeye !=
*.eye8 *.eye9 >=
*.eye8 *.eye3 >=
*.eye8 *.eye4 >=
*.eye8 *.eye5 >=
*.eye8 *.eye6 >=
*.eye8 *.eye7 >=
*.eye8 *.eye2 >=
*.eye8 *.eye1 >=
start
mult 105
stop
cond
*.refeye *.myeye !=
*.eye3 *.eye9 >=
*.eye3 *.eye8 >=
*.eye3 *.eye4 >=
*.eye3 *.eye5 >=
*.eye3 *.eye6 >=
*.eye3 *.eye7 >=
*.eye3 *.eye2 >=
*.eye3 *.eye1 >=
start
mult -70
stop
cond
*.refeye *.myeye !=
*.eye7 *.eye9 >=
*.eye7 *.eye8 >=
*.eye7 *.eye4 >=
*.eye7 *.eye5 >=
*.eye7 *.eye6 >=
*.eye7 *.eye3 >=
*.eye7 *.eye2 >=
*.eye7 *.eye1 >=
start
mult 70
stop
cond
*.refeye *.myeye !=
*.eye4 *.eye9 >=
*.eye4 *.eye8 >=
*.eye4 *.eye7 >=
*.eye4 *.eye5 >=
*.eye4 *.eye6 >=
*.eye4 *.eye3 >=
*.eye4 *.eye2 >=
*.eye4 *.eye1 >=
start
mult -35
stop
cond
*.refeye *.myeye !=
*.eye6 *.eye9 >=
*.eye6 *.eye8 >=
*.eye6 *.eye7 >=
*.eye6 *.eye5 >=
*.eye6 *.eye4 >=
*.eye6 *.eye3 >=
*.eye6 *.eye2 >=
*.eye6 *.eye1 >=
start
mult 35
stop
cond
*.refeye *.myeye !=
*.eye5 *.eye9 >=
*.eye5 *.eye8 >=
*.eye5 *.eye7 >=
*.eye5 *.eye6 >=
*.eye5 *.eye4 >=
*.eye5 *.eye3 >=
*.eye5 *.eye2 >=
*.eye5 *.eye1 >=
start
mult
stop
cond
*.eye5 0 >
*.refeye *.myeye =
start
mult 900 rnd 100 add
100 .up store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
*.robage 50 mod = 0
start
mult 900 rnd 100 add
stop
'If I'm forced by poison to shoot out energy
'make sure it doesn't hit an enemy
cond
-2 *.shoot =
0 *.eye5 !=
*.refeye *.myeye !=
start
mult
500 .up store
mult 900 rnd 100 add
stop
'reproduce
cond
*.nrg 5100 >
start
mult 628 50 inc
50 .repro store
100 .strbody store
stop
cond
*50 0 >
start
mult 628 50 dec
stop
'This does the amount of rotation placed on the stack
cond
start
.aimdx store
stop
cond
*.eye1 = 0
*.eye2 = 0
*.eye3 = 0
*.eye4 = 0
*.eye5 = 0
*.eye6 = 0
*.eye7 = 0
*.eye8 = 0
*.eye9 = 0
start
100 .up store
stop
'Chase the target
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refxpos *.refypos angle .setaim store
*.refveldx .dx store
*.refvelup 30 add .up store
stop
'Shoot the target
cond
*.eye5 25 >
*.refeye *.myeye !=
*.memval -2 !=
*.refeye 0 !=
start
50 .shootval store
-3 .shoot store
stop
cond
*.eye5 25 >
*.refeye *.myeye !=
*.memval -2 sub sgn abs 1 sub -1 mult *.refeye 0 sub sgn abs 1 sub -1 mult add sgn abs 1 =
*.refpoison *.refshell =>
start
16 .shootval store
-6 .shoot store
stop
cond
*.eye5 25 >
*.refeye *.myeye !=
*.memval -2 sub sgn abs 1 sub -1 mult *.refeye 0 sub sgn abs 1 sub -1 mult add sgn abs 1 =
*.refpoison *.refshell <
start
16 .shootval store
-1 .shoot store
stop
'Return fire
cond
*.shflav 0 !=
*.refpoison *.refshell <
*.memval -2 =
start
*.shang .aimshoot store
32 .shootval store
-1 .shoot store
0 .shflav store
stop
cond
*.shflav 0 !=
*.refpoison *.refshell >
*.memval -2 =
start
*.shang .aimshoot store
32 .shootval store
-6 .shoot store
0 .shflav store
stop
cond
*.shflav 0 !=
*.memval -2 !=
start
*.shang .aimshoot store
25 .shootval store
-3 .shoot store
0 .shflav store
stop
'Defense
cond
*.venom 250 <
*.nrg 1000 >
start
50 .strvenom store
stop
cond
*.poison 500 <
*.nrg 1000 >
start
50 .strpoison store
stop
cond
*.shell 300 <
*.nrg 1000 >
start
50 .mkshell store
stop
'Prevent fixing
cond
*.fixed 1 =
start
.fixpos dec
stop
end
-
by the way, fixpos can actually store values other than 0 and 1. You could, for example, put 1000 in fixpos. How do you think your bot would react?
-
also dont post dna in the beistery I kno you have also done that but you shoudn't post dna here just put a link to it
-
also dont post dna in the beistery
You have that backwards from what you mean, right? I'm not a huge stickler about the bestiary/bot tavern distinction, other than that the first post in the bestiary should be a bot.
-
also dont post dna in the beistery
You have that backwards from what you mean, right? I'm not a huge stickler about the bestiary/bot tavern distinction, other than that the first post in the bestiary should be a bot.
Okay first, fulizer this bot has already been posted in the beastery, and how can you talk about a bot without the dna-file.
Well, I see the beastery as a place to post bot who ar strong or special or anything remarkable, and the bot tavern more something like a work in process, I need help, kind of thing.