Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - abyaly

Pages: 1 ... 22 23 [24] 25
346
DNA - General / Hivebot communication
« on: May 04, 2006, 12:06:27 PM »
Quote from: PurpleYouko
It's actually a bunch quicker to tie to a friend then send a series of values into specific memory locations then break the tie when you have finished.
The other bot can then act on the information that you gave it.
It takes 1 cycle for a bot to recieve a message and then copy it into it's own in/out. It will then be visible to the next bot who sees him, who then uses 1 cycle to copy it. The vector bot I posted uses a system like this.

Even though the tie can send a higher volume of information faster, in/out can be used to spread simple information at very high speed.

347
Bugs and fixes / Friction
« on: May 04, 2006, 10:49:50 AM »
Quote from: EricL
Just trying to make the physics more reaslistic.
Rotational inertia would be spiffy.

348
Suggestions / intelligent mutations
« on: May 04, 2006, 12:43:09 AM »
If a bot had a var that let it know the length of a certian gene, you could rig something up that sorta does this.
Just have 3 or so suicide genes that regulate each other's lengths and those of the "protected" genes. Of course, the 'protected' genes could still change through evolution, but they completely butchering them would cause suicide.

349
DNA - General / Ties help
« on: May 03, 2006, 11:57:45 PM »
Quote from: Elite
Did anyone else making tiefeeders come across this problem? If so how did you fix it?

*.eye5 > 70 or so
if *.tiepres != (value for ties this bot creates)
*tiepres .deltie store

But I never managed to get the bots to properly feed through ties ^^

350
DNA - General / Hivebot communication
« on: May 03, 2006, 11:10:54 PM »
Since comminicating with a series of in's and out's will take a lot of time (I estimate 3+ cycles per conversation?) it might be better to assign each command a bot might need to deal with to a particular in/out slot and value. Since this will mean multiple commands will be assigned to the same communication frequency, there should be a heirarchy of command importance. That is, the higher number command will overwrite the lower number command, but the lower level command will not overwrite the higher command. In addition to this, we want every drone that recieves the order to relay it to other drones. This can be done by copying the recieved value into it's own .out.

So, for example, a drone sees a conspec with 10 stored in in/out1. Suppose this is the hibernation command. It then copies that value into its own out1 and starts a 'countdown' until it goes to hibernate. It stops eating food, but it wanders around until that countdown expires so that other drones can see the command displayed.

When the keeper sees a drone that has not recieved a necessary message (which it can tell, based on the value it displays), it will approach and fire an info shot forcing the drone to look at the keeper. The drone then put's the keeper's command on display so that other drones who happen to see it will do the same.

Since this system requires a heirarchal command system, one of the following should happen:
1. The commands continue to escalate until hibernation, during which time they are set to zero.
2. There is a command to change from using frequency 1 to frequency 2  or 5 or etc. These cycle around infrequently enough that there arent any 'loops' in communication.
3. Drones periodically return to the hive to have their frequency changed. The hive gives the wraith instructions on when to return again. This isnt good because it is slow.

I suppose there are other ways to make this work, but I haven't thought of them.

351
Tips and Tricks / Anti Anti Virus
« on: May 03, 2006, 10:21:12 PM »
If you make storing/incing/dec'ing to an invalid location cost the same amount as evaluating a COND then the cost differences between SG bots and normal bots should be indistinguishable. In fact, SG bots will be slightly more expensive.

352
Short bots / Vector 1.0 (1G)(Abyaly)-04.05.06
« on: May 03, 2006, 10:10:52 PM »
Code: [Select]
'Vector 1.0 by abyaly
'Public SG version
'Communicates the location of food to conspecs
'I will release a legible and commented version once it is finished
'Which will be some time after finals are over ^^

