Author Topic: Hello.  (Read 2468 times)

Offline Esrever

  • Bot Neophyte
  • *
  • Posts: 4
    • View Profile
Hello.
« on: April 04, 2005, 12:08:06 PM »
I found this program about a week ago, and I became interested in the league competition. I read some of the tutorials and I decided to make a short-bot. I'm posting the DNA here.

'Malificus Minimus

' Gene 1 Catch
cond
  *.eye5 0 >
  *.refeye *.myeye !=
start
  *.refveldx .dx store
  *.refvelup 40 add .up store
stop

' Gene 2 Eat Vegs
cond
  *eye5 40 >
  *refeye 0 =
start
  -1 .shoot store
  *.refvelup 5 add .up store

' Gene 3 Infect Enemies
  *.eye5 40 >
  *.refeye 0 >
  *.refeye *.myeye !=
start
  0 .nrg store
  *.thisgene .mkvirus store
  40 .vshoot store
stop

' Gene 4 Avoid/Search
cond
  *.eye5 0 =
  *.refeye *.myeye =
start
  471 rnd .aimdx store
stop

' Gene 5 Reproduce
cond
  *nrg 8000 >
start
  50 .repro store
stop

end

The Catch and Avoid/Search genes and part of the Eat Vegs gene were taken from Animalis Minimis. My main question is about the virus. I haven't had the time to test it, but it should work. If it does, can I use it in competition? It seems like a pretty unfair attack, and the only way I can see to defend against it would make the bot almost immortal. Any other advice would be greatly appreciated.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2554
    • View Profile
    • http://kuro-tejina.com
Hello.
« Reply #1 on: April 04, 2005, 12:33:47 PM »
Hi Esrever and welcome to DarwinBots.

Well done for making a bot so soon. Is it V2.36 compatible? or fully developed in 2.35?

Could you please post your new bot in the Beastiary and upload the text file also.

If you are having difficulty then just let me know and I will take care of it for you.

It would also be greatly appreciated if you could make an entry into the poll question about how you found DB
« Last Edit: April 04, 2005, 12:38:26 PM by PurpleYouko »
There are 10 kinds of people in the world

Those who understand binary.

and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7714
    • View Profile
Hello.
« Reply #2 on: April 04, 2005, 03:35:30 PM »
Hey, it looks like you're missing a stop statement in gene 2.  That could be giving you some weird problems  :wacko:

The virus won't work for a couple of reasons.

1.  *.thisgene .mkvirus store means that you will make the current gene into a virus.  Your current gene has three conditions, all of which must activate for the infected bot to run the viral code.

2.  0 .nrg store won't hurt a bot.  It will just make the bot think that it has no energy left for the rest of the cycle.  It's actual nrg levels will remain intact.

Also, in my experience, a virus that kills instantly doesn't have a chance to spread itself, making it a weapon of limited use.

3.  Viruses take quite a while to actually build.  Once you .mkvirus you need to wait for *.vtimer to count down.

Viruses are confusing, I know.  PY wrote up a quick tutorial on them here.

And welcome to Darwnbots!

Offline Esrever

  • Bot Neophyte
  • *
  • Posts: 4
    • View Profile
Hello.
« Reply #3 on: April 04, 2005, 10:15:42 PM »
It works now! :D  But only some of the time! :(

I was able to create a working virus. I thought about what you said about setting .nrg to zero, and realized that I could trick robots into reproducing. The effect the virus has is very cool looking, and nearly crashed my computer once.

The problem is that the virus doesn't always work. Most of the time nothing happens except the infected robot just shoots off viruses. Also, it once created a super I Venia. I  tried the robot out in F1 challenge, and beat Flamma and Perservans. I won one match against Venia, and the second round came down to a single Venia. The robots kept ganging up on the Venia, but kept getting destroyed. After about 30 minutes and still no end. I checked the Venia's health and saw that it now had 30000+ life and 213 genes. For some reason the 0.5 in the virus had switched to 0, so the Venia kept gathering life without any way for me to kill it.

Anyway, thank you for the help. I attached my new robot

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7714
    • View Profile
Hello.
« Reply #4 on: April 04, 2005, 10:33:31 PM »
Closer, but still no cigar.

For repro, as with all memory, you must store whole numbers.  So if I understand what you're trying to do, you need to do 50 .repro store

As far as the virus itself, it's not bad but you might want to consider a stronger vshoot command.  Spanish Conquistador uses a virus that has a life of its own, spreading far and wide on its own to cause massive damage.

So this is what I would do:

cond
  *.myeye 4 !=
start
  50 .repro store
  10000 .nrg store
  *.thisgene .mkvirus store
  1000 .vshoot store
stop

This will make the virus much stronger, flying across more of the screen and so being more likely to find a host.
« Last Edit: April 04, 2005, 10:35:09 PM by Numsgil »

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Hello.
« Reply #5 on: April 05, 2005, 10:06:37 AM »
Nice bot Esrever, and welcome to Darwinbots! :)
I will add this bot to the shortbotleague with the next update (hopefully before 10th april; currently very busy with school...)

Henk

Offline Esrever

  • Bot Neophyte
  • *
  • Posts: 4
    • View Profile
