Darwinbots Forum
Bots and Simulations => DNA - General => Topic started by: MrMound on October 07, 2005, 10:40:09 PM
-
so I had an idea to make a bot that lures its prey into it. is there a way to make a packet of energy a bot drops stay where it is and not go away. make the energy like bait so a bot could attack from behind or somthing to that effect.
-
Two ways I'd see to do this:
1. With the egrid.
2. With "mines", like I outlined in the "shots stuff" thread in suggestions.
-
soo the mines are in the process of being programmed? any ideas how long it will be untill that function is usable
I left right when the e grid was being desigened(or a little after that) so I don't know really what it is or how to use it. is it in the wiki tutorial somewhere?
-
Both aren't implemented yet. The ideas in the shots thread need to be discussed and a general concencus reached one way or another.
-
ok I guess that bot idea will have to wait then
-
Try making a fast robot that reproduces with less energy , and compicatizes your opponent.
-
compicatizes? Root word: compicate? Um... (http://dictionary.reference.com/search?q=compicate).
-
Had to break out microsoft word: Kamikazes
-
Ah. Should ahve guessed. :rolleyes:
Bots with english = bad.
Bots with Japanese = :banghead:
-
How would you Kamikaze another bot, and what does that have to do with luring your prey to you?
-
I was kindof wondering that to
-
I think the idea is that you have two different kind children.
Real descandants and baits.
You produce baits, wait near them and when another bot approaches to eat the bait, the bait weakens the attacker(poison. shots etc) and after the enemy comsumed the bait ,the trapper knows an enemy attacked and comes to finish him of.
thats what I think he means
Or he could mean to produce low energy swarms that can sacrifice most of their members, sacrifice a few so the rest get the big catch.
-
so are you saying to make a 2 bot multibot and when one of the bots in the chain gets attaccked make it transfer most of it energy to the other one and make poison,venom, ect. and when the second bot recocnises the other bot is dead it goes in for the kill
-
It wouldn't even need to be a multibot. You could just have the larger member hide in the corner watching a smaller bot sort of just mvoe around to attract soemthing to eat. When something too large comes by, the smaller bot asks for help and the larger bot comes to make a meal.
-
Seems overkill now that I think of it though. Most bots aren't smart enough to see that something is "too large" to eat. They're kind of dumb that way.
-
one thing how would it send the message. would a virus work? and is there a way to make the big bot know where the little bot is
-
On the other hand, If we make energy mines, how will the energy mine send a message. We are getting off topic here.
Or now it's: a magical energy shot mine that does not attack the perosn who placed it? Yea, then it needs done some thinking. Because if we make the bot that checks if it is safe to attack. Somebody might evolve a way to mimic the signature.
-
The big bot could keep the small bot in it's eye5. Then the little bot can communicate with the big bot using in/out.
Bots: We're discussing your idea right now, of having another smaller bot as bait. Damnit pay attention. Shots do not collide with the bots that shoot them, I assume that would apply to mines as well.
-
My idea was actualy to have a small bot as a suiside mine. It theoraticaly should take out anything by itself that a mine can take out.
This bait stuff in interesting, but not my original idea...
-
Then that's a new idea, and you should preface it by saying so.
We can't just guess at these things, you know.
-
whats in/out youve got to remembre my incompetence in db language
-
Ah, okay.
*.in1 and *.in2 read in values from *.out1 and *.out 2 from the bot in your eye5. *.out1 and *.out2 can be written to like regular variables.
5 .out1 store
Would have 5 display in a bot's *.in1 whenever they look at you.
-
Yep, a new killer line from Num
Ah, okay.
Hey, give the guy credit , he still did not ban me and is the only one who has enough to actualy figure out the entire DB program and keep it in his head.
-
I had an idea of simply making soldier bots at one time, one bot would occasionally be selected to stop reproducing and run around simply attacking enemies. The soldier didn't really have any additional abilities it'd just gain massive amounts of strength and nrg. Was pretty cool, I had a version of The One defeat it's older ancestor.
-
if I wanted to make gene five be deleted on my robots 100 cycle since he was born would the code look like this
cond
*.roboage != 100
start
5.delgene
stop
-
Wouldn't that delete on any age except 100? I think you'd need
cond
*.robage 100 =
start
5 .delgene store
stop
-
whats the code for fix position?
-
1 .fixpos store
causes you to fix position. However:
*.fixed tells you if you are presently fixed or not (1 = fixed, 0 = not)
-
how do you unfix your self
and why wont this gene work then
cond
*.numtie >= 1
start
1 .fixpose store
stop
-
hmm first does >= work? never tried, just use >
second
*.numtie > 0 is wrong it must be
*.numtie 0 >
third
1 .fixpose store
the 1 has to be a 0 and its fixpos not fixpose
0 .fixpos store
fourth
numties not numtie
so it must be
cond
*.numties 0 >
start
0 .fixpos store
stop
-
still doesn't work
-
it's .fixpos, not .fixpose
-
heres the gene thats not working
cond
*.numtie 0 >
start
0 .fixpos store
stop
I want this gene to tell my bot to stop when it ties on to food. I also want this gene to make any other bots tied onto me to stay still wile they are (bots of my own species).
heres the bot if you want to look at the whole thing to see if its something else thats making that bot not work.
-
0 .fixpos store unfixes your position.
1 (in fact, I think any non zero value) .fixpos store fixes your position.
That should resolve it.
Bot's looking good.
-
Also its *.numties not *.numtie
-
cond
*.multi = 1
start
99% sharenrg
1% sharewaste
stop
this gene shoud be
cond
*.multi 1 =
start
99 .sharenrg store
1 .sharewaste store
stop
cond
*.eye5
0
>
*refaimdex
1
=
start
1 .tie
stop
and this should be
cond
*.eye5 0 >
*.refaimdx 1 =
start
1 .tie
stop
-
I thought he wanted to unfix it ^^, ahh well my bad.
-
how do you unfix your self
and why wont this gene work then
cond
*.numtie >= 1
start
1 .fixpose store
stop
Because there are no such commands as fixpose or numtie.
Try fixpos and numties.
Does anyone these days know how to use the robot data panel these days? <_<
Just double click your bot and click the "show DNA" tab.
Compare your DNA to the text file for differences. If anything shows up as a zero in the DNA panel then it is spelled wrong.
If a whole gene is screwed up then its most likely a missed out cond, start or stop.
These are your basic debugging tools.
-
Someone (else) should start on a IDE for bot programming. Something that would color in the appropriate words as you type, and you could "compile" the code (basically check for missing stops/misspells/etc.)
-
that would help me out a lot if someone made one of those.
-
I want my bots to move to the coridinates (0,0) how can I do this. I know you can see if your bot is at a x or y pos but can you tell it to go to a specific one or does it have to move randomly about untill it gets to the right coordinates?
-
You need to do an "angle" to get it.
Somthing like
0 .myx sub 0 .myy sub angle .myaim sub .aimdx store
I beat I got the syntax wrong.
-
WAY overcomplicated. Heading for a specific position with know X and Y coordinates is really simple.
It's as simple as this..
Xcoordinate Ycoordinate angle .setaim store
The program already knows your present coordinates so all you need is the destination.
PS it's "angle" not "angel"
Angels look like this :bigginangel:
-
so the gene would look like this
cond
start
Xcoordinate Ycoordinate angle .setaim store
stop
-
yep, that'd get you pointed in the right direction.
You might want to add a condition to that so it only activates when you want it (otherwise you're always pointed towards (xcoord, y coord)
-
Have a look at my ant-bots in the "interesting behaviour" section of the beastiary.
-
[CODE]
cond
*.roboage 3 <
start
0 0 angle .setaim store
stop[CODE]
so this would make my robot go to 0 0 when he was born?
(I just want to make sure this is right because its a key gene in my bot)
-
It won't make him GO to 0,0.
It will make him FACE the coords 0,0 (top left corner I think)
-
Yes, you'll need to use the distance operator (dist I think) to see when you actually reach 0,0.
-
cond
*.roboage 3 <
start
0 0 angle .setaim store
50 .up
stop
so his will make him go to 00
-
Move towards it yes. But he could be way at (a billion, a billion) and so 50 .up might not be enough.
I'd do something like:
cond
0 0 dist 200 >
start
0 0 angle .setaim store
10 .up store
stop
feel free to change 200 with whatever other sort of radius you want to use. Remember that most bots have a radius of like 60, so the closest a bot can ever really get to 0,0 would be like (60,60).
-
all right thaks guys hopfully this will make my bot work better
-
A more energy efficient method might be:
cond
0 0 dist 200 >
start
0 0 angle .setaim store
10 .velup sub 0 floor .up store
stop
-
Thats only if you run it in 2.4
for others try
cond
start
0 0 angle .setaim store
0 0 dist N div .up store
stop
end
If you know a good number for "N" now..., it problebly won't work anyway. I have no idea how to make a robot not over shoot its target location.
-
Actually that gene would work in anything post 2.36 I beleive.
-
It could be a little expensive though.
0 0 dist 10 div .up store
This will accelerate toward the coords at a rate of 1/10 of the distance per cycle. This will be pretty much maxed out acceleration in a lot of cases. You might want to put a ceiling on that.