cond
start
 *.refveldx 4 *.eye5 0 sub sqr dup div *.eye5 41 sub -1 mult sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 *.maxvel *.vel sub 1 *.eye5 0 sub sqr dup div *.eye5 41 sub -1 mult sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 *.maxvel *.vel sub 1 *.eye5 0 sub sqr dup div *.eye5 41 sub -1 mult sqr dup div mult *.refeye *.myeye sub dup div 1 sub abs mult *.memval 0 sub sqr dup div *.in1 0 sub sqr dup div add sgn *.in2 0 sub sqr dup div add sgn mult mult store
 *.refveldx 4 *.eye5 0 sub sqr dup div *.eye5 41 sub -1 mult sqr dup div mult *.refeye *.myeye sub dup div 1 sub abs mult *.memval 0 sub sqr dup div *.in1 0 sub sqr dup div add sgn *.in2 0 sub sqr dup div add sgn mult mult store
 *.refvelup 1 *.eye5 sub sqr dup div 40 mult *.refeye *.myeye sub dup div 1 sub abs mult *.memval 0 sub sqr dup div *.in1 0 sub sqr dup div add sgn *.in2 0 sub sqr dup div add sgn mult mult store
 *.refveldx 4 *.eye5 sub sqr dup div 40 mult *.refeye *.myeye sub dup div 1 sub abs mult *.memval 0 sub sqr dup div *.in1 0 sub sqr dup div add sgn *.in2 0 sub sqr dup div add sgn mult mult store
 *.refaim 19 *.eye5 sub sqr dup div 40 mult *.refeye *.myeye sub dup div 1 sub abs mult *.memval 0 sub sqr dup div *.in1 0 sub sqr dup div add sgn *.in2 0 sub sqr dup div add sgn mult mult store
 314 5 *.eye5 0 sub sqr dup div *.refeye *.myeye sub dup div 1 sub abs mult *.in1 0 sub dup div 1 sub abs *.in2 0 sub dup div 1 sub abs mult *.memval 0 sub dup div 1 sub abs mult 9 rnd 0 sub dup div 1 sub abs add sgn mult mult store
 *.maxvel *.vel add *.eye5 mult 50 div 15 ceil 4 *.eye5 0 sub sqr dup div *.refeye *.myeye sub dup div 1 sub abs mult *.in1 0 sub dup div 1 sub abs *.in2 0 sub dup div 1 sub abs mult *.memval 0 sub dup div 1 sub abs mult 9 rnd 0 sub dup div 1 sub abs add sgn mult mult store
 330 *.robage 0 sub dup div 1 sub abs mult inc
 467 *.robage 1 sub dup div 1 sub abs mult inc
 51 *.memloc sgn -1 mult 1 add 474 mult store
 0 51 *51 sgn mult *.eye5 sgn 1 sub abs *.refeye *.myeye sub dup div 1 sub abs add sgn mult store
 1 51 *.eye5 sgn mult *.refeye *.myeye sub dup div mult *.refeye sgn mult store
 800 *.out1 dup div mult dec
 800 *.eye5 sgn mult *.memval sgn *.refeye *.myeye sub dup div add sgn mult inc
 801 *.out2 dup div mult dec
 801 *.eye5 sgn mult *.in1 *.memval add dup div *.refeye *.myeye sub dup div add sgn mult inc
 *.eye1 -4 mult *.eye2 -3 mult *.eye3 -2 mult *.eye4 -1 mult *.eye6 1 mult *.eye7 2 mult *.eye8 3 mult *.eye9 4 mult add add add add add add add add *.eye1 *.eye2 *.eye3 *.eye4 *.eye5 *.eye6 *.eye7 *.eye8 *.eye9 add add add add add add add add div 34 mult *.eye1 *.eye2 *.eye3 *.eye4 *.eye5 *.eye6 *.eye7 *.eye8 *.eye9 add add add add add add add add dup div *.eye5 sgn 1 sub dup div mult *.shdn *.shdx *.shsx add add dup div 1 sub dup mult mult 5 mult store
 330 *.eye1 *.eye2 *.eye3 *.eye4 *.eye5 *.eye6 *.eye7 *.eye8 *.eye9 add add add add add add add add dup div 1 sub dup mult *.shdn *.shdx *.shsx add add dup div 1 sub dup mult mult 5 mult store
 *.refxpos *.refypos angle 19 *.robage sgn mult *.refeye *.myeye sub dup div mult *.refxpos *.refypos angle *.aim sub dup div mult *.shdn *.shdx *.shsx add add dup div 1 sub dup mult mult *.eye5 sgn mult store
 *.shang 314 add 5 *.shdn *.shdx *.shsx add add dup div mult *.refeye *.myeye sub dup div 1 sub dup div *.refeye sgn 1 sub sgn abs add mult store
 100 313 *.nrg 500 sub sqr sgn mult 500 *.body sub sqr sgn mult store
 *.body 0 floor 312 *.body sgn mult 100 *.nrg sub sqr sgn mult store
 *.body 50 sub 0 floor 100 ceil 312 *.body 50 sub sqr sgn mult 800 *.nrg sub sqr dup div mult store
 60 300 30 *.eye4 *.eye5 *.eye6 add add 3 div sub sqr sgn mult *.nrg 600 sub sgn mult store
 100 *.shell sub 0 floor 100 ceil 100 *.shell sub sgn abs 822 mult store
 *.waste 8 *.waste 10 sub sgn mult store
 -4 7 *.waste 10 sub sgn mult store
 -6 7 *.eye5 40 sub sqr dup div *.refeye 0 sub dup div 1 sub abs mult mult store
 4 8 *.eye5 40 sub sqr dup div *.refeye 0 sub dup div 1 sub abs mult mult store
 *.refvelup 1 *.eye5 40 sub sqr dup div *.refeye 0 sub dup div 1 sub abs mult mult store
 *.refveldx 4 *.eye5 40 sub sqr dup div *.refeye 0 sub dup div 1 sub abs mult mult store
 -6 7 *.refshell 20 sub sqr sgn mult *.eye5 40 sub sqr dup div *.refeye 0 sub sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 4 8 20 *.refshell 20 sub sqr sgn mult *.eye5 40 sub sqr dup div *.refeye 0 sub sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 -1 7 *0 20 sub sqr sgn 1 sub abs mult *.eye5 40 sub sqr dup div *.refeye 0 sub sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 32 8 *0 20 sub sqr sgn 1 sub abs mult *.eye5 40 sub sqr dup div *.refeye 0 sub sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 *.refvelup 1 *.eye5 40 sub sqr dup div *.refeye 0 sub sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 *.refveldx 4 *.eye5 40 sub sqr dup div *.refeye 0 sub sqr dup div mult *.refeye *.myeye sub dup div mult mult store
 340 inc
 340 inc