Hello.
« Reply #6 on: April 06, 2005, 12:15:08 PM »
Ok, I tested Igni out with the new DNA in the F1 League, and it got destroyed by tie-feeders. I decided I'm going to make Igni a tie feeder too. I attached the new DNA to my post. I typed this up during break at school, so some periods and stops might be missing. Again, any help sorting out the DNA and advice is greatly appreciated.

I was looking through the tips and hints forum and saw the "using ties cheaply" post. Does the number reset to zero when the tie is broken or does it keep going up. Also, I know there's a way to transfer info and genes to other bots through ties, but I don't know the method. Can someone explain to me how to do that?
« Last Edit: April 06, 2005, 04:28:34 PM by Esrever »

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
Hello.
« Reply #7 on: April 06, 2005, 07:48:51 PM »
nice bot, you should add some body managment to it though, because each time the robot reproduces it loses some of its body to its offspring and as body is linked to the amount of energy it can get from prey it is important to build this up. After a few generations your bots just become quite puny. To build body up use a gene like this

cond
  *.nrg 1000 >
start
  100 .strbody store
stop

this will take a 100 points of energy and convert it into 10 body points, then when energy gets low and you need to get some of it back from body use

cond
  *.nrg 800 <
  *.body 20 >
start
  10 .fdbody store
stop

Too stop other bots tieing to your bot you can use slime, to stop them draining your energy there are some good leach genes out there take a look at some of the top bots there are a treasure trove of ideas there

Quote
Does the number reset to zero when the tie is broken or does it keep going up.

inc increases the number by one each time, its not reset unless you specifically tell it to

to transfer info to the other bot, you use .tieloc to specify the memory location of the other bot that you want to store information too

address .tieloc store

to specify the value to store in that location, use

yourvalue .tieval store

so for example you could use

.repro .tieloc store
20 .tieval store

this stores 20 in the other bots repro and he will spit out a baby

as for transfering genes, Im not sure if that is possible, and you could also add some shooting and targeting to your bot, the more methods of getting energy the better, hope that helps

In DB if you go to help in the toolbar and go to DNA help or use ctrl D, that will give you information on most of the DNA commands, what they do and how to use them
« Last Edit: April 06, 2005, 07:54:40 PM by Light »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2554
    • View Profile
    • http://kuro-tejina.com
Hello.
« Reply #8 on: April 06, 2005, 10:55:33 PM »
Don't forget to address the tie also.
When you create a tie by storing a number into .tie, that tie retains this value as an address. This is often called the "tie phase"
To address a tie use...

tieaddress .tienum store.
There are 10 kinds of people in the world

Those who understand binary.

and those who don't

:D PY :D

Offline Esrever

  • Bot Neophyte
  • *
  • Posts: 4
    • View Profile
Hello.
« Reply #9 on: April 07, 2005, 11:49:03 AM »
Ok, I'm uploading the (probably) final version of Igni. I added body, slime, and poison at robage 1 and it refreshes when the bot chases. Unless there are any major bugs or problems, this is going to be the version I'm entering into the Shortbots League.
« Last Edit: April 07, 2005, 12:13:49 PM by Esrever »

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Hello.
« Reply #10 on: April 11, 2005, 10:11:37 AM »
Esrever, your bot contained two bugs/typo's.

I've corrected those and will be adding the fixed version to the SB-league.

running a sim with it now... cool bot!

Hmmm... Since I'm still not able to add attachments to boards other then the SB board, I can't post the fixed version of Asterus_Igni. Ah well, just do it the old fashioned way...


'Asterus Igni
'By Esrever
'~~~~~~~~~~~~
'Bot Designed for SB League
'Two minor bugs fixed by Henk

' Gene 1 Catch and
' Fight Prep
cond
 *.eye5 0 >
 *.refeye *.myeye !=
 *.numties 0 =
start
 *.refveldx .dx store
 *.refvelup 20 add .up store
 200 *.poison sub .strpoison store
 75 *.slime sub .mkslime store
 10 *.body sub 10 mult .strbody store
stop

' Gene 2 Tie Up
cond
' *,numties 0 = and (this as the original condition with a bug)
 *.numties 0 = and ' fixed
 *.eye5 40 > and
 *.refeye *.myeye != and
 *.eye5 77 != and
 *.robage 0 = or
start
 1 .tie store
 1 .readtie store
stop

' Gene 3 Eat Enemies
cond
 *.trefeye *.myeye !=
start
 1 .tienum store
 -1000 .tieval store
 -1 .tieloc store
stop

' Gene 4 Anti-Cannibalism
' and Birth Setup
cond
 *.trefeye *.myeye =
 *.robage 1 = or
start
 1 .deltie store
 200 *.poison sub .strpoison store
 75 *.slime sub .mkslime store
 10 *.body sub 10 mult .strbody store
stop

' Gene 5 Avoid/Search
cond
 *.eye5 0 =
 *.refeye *.myeye = or
start
 471 rnd .aimdx store
stop

' Gene 6 Reproduce
cond
 *.nrg 4000 >
start
 60 .repro store
stop

' added an end command
end