end

353
Interesting behaviour bots / Turbo (IB)(F2)(Abyaly)-04.05.06
« on: May 03, 2006, 10:08:38 PM »
'Turbo by abyaly
'Moves very fast by reproducing
'Fully commented
'edit: fixed typo in search algo description


cond
start

'Birth Control
'************************************************************
.tie *.robage 0 sub dup div 1 sub abs mult inc
.deltie *.robage 1 sub dup div 1 sub abs mult inc
'************************************************************



'*************************Navigation*************************
'Search algorithm
'Execution Conditions:
'(Sum(*.eyeX) != 0) (*.eye5 == 0) (*.shdn == 0) (*.shdx == 0) (*.shsx == 0)
'Action:
'.aimdx = 34[-4(*.eye1)-3(*.eye2)-2(*.eye3)-*.eye4+*.eye6+2(*.eye7)+3(*.eye8)+4(*.eye9)]/Sum(*.eyeX)
'************************************************************
*.eye1 -4 mult *.eye2 -3 mult *.eye3 -2 mult *.eye4 -1 mult
*.eye6 1 mult *.eye7 2 mult *.eye8 3 mult *.eye9 4 mult
add add add add add add add add
*.eye1 *.eye2 *.eye3 *.eye4 *.eye5 *.eye6 *.eye7 *.eye8 *.eye9
add add add add add add add add div 34 mult
  *.eye1 *.eye2 *.eye3 *.eye4 *.eye5 *.eye6 *.eye7 *.eye8 *.eye9
  add add add add add add add add dup div
  *.eye5 sgn 1 sub dup div mult
  *.shdn *.shdx *.shsx add add dup div 1 sub dup mult mult
.aimdx mult store
'************************************************************
'Spin
'Execution Conditions:
'(Sum(*.eyeX) == 0) (*.shdn == 0) (*.shdx == 0) (*.shsx == 0)
'Action:
'.aimdx = 350
'************************************************************
350
*.eye1 *.eye2 *.eye3 *.eye4 *.eye5 *.eye6 *.eye7 *.eye8 *.eye9
  add add add add add add add add dup div 1 sub dup mult
  *.shdn *.shdx *.shsx add add dup div 1 sub dup mult mult
.aimdx mult store
'*************************Navigation Ends********************
'Precision Aiming
'Execution Conditions:
'(*.robage > 0) (*.refeye != *.myeye) (*.refxpos *.refypos angle != *.aim)
'(*.shdn == 0) (*.shdx == 0) (*.shsx == 0)
'Action:
'.setaim = *.refxpos *.refypos angle
'************************************************************
*.refxpos *.refypos angle .setaim
  *.robage sgn mult
  *.refeye *.myeye sub dup div mult
  *.refxpos *.refypos angle *.aim sub dup div mult
  *.shdn *.shdx *.shsx add add dup div 1 sub dup mult mult
  *.eye5 sgn mult
store
'************************************************************
stop
'Diffusion
'************************************************************
cond
*.refeye *.myeye =
*.eye5 0 >
start
10 .dx store
314 .aimdx store
stop
'************************************************************
'Self Cannibalism
'************************************************************
cond
*.nrg 1000 <
*.body 0 >
start
100 *.body ceil .fdbody store
stop
'************************************************************
'Suicide Repro/Follow food
'************************************************************
cond
*.eye5 0 >
*.eye3 50 <
*.eye5 40 <
*.eye4 40 <
*.eye6 40 <
*.eye7 50 <
*.nrg 4000 <
*.refeye *.myeye !=
start
99 .repro store
*.refvel .up store
*.refveldx .dx store
stop
'************************************************************
'Non-Suicidal Repro/Follow food
'************************************************************
cond
*.refeye *.myeye !=
*.eye5 0 >
*.eye3 50 <
*.eye5 40 <
*.eye4 40 <
*.eye6 40 <
*.eye7 50 <
*.nrg 3999 >
start
50 .repro store
*.refvel .up store
*.refveldx .dx store
stop
'************************************************************
'About-Face at age 1
'It isnt 0 so that the birth tie can sever
'If you make the parent self-destruct after
'suicidal repro this is no longer an issue
'************************************************************
cond
*.robage 1 =
start
628 .aimdx store
stop
'************************************************************
'Follow and attack food
'************************************************************
cond
*.eye5 25 >
*.refeye *.myeye !=
start
-6 .shoot store
16 .shootval store
*.refvel .up -1 floor store
*.refveldx .dx store
stop
'************************************************************
'React to being shot
'************************************************************
cond
.shflav -1 =
.shflav -6 = or
*.shup 0 !=
*.shdn 0 != or
*.shdx 0 != or
*.shsx 0 != or
start
*.shang 314 add .aimdx store
stop
'************************************************************
end

354
Tips and Tricks / Hibernation
« on: May 01, 2006, 07:06:52 PM »
Quote from: Henk
That thing is EVIL

Single-gened bots nowadays are just as good as recent multi-gened ones. Maybe even better...
Why wouldnt they be? Any bot that has an empty stack after the end of each gene can easily be made into an SG.
Step 1:
Convert all conditional operators as follows:
>   -> sub sqr dup div
<   -> sub -1 mult sqr dup div
!=  -> sub dup div
=   -> sub dup div 1 sub abs
Step 2:
Connect all of the gene's conditions with boolean operations.
or   -> add sgn
and -> mult
not  -> 1 sub dup div
xor -> sub dup div
Step 3:
Find every store, inc, or dec command inside the gene.
Multiply the address being modified by the value from step 2.
Step 4:
After doing this to every gene, put everything together into a conditionless gene.

Bots that don't fit the criteria wont work with that algorithm, but with some effort I think those could be converted to SG bots too  

355
Suggestions / refdxpos, refuppos, refsxpos, refdnpos
« on: April 30, 2006, 05:30:30 PM »
Quote from: Numsgil
No, they don't exist.  But neither does .explode or .becomeagod.  

What is it you would expect the vars in your topic to do?
upon thinking this over, I have found reason for those vars not to exist, so never mind ^^

356
Suggestions / refdxpos, refuppos, refsxpos, refdnpos
« on: April 27, 2006, 11:07:05 PM »
no. I was looking for the vars in the topic. they dont exist. so I didnt find them

357
Suggestions / refdxpos, refuppos, refsxpos, refdnpos
« on: April 27, 2006, 10:46:45 PM »
refxpos gives the x coordinate

358
Suggestions / refdxpos, refuppos, refsxpos, refdnpos
« on: April 27, 2006, 10:21:06 PM »
I was looking through the wiki and though I found refvars for x pos and y pos, I was surprised these werent in there. Since there are no trig functions either, I can't find a way to make bots calculate them accurately.  

359
Bugs and fixes / Why aren't you using 2.42?
« on: April 25, 2006, 10:35:14 PM »
Quote from: Numsgil
Obviously I don't want to call it Darwinbots Extreme, hence the problem.
The easiest solution would be calling it DarwinBots++ 0.5

360
The Gene depository / Possible to Clone?
« on: August 25, 2005, 11:19:27 AM »
Cloning < Converting enemy bots to one of your species ^^ (say vegs for example...)
It would have to be a fairly short single gene bot for it to work (a very stupid single gene bot), but if all it has to do it delete genes, make viruses, and aim.. (it wouldnt need to repro ;))

Pages: 1 ... 22 23 [24] 25