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 - gymsum

Pages: 1 ... 10 11 [12] 13 14
166
Bot Tavern / Slim Evo the Finale
« on: May 04, 2008, 05:57:26 PM »
Ok, the latest version of Slim Evo is somewhat better than Slim Evo 3, but its not so good after they reproduce, the 3rd one still rapes bots...

I've tested it against the spinner, both without mutations and so far they've been equally matched for fights. Enjoy

cond
*.in4 *.out4 !=
start

is now used for conspec purposes, if they are equal it will kill the duplicate. Had to change it for spinners camo.

167
Interesting behaviour bots / Slim Evo: Cont'd
« on: May 04, 2008, 04:13:58 PM »
Ok, fixed a lot of problems with aiming, eyefocus, botid genes, and tie communications.

Enjoy!

Code: [Select]
'Slim Evo Project: Continued
'Shortened up the Bot Id genes to one small gene. Focuseye set when engaged with enemy, caused bot to act stupid when under attack previously
'Better agressive genes for war stage, and put in a moded targeting system so multiple bots will target the same target without going
'Directly in front of the enemy or friend. Added a turning mechanism so no matter what the bot will try to swarm around the enemy if not tied
'Also bots leaving the swarm are free to move but ties remain for reserves.
'The reproductive genes require a lot of energy for a swarm to even develop, around 30K, making this a hard bot to start in some environments

'Individuality

def botname .out1
def bot1 970
def bot2 971
def bot3 972
def bot4 973
def bot5 974
def bot6 975
def bot7 976
def bot8 977
def bot9 978
def bot10 979

'Historical Info

def bxpos 82
def bypos 83
def fxpos 80
def fypos 81

'Tie Info

def readcounter 150
def multimode 151
def tiereader 60
def multeyef 86
def tsexrpro 88
def multrefage 84
def multrefvel 87
def readreset 149
def tiecounter 74

'Attack/Defence

def venomsel 76
def stage 75
def shotselect 40

'Eye Info

def newbot 50
def memcounter 73
def preveye1 51
def preveye2 52
def preveye3 53
def preveye4 54
def preveye5 55
def preveye6 56
def preveye7 57
def preveye8 58
def preveye9 59
def eye1id 61
def eye2id 62
def eye3id 63
def eye4id 64
def eye5id 65
def eye6id 66
def eye7id 67
def eye8id 68
def eye9id 69


'Welwordion's 360 Eyes/Initialization and Indientity
'**********************

cond
*.robage 0 =
start
*.tiepres .deltie store
9999 rnd 1 .botname store
*.dnalen .out2 store
420 .eye1dir store
315 .eye2dir store
210 .eye3dir store
105 .eye4dir store
-105 .eye6dir store
-210 .eye7dir store
-315 .eye8dir store
-420 .eye9dir store
105 .eye1width store
105 .eye2width store
105 .eye3width store
105 .eye4width store
105 .eye5width store
105 .eye6width store
105 .eye7width store
105 .eye8width store
105 .eye9width store
50 *.nrg 1000 div mult .repro store
stop

cond
*.eyef 0 >
*.refeye 0 !=
*.in2 *.out2 !=
*.refeye *.myeye !=
*.in1 *.bot1 !=
*.in1 *.bot2 !=
*.in1 *.bot3 !=
*.in1 *.bot4 !=
*.in1 *.bot5 !=
*.in1 *.bot6 !=
*.in1 *.bot7 !=
*.in1 *.bot8 !=
*.in1 *.bot9 !=
*.in1 *.bot10 !=
start
3 .stage store
stop

cond
*.robage 21 =
start
*.tiepres .deltie store
stop

'eye1 specific

cond
*.eye1 *.preveye1 5 !~=
*.eye1 *.preveye2 5 ~=
*.eye2id 1 = and
*.eye1 *.preveye9 5 ~=
*.eye9id 1 = and or
start
1 .eye1id store
stop

cond
*.eye1 *.preveye1 5 !~=
*.eye1 *.preveye2 5 !~=
*.eye1 *.preveye9 !~=
start
0 .eye1id store
stop

cond
*.eye1 0 =
start
0 .eye1id store
stop

'eye2 specific

cond
*.eye2 *.preveye2 5 !~=
*.eye2 *.preveye3 5 ~=
*.eye3id 1 = and
*.eye2 *.preveye2 5 ~=
*.eye1id 1 = and or
start
1 .eye2id store
stop

cond
*.eye2 *.preveye2 5 !~=
*.eye2 *.preveye3 5 !~=
*.eye2 *.preveye1 5 !~=
start
0 .eye2id store
stop

cond
*.eye2 0 =
start
0 .eye2id store
stop

'eye3 specific

cond
*.eye3 *.preveye3 5 !~=
*.eye3 *.preveye4 5 ~=
*.eye4id 1 = and
*.eye3 *.preveye2 5 ~=
*.eye2id 1 = and or
start
1 .eye3id store
stop

cond
*.eye3 *.preveye3 5 !~=
*.eye3 *.preveye4 5 !~=
*.eye3 *.preveye2 5 !~=
start
0 .eye3id store
stop

cond
*.eye3 0 =
start
0 .eye3id store
stop

'eye4 specific

cond
*.eye4 *.preveye4 5 !~=
*.eye4 *.preveye5 5 ~=
*.eye5id 1 = and
*.eye4 *.preveye3 5 ~=
*.eye3id 1 = and or
start
1 .eye4id store
stop

cond
*.eye4 *.preveye4 5 !~=
*.eye4 *.preveye4 5 !~=
*.eye4 *.preveye3 5 !~=
start
0 .eye4id store
stop

cond
*.eye4 0 =
start
0 .eye4id store
stop

'eye5 specific

cond
*.eye5 *.preveye5 5 !~=
*.eye5 *.preveye6 5 ~=
*.eye6id 1 = and
*.eye5 *.preveye4 5 ~=
*.eye4id 1 = and or
start
1 .eye5id store
stop

cond
*.eye5 *.preveye5 5 !~=
*.eye5 *.preveye6 5 !~=
*.eye5 *.preveye4 5 !~=
start
0 .eye5id store
stop

cond
*.eye5 0 =
start
0 .eye5id store
stop

'eye6 specific

cond
*.eye6 *.preveye6 5 !~=
*.eye6 *.preveye7 5 ~=
*.eye7id 1 = and
*.eye6 *.preveye5 5 ~=
*.eye4id 1 = and or
start
1 .eye6id store
stop

cond
*.eye6 *.preveye6 5 !~=
*.eye6 *.preveye7 5 !~=
*.eye6 *.preveye5 5 !~=
start
0 .eye6id store
stop

cond
*.eye6 0 =
start
0 .eye6id store
stop

'eye7 specific

cond
*.eye7 *.preveye7 5 !~=
*.eye7 *.preveye9 5 ~=
*.eye8id 1 = and
*.eye7 *56 5 ~=
*.eye6id 1 = and or
start
1 .eye7id store
stop

cond
*.eye7 *.preveye7 5 !~=
*.eye7 *.preveye8 5 !~=
*.eye7 *.preveye6 5 !~=
start
0 .eye7id store
stop

cond
*.eye7 0 =
start
0 .eye7id store
stop

'eye8 specific

cond
*.eye8 *.preveye8 5 !~=
*.eye8 *.preveye9 5 ~=
*.eye9id 1 = and
*.eye8 *.preveye7 5 ~=
*.eye7id 1 = and or
start
1 .eye8id store
stop

cond
*.eye8 *.preveye8 5 !~=
*.eye8 *.preveye9 5 !~=
*.eye8 *.preveye7 5 !~=
start
0 .eye8id store
stop

cond
*.eye8 0 =
start
0 .eye8id store
stop

'eye9 specific

cond
*.eye9 *.preveye9 5 !~=
*.eye9 *.preveye1 5 ~=
*.eye1id 1 = and
*.eye9 *58 5 ~=
*.eye8id 1 = and or
start
1 .eye9id store
stop

cond
*.eye9 *.preveye9 5 !~=
*.eye9 *.preveye1 5 !~=
*.eye9 *.preveye8 5 !~=
start
0 .eye9id store
stop

cond
*.eye9 0 =
start
0 .eye9id store
stop

'the focuseye is set

cond
*.robage 20 mod 0 !=
*140 0 =
start
5 .focuseye *.eye1 sgn abs mult *.eye1id 1 sub abs mult store
6 .focuseye *.eye2 sgn abs mult *.eye2id 1 sub abs mult store
7 .focuseye *.eye3 sgn abs mult *.eye3id 1 sub abs mult store
8 .focuseye *.eye4 sgn abs mult *.eye4id 1 sub abs mult store
9 .focuseye *.eye5 sgn abs mult *.eye5id 1 sub abs mult store
1 .focuseye *.eye6 sgn abs mult *.eye6id 1 sub abs mult store
2 .focuseye *.eye7 sgn abs mult *.eye7id 1 sub abs mult store
3 .focuseye *.eye8 sgn abs mult *.eye8id 1 sub abs mult store
4 .focuseye *.eye9 sgn abs mult *.eye9id 1 sub abs mult store
stop

'the visual memory is stored

cond
start
*.eye1 .preveye1 store
*.eye2 .preveye2 store
*.eye3 .preveye3 store
*.eye4 .preveye4 store
*.eye5 .preveye5 store
*.eye6 .preveye6 store
*.eye7 .preveye7 store
*.eye8 .preveye8 store
*.eye9 .preveye9 store
stop

'Individuality Genes
'*******************

'check species and bot name

cond
*.eyef 0 >
*.in2 *.out2 =
*.myeye *.refeye %=
*.in1 *.bot1 != and
*.in1 *.bot2 != and
*.in1 *.bot3 != and
*.in1 *.bot4 != and
*.in1 *.bot5 != and
*.in1 *.bot6 != and
*.in1 *.bot7 != and
*.in1 *.bot8 != and
*.in1 *.bot9 != and
*.in1 *.bot10 != and
*.in1 *.out1 !=
start
*.memcounter 969 add .memloc store
*.memcounter 1 add .memcounter store
stop

'select a memory location for in4

cond
*.newbot 1 =
*.memcounter 1 =
*.bot10 0 =
start
.memloc inc
*.in1 .memval store
stop

'Turning Genes
'****************

'Turn to a veg

cond
*.numties 2 <
*.robage 21 >
*.eyef 0 >
*.refeye 0 =
*.refxpos *.refypos angle *.tieang !=
start
*.refxpos *.refypos angle .setaim store
stop

'turn towards an enemy

cond
*.focuseye 1 =
*.refeye *.myeye !=
*.refeye 0 !=
start
420 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
3 .stage store
stop

cond
*.focuseye 2 =
*.refeye *.myeye !=
*.refeye 0 !=
start
315 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.focuseye 3 =
*.refeye *.myeye !=
*.refeye 0 !=
start
210 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.focuseye 4 =
*.refeye *.myeye !=
*.refeye 0 !=
start
105 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.focuseye 6 =
*.refeye *.myeye !=
*.refeye 0 !=
start
-420 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.focuseye 7 =
*.refeye *.myeye !=
*.refeye 0 !=
start
-315 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.focuseye 8 =
*.refeye *.myeye !=
*.refeye 0 !=
start
-210 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

cond
*.focuseye 9 =
*.refeye *.myeye !=
*.refeye 0 !=
start
-105 *.refxpos *.refypos angle sub .aimdx store
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

'Turn to conspec

cond
*.numties 2 <
*.robage 21 >
*.eyef 0 >
*.refeye *.myeye %=
*.in2 *.out2 = or
*.in1 *.bot1 = or
*.in1 *.bot2 = or
*.in1 *.bot3 = or
*.in1 *.bot4 = or
*.in1 *.bot5 = or
*.in1 *.bot6 = or
*.in1 *.bot7 = or
*.in1 *.bot8 = or
*.in1 *.bot9 = or
*.in1 *.bot10 =
*.in4 1 =
*.refxpos *.refypos angle *.tieang !=
*.tin1 0 !=
start
*.refxpos *.refypos angle .setaim store
0 *.velup sub *.eyef sub *.fixpos mult ~ .up store
0 .stage store
stop

'Movement Genes
'****************

'Move Forward

cond
*.fixed 0 =
*.out4 1 !=
*.eyef 0 >
*.eyef 80 <
*.refeye *.myeye !=
*.refxpos *.refypos angle *.tieang !=
start
*.refxpos *.refypos angle -1 mult *.aim add
1256 add 1256 mod
dup dup dup dup dup 314 ceil swapint
314 floor 942 ceil 314 sub sub swapint
942 floor 942 sub add 2 div *.veldx sub .dx store
628 ceil -1 mult 314 add swapint
628 floor 628 sub add 2 div *.velup sub .up store
stop

cond
*.eyef 0 =
*.fixed 0 =
*.vel *.maxvel !=
start
*.maxvel *.vel sub .up store
stop

cond
*.fixed 0 =
*.refaim -1 mult *.aim =
*.refvel -1 mult *.vel = or
*.refeye *.myeye != and
*.out1 *.in1 !=
*.eye1 20 <
*.eye2 20 <
*.eye3 20 <
*.eye4 20 <
*.mass 1 >
*.refeye 0 !=
start
*.maxvel *.mass div *.vel sub .sx store
*.refxpos *.refypos angle *.setaim store
stop

cond
*.fixed 0 =
*.refaim -1 mult *.aim =
*.refvel -1 mult *.vel = or
*.refeye *.myeye != and
*.out1 *.in1 !=
*.eye6 20 <
*.eye7 20 <
*.eye8 20 <
*.eye9 20 <
*.mass 1 >
*.refeye 0 !=
start
*.maxvel *.mass div *.vel sub .dx store
*.refxpos *.refypos angle *.setaim store
stop

cond
*.numties 0 >
*.trefvel *.vel = or
*.trefvel *.vel >
start
*.trefaim .setaim store
*.maxvel *.vel sub .up store
stop

'Attack/Defensive Genes
'*****************

cond
*.eyef 0 =
*.pain 0 <
start
0 .shotselect store
stop

cond
*.eyef 0 =
*.refeye *.myeye = or
*.refshoot 0 = or
*.shflav 0 !=
*.shflav -2 !=
start
942 *.shang sub .setaim store
0 .shflav store
100 .mkshell store
26 .strvenom
.shoot .ploc store
stop

cond
*.fixed 0 =
*.refvel *.vel = or
*.refeye *.myeye != and
*.out1 *.in1 !=
*.eyef 40 >
*.refeye 0 !=
*.refxpos *.refypos angle *.tieang !=
start
*.refxpos *.refypos angle .aimshot store
*.nrg 4 *.pain add div .shootval store
-1 .shotselect store
cond

cond
*.refaim *.aim !=
*.refvel *.vel = or
*.refeye *.myeye != and
*.out1 *.in1 !=
*.eyef 40 >
*.eyef 90 <
*.refeye 0 !=
start
*.refxpos *.refypos angle .aimshot store
*.setaim .shootval store
*.aim .shotselect store
cond

cond
*.refeye *.myeye != or
*.in2 *.out2 !=
*.eyef 40 >
*.refeye 2 >
*.in1 *.bot1 !=
*.in1 *.bot2 !=
*.in1 *.bot3 !=
*.in1 *.bot4 !=
*.in1 *.bot5 !=
*.in1 *.bot6 !=
*.in1 *.bot7 !=
*.in1 *.bot8 !=
*.in1 *.bot9 !=
*.in1 *.bot10 !=
start
*.refxpos *.refypos angle .aimshot store
100 *.body sub *.nrg add .shootval store
-1 .shotselect store
stop

'Create Venom and Poison

cond
*.nrg 6000 > and
*.venom 20 <
*.poison 20 <
start
*.nrg *.venom sub 7 div .strvenom store
*.nrg *.poison sub 6 div .mkpoison store
stop

cond
*.eyef 30 >
*.refeye *.myeye !=
*.in1 *.out1 !=
*.venom 0 >
*.refeye 0 !=
*.stage 3 =
start
.venomsel inc
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos angle .aimshot store
stop

cond
*.venomsel 1 =
start
728 .venloc store
*.myeye .venval store
-3 .shoot store
stop

cond
*.venomsel 2 =
start
.shoot .venloc store
-1 .venval store
-3 .shoot store
stop

cond
*.venomsel 3 =
start
.setaim .venloc store
*.xpos *.ypos angle .venval store
-3 .shoot store
stop

cond
*.venomsel 4 =
start
0 .venomsel store
stop

cond
*.eyef 0 =
*.pain 0 <
start
0 .shotselect store
stop

cond
*.nrg 3000 >
*.shell 20 <
start
*.nrg 5 div .mkshell store
stop

'Used for Info Shots under certain conditions

cond
*.fixed 0 =
*.eyef 40 >
*.refeye *.myeye !=
*.in1 *.out1 !=
*.refkills *.kills >
*.refeye 0 !=
start
*.refxpos *.refypos angle .aimshot store
.fixpos .shootval store
*.refxpos .fxpos store
*.refypos .fypos store
stop

'Shoot at the enemy using the 40 selection

cond
*.eyef 60 >
*.shotselect 0 !=
start
*.refxpos *.refypos angle *.eyef mod -1 mult .aimdx store
*.focuseye .focuseye store
2 140 store
*.shotselect .shoot store
stop

'Disguise if mutated

cond
*.in2 *.dnalen !=
*.in2 *.out2 !=
*.refeye *.meye %=
*.refeye 0 !=
start
*.in2 .out2 store
stop

'Memory Loactions 80-81
'*******************

'Return to a trapped enemy if in pain

cond
*.pain 100 >
*.eyef 0 =
*.numties 0 =
*.robage 21 >
*.fixpos 0 =
start
*.fxpos *.fypos angle .setaim store
1 90 store
stop

cond
*.eyef 0 >
*.eyef 50 <
*90 1 =
*.xpos *.fxpos %=
*.ypos *.fypos %=
start
*.refxpos *.refypos angle .aimshot store
*.refxpos *.refypos angle .setaim store
*.nrg 3 div .shootval store
-1 .shotselect store
stop


'Tie Genes
'****************

'Tie to a veg in Multi Bot Mode

cond
*.eyef 50 >
*.refeye 0 =
*.multimode 0 >
*.numties 1 =
start
1 *.tiecounter add .tiecounter store
*.tiecounter .tie store
stop

cond
*.stage 6 !=
*.trefeye 0 =
*.multimode 0 >
*.tielen 30 !=
*.in4 5 !=
start
210 *.tienum mult .fixang store
30 .fixlen store
70 .stiftie store
stop

'Tie to conspec

cond
*.in4 3 =
*.numties 2 <
*.in2 *.out2 = or
*.in1 *.bot1 = or
*.in1 *.bot2 = or
*.in1 *.bot3 = or
*.in1 *.bot4 = or
*.in1 *.bot5 = or
*.in1 *.bot6 = or
*.in1 *.bot7 = or
*.in1 *.bot8 = or
*.in1 *.bot9 = or
*.in1 *.bot10 =
*.in2 *.out2 =
*.myeye *.refeye %=
*.eyef 50 >
*.refxpos *.refypos angle *.tieang !=
start
*.tiecounter 1 add .tiecounter store
*.tiecounter .tie store
0 .shotselect store
stop

cond
*.eyef 40 >
*.refeye 0 =
*.numties 3 <
*.refxpos *.refypos angle *.tieang !=
start
*.tiecounter 1 add .tiecounter store
*.tiecounter .tie store
0 .shotselect store
75 *.aim add .setaim store
stop

'Read Ties

cond
start
*.robage mod *.numties *.tiepres add .readtie store
stop

'Tell Veg that You're taken

cond
*.trefeye 0 =
*.trefnrg 10 >
start
.tout1 .tieloc store
5 .tieval store
stop

'set the paramaters for the veggie, ie distance and angle

cond
*.numties 0 > and
*.trefeye 0 = and
*.tielen 60 != or
*.tieang 90 *.tienum add !=
*.multimode 0 =
start
*.readcounter .tienum store
60 .fixlen store
90 *.tienum add .fixang store
60 .stifftie store
stop

cond
*.numties 0 >
*.numties 0 > and
*.trefeye 0 = and
*.tielen 60 != or
*.tieang 90 *.tienum add !=
*.out4 1
start
*.readcounter .tienum store
180 *.tienum mult .fixang store
60 .fixlen store
60 .stifftie store
200 .tmemloc store
*.vel .tmemval store
stop

'Feed from Veg

cond
*.trefeye 0 =
*.numties 0 >
start
*.tiepres .readtie *.numties sgn mult store
.tiepres .memloc *.robage -1 mult 1 add sgn mult store
.numties .tmemloc *.robage -1 mult 1 add sgn mult store
55 10 rnd add .tie *.refeye sgn -1 mult 1 add sgn mult *.eye5 45 sub sgn mult *.memval sgn -1 mult 1 add sgn mult *.robage sgn mult store
628 .fixang *.numties sgn mult store
200 .fixlen *.numties sgn mult store
*.tiepres .tienum *.numties sgn mult store
*.tiepres .readtie *.numties sgn mult store
.fixpos .tieloc *.numties sgn mult *.treffixed mult store
0 .tieval *.numties sgn mult *.treffixed mult store
80 .sharenrg *.multi mult store
-1 .tieloc store
-1000 .tieval store
100 .sharewaste *.multi mult store
stop

cond
*.nrg *.trefnrg <
*.numties 0 >
*.body 800 <
*.nrg 2100 <
*.trefeye *.myeye %=
start
50 .sharenrg *.multi mult store
stop

cond
*.multimode 1 =
*.waste 0 >
*.numties 0 >
*.multi 0 >
*.trefeye *.myeye %=
start
50 .sharewaste *.multi mult store
stop

'Delete Ties to enemies

cond
*.numties 0 >
*.trefeye *.myeye !=
*.trefeye 0 !=
start
*.tiepres *.tienum store
*.trefaim *.aim sub .setaim store
*.tiepres .deltie store
0 .stage store
stop

cond
*.tiepres *.readcounter !=
*.numties 0 >
*.trefeye *.myeye !=
*.trefeye 0 !=
start
*.tiepres .tienum store
400 .tieval store
.tieval .tieloc store
50 .sharewaste *.multi mult store
stop

cond
*.numties 2 >
*.fixed 0 !=
*.tin1 0 !=
start
0 .fixpos store
6 .stage store
stop

cond
*43 2 >
*.nrg 10000 >
*.body 900 >
*.numties 0 >
start
*.tiepres .deltie store
0 .fixpos store
0 .multimode store
6 .tout1 store
stop

'Multibot Tie mode
'*****************************

cond
*.numties 0 >
*.trefeye *.myeye =
*.multimode 0 =
*.stage 6 !=
start
*.readcounter .multimode store
stop

cond
*.multimode 0 >
*.multeyef *.eyef >
*.stage 6 !=
start
*.multrefvel *.vel sub .dn store
1 .multi store
stop

'Turn both bots to face 90 degrees out.

cond
*.multimode 0 >
*.trefeye *.myeye %=
*.trefeye 0 !=
*.tielen 70 !=
*.tieang 210 !=
*.stage 6 !=
start
210 .fixang store
70 .fixlen store
70 .stiftie store
stop


'Command Interpretation
'****************

cond
*.in4 7 =
*.in2 *.out2 = or
*.in1 *.bot1 = or
*.in1 *.bot2 = or
*.in1 *.bot3 = or
*.in1 *.bot4 = or
*.in1 *.bot5 = or
*.in1 *.bot6 = or
*.in1 *.bot7 = or
*.in1 *.bot8 = or
*.in1 *.bot9 = or
*.in1 *.bot10 =
*.in2 *.out2 =
*43 3 <
start
50 .sexrepro store
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos angle .aimshot store
-8 .shoot store
*.refvel *.vel sub .dn store
1 .fixpos store
0 .multimode store
7 .out5 store
*43 1 add 43 store
stop

cond
*.in2 *.out2 = or
*.in1 *.bot1 = or
*.in1 *.bot2 = or
*.in1 *.bot3 = or
*.in1 *.bot4 = or
*.in1 *.bot5 = or
*.in1 *.bot6 = or
*.in1 *.bot7 = or
*.in1 *.bot8 = or
*.in1 *.bot9 = or
*.in1 *.bot10 =
*.in2 *.out2 =
*.in5 7 =
*.out4 7 =
*43 3 <
start
0 .out4 store
*43 1 add 43 store
stop

cond
*.stage *.tout1 !=
start
*.stage .tout1 store
stop

cond
*.tin1 *.stage !=
start
*.tin1 .stage store
0 .fixpos store
*.numties .tout2 store
stop

cond
*.robage *.trefage >
*.numties *.tin2  >
*.tin2 2 <
*.kills 3 >
start
55 .tout1 store
stop

cond
*.in2 *.out2 = or
*.in1 *.bot1 = or
*.in1 *.bot2 = or
*.in1 *.bot3 = or
*.in1 *.bot4 = or
*.in1 *.bot5 = or
*.in1 *.bot6 = or
*.in1 *.bot7 = or
*.in1 *.bot8 = or
*.in1 *.bot9 = or
*.in1 *.bot10 =
*.in2 *.out2 =
*.out5 7 =
*.in4 7 =
start
0 .out5 store
0 .out4 store
stop

'Stage 2: Swarm Mode
'***************

cond
*.refeye 0 =
*.refeye *.myeye =
*.stage 6 !=
*.in6 42 !=
start
6 .stage store
1 .out4 store
stop

'Swarm in a Circle:

cond
*.multi 0 >
*466 0 >
*.eye5 30 >
*.eye5 80 <
*.refeye *.myeye =
*.in4 1 =
*.numties 2 >
*.nrg 3000 >
*.stage 6 =
start
*.bxpos .bypos angle .setaim store
*.refvel *.vel sub .up store
1 .out4 store
stop

cond
*.refeye *.myeye %=
*.in1 *.out1 %=
*.in4 1 =
*.stage 6 =
start
*.tiepres 1 add .tie store
*.tiepres .readtie store
stop

cond
*.trefeye *.myeye %=
*.robage *.trefage >
*.stage 6 =
start
30 *.aim add .setaim store
*.maxvel *.vel sub .dn store
stop

cond
*.stage 6 =
*.trefeye *.myeye %=
*.robage *.trefage <
start
20 .fixlen
0 140 store
260 .fixang store
40 .stifftie store
*.trefvel *.vel sub .up store
*.trefaim .aim store
stop

cond
*.out4 1 =
*.poison 150 <
*.nrg 2000 <
start
*.nrg 9 div .mkpoison store
*.eyef .ploc store
stop

cond
*.multeyef *.eyef >
start
*.multvel *.vel sub .dn store
stop

cond
*.multeyef *.eyef =
*.trefaim *.aim %=
*.trefeye *.myeye %=
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos angle .aimshot store
*.refvel *.vel sub .aim store
-1 .shoot store
stop


'Stage 3-War
'===================

cond
*.refeye *.myeye !=
*.refeye 0 !=
*.in1 *.bot1 !=
*.in1 *.bot2 !=
*.in1 *.bot3 !=
*.in1 *.bot4 !=
*.in1 *.bot5 !=
*.in1 *.bot6 !=
*.in1 *.bot7 !=
*.in1 *.bot8 !=
*.in1 *.bot9 !=
*.in1 *.bot10 !=
*.newbot 0 =
*.in2 *.out2 != or
*.in1 *.out1 =
start
42 .out6 store
3 .tout1 store
3 .stage store
stop

cond
*.refeye *.myeye =
*.in6 42 =
*.robage *.refage >
start
*.in6 .out6 store
3 .tout1 store
3 .stage store
*.in7 *.in8 angle mod *.refxpos *.refypos angle .setaim store
*.in7 .out7 store
*.in8 .out8 store
*.maxvel *.mass mult *.vel sub .up store
stop

cond
*.stage 3 =
*.numties 0 > or
*.tiepres 0 >
*.refeye *.myeye !=
*.refeye 0 >
*.in2 *.out2 !=
*.in6 42 = or
*.tin1 3 =
start
*.numties .deltie store
*.tiepres .deltie store
stop

cond
*.stage 3 =
*.eyef 0 >
*.refeye *.myeye !=
*.refeye 0 >
start
*.maxvel *.vel sub .up store
*.refxpos *.refypos angle .setaim store
42 .out6 store
*.refxpos .out7 store
*.refypos .out8 store
stop

cond
*.eyef 20 >
*.refeye *.myeye != or
*.in2 *.out2 !=
*.refeye 0 >
start
*.refvelsx *.vel div 10 sub .sx store
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos angle *.mysx *.refvelsx add mult .aimshot store
*.nrg 4 div .shootval store
-1 .shoot store
0 140 store
stop

cond
*.tin1 3 =
start
3 .stage store
3 .tout1 store
42 .out6 store
stop

cond
*.in6 42 !=
*.stage 3 =
*.refeye *.myeye =
*.robage *.refage <
start
14000 140 store
stop

'Stage 1B: The Sitting Predator
'*************************

'Become fixed

cond
*.multimode 0 =
*.numties 1 >
*.trefeye 0 =
*.fixpos 0 =
start
3 .out4 store
1 .fixpos store
70 .stiftie store
stop

cond
*.trefeye *.myeye %=
*.fixed 1 =
*.numties 2 = or
*.mutlimode 0 >
start
6 .out4 store
0 .fixpos store
50 .stiftie store
stop

'Become the Swarm

cond
*.numties 2 >
*.trefeye 0 = or
*.stage 6 !=
*.fixed 0 =
*.tin1 0 !=
start
6 .stage store
stop

'Stage 5 Genes: The Waiting trap
'**********************

cond
*.stage 5 =
*.robage 26 =
start
9 140 store
stop

cond
*.stage 5 =
*.robage 25 = or
*.nrg 5000 >
start
50 .repro store
*.tiecounter 1 add .tiecounter store
*.tiecounter .tie store
stop

'Wait for the tie to harden and then set the adolecesants memory

cond
*.stage 5 =
*.multi 0 >
start
*.stage .tieloc store
55 .tieval store
70 .stifftie store
stop

cond
*.trefeye *.myeye %=
*.stage 5 =
*.tielen 40 >
start
40 .fixlen store
70 .stifftie store
stop

cond
*.stage 5 =
start
.setaim .tieloc store
*.aim .tieval store
stop

cond
*.stage 5 =
*.maxvel *.numties div *.vel !=
start
*.maxvel *.numties div *.vel .aim store
stop

cond
*.stage 5 =
*.numties 3 =
*.xpos *.bxpos %=
*.ypos .bypos %=
*.robage 200 >
*.kills 2 >
start
1 .fixpos store
stop

cond
*.stage 5 =
*.numties 3 =
*.fixed 1 =
*.trefeye 0 =
*.kills 3 >
start
.fixpos .tieloc store
1 .tieval store
stop

cond
*.stage 5 =
*.numties 3 =
*.fixed 1 =
*.trefeye *.myeye %=
start
55 .sharenrg *.multi mult store
stop

cond
*.stage 5 !=
*140 9 =
start
0 140 store
stop

'Stage 5-5 Instructions:
'********************

cond
*140 9 !=
*.numties 0 >
*.trefeye *.myeye =
*.multimode 0 =
*.stage 55 =
start
*.readcounter .multimode store
stop

cond
*140 9 !=
*.multimode 0 >
*.multeyef *.eyef >
*.stage 55 =
start
*.multrefvel *.vel sub .dn store
stop

'Turn both bots to face 90 degrees out.

cond
*140 9 !=
*.multimode 0 >
*.trefeye *.myeye %=
*.trefeye 0 !=
*.tielen 70 !=
*.tieang 210 !=
*.stage 55 =
start
240 .fixang store
70 .fixlen store
70 .stiftie store
stop

cond
*.stage 55 =
*.trefeye *.myeye %=
start
*.trefvel *.vel sub .aim store
55 .sharenrg *.multi mult store
stop

cond
*.stage 55 =
*.nrg 4000 >
*.eyef 0 =
*.venom 100 <
start
*.nrg 6 div .strvenom store
stop

cond
*.stage 55 =
*.nrg 4000 >
*.eyef 0 =
*.poison 50 <
start
*.nrg 5 div .mkpoison store
.eyef .ploc store
stop

cond
*.stage 55 =
*.nrg 5000 >
*.eyef 0 =
*.poison 10 >
*.venom 10 >
start
*.nrg 3 div .shootval store
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos angle .aimshot store
-1 .shoot store
stop

cond
*.stage 55 =
*.kills 5 >
start
.stage .tieloc store
0 .tieval store
stop

cond
*.stage 55 =
*.kills 5 >
start
.fixpos .tieloc store
0 .tieval store
0 .stage store
stop

'Dietary Genes
'***************

cond
*.nrg 3000 >
*.body 1000 <
*.pleas 0 >
start
*.pleas 2 div .strbody store
stop

'Feed when hungry from body

cond
*.nrg 500 <
*.body 0 >
*.numties 0 =
start
*.body *.pain add 2 div .fdbody store
stop

'Reproductive Genes
'****************

cond
*.fixed 0 !=
*.nrg 6000 >
*43 5 <
start
60 .repro store
*43 1 add 43 store
stop

cond
*.numties 2 <
*.trefeye 0 =
*.nrg 4000 >
*43 6 <
start
50 .repro store
*43 1 add 43 store
stop

cond
*.refeye *.myeye !=
*.nrg 2000 >
start
50 .repro store
stop

'MultiMode Only

cond
*.multimode 0 >
*.nrg 4000 >
*.trefeye *.myeye = or
*.refeye *.myeye =
start
*.multimode *.tienum store
*.tieang .setaim store
7 .out4 store
stop

'Reset Values
'**************

cond
*.stage 3 =
start
0 .fixpos store
stop

cond
*.numties 0 =
*.fixed 0 !=
*.out4 7 !=
start
55 .stage store
0 .fixpos store
stop

cond
*.numties 0 =
*.vel 0 !=
start
0 .fixpos store
0 .tiecounter store
stop

cond
*.fixed 0 != and
*.out4 7 != or
*.out5 7 != or
*.trefeye *.myeye %=
*.vel 0 !=
start
0 .fixpos store
0 .stage store
stop

cond
*.numties 0 >
*.readcounter *.multimode >
start
0 .multimode store
stop

cond
*.numties 0 >
*.readcounter *.multimode =
*.trefeye 0 =
start
0 .multimode store
stop

cond
*.readcounter *.multimode =
start
213 .tieloc store
0 .tieval store
stop

cond
*.readcounter *.multimode =
start
151 .tieloc store
*.multimode .tieval store
stop
end

the conditions I included are for optimal production with 1 Slim Evo in a field with 30 veggies, and lots of enemies, not including the sea snake yet. For fields with 5+ slim evos, 5000 starting nrg should work well enough.

Hope you enjoy it.

168
Bot Tavern / The amazing Antbot
« on: May 04, 2008, 02:17:53 PM »
Quote from: bacillus
That's a whole lot of memory locations. I played around with the idea of these pheromone highways, but the paths could only be followed by individuals and not shred with others. Why remember places where there is no food? Maybe tracking the ant's position when coming back from food may help.

Say the bot needs to maneuver around another hive, it is important that it remembers the waypoint to get around the hive, and not cause tensions. Since your ant bots are very good at being agressive, it is the best interest of your bots to remember important information such as how to avoid other hives and not infringe on their food collecting. The idea is so no matter what your bot decides to do, it will always have a return point. I have detailed the conditions more for the 20 waypoints, now it only counts to the timer when the bot is facing away from the hive, so you dont get overlaps in waypoints, and it uses a comparison for distance instead of timers to activate the intial timer of 200 cycles now reduced to 50. Every 200 botwidths could be recorded as safety points. You already have a complex mechanism for communication, its a matter of genetic language. ''I/O 7-X coordinate of last food sighting ''I/O 8-Y coordinate of last food sighting and I/O 3 are for commands of some sort. So I/O 3 allows your btos to say something meaning the 8 and 7 I/Os should be stored here, or whatever. Say you want the waypoints to be used by everyone, limit scout repoduction to one until the queen is given a highway, make all default births dormant for 30 cycles, so the queen can write the locations in their memory, having them all tie together to exchange the missing pieces will make this faster for the queen. Now you have 20 waypoints, where scouts and warriors can go, search for food, protect each other and maintain the perimeters near food. THe protocols for when and what btos communicate can be determined using I/O 2 since all types are there. Warriors and Scouts could exhange information on enemies and veggies to make sure both are taken care of for the queen, and I/O 3 could also be used as an override to make all bots active for war with I/O 7 and 8 giving them the coordinates of the enemy's last position, and it might be useful for I/O 9 to tell how long ago the enemy was spotted near the queen. THis information is vital, the bots could fan out to cover all possible locations of the enemy, and communicate locations with ties, a wall of ants if you will, all capable of moving for the queen. I like the idea of a super inteligent ant, even tho it will require 90 memory locations, this also means your bot will still do something with mutations later on; as the locations and values change, the bots will exhibit different behaviors as a result of it. Keep mutations chances very low in occurance, so it doesn't fall apart everywhere, that could be detrimental.

Ideally you would store 500 waypoints, but the genetic coding would have to be broken up since the customizable sysvars are sparatic. Other than that, you wouldn't need Slim Evo's bot id gene, its too big for this project, use something like;

cond
*.robage 0 =
start
40 .memloc store
0 .memval store
stop

cond
*.robage 32000 sub 2 mod 4
start
.memloc inc
.memval inc
stop

something for how a waypoint array counter would work wiht only a handful ogf smaller genes. for comparison purposes, make a gene to check that you dont overlap certain waypoint types, and check always enemy waypoints with all your waypoints to make decisions based on safety, or need for food.

169
Bot Tavern / The amazing Antbot
« on: May 04, 2008, 01:38:43 AM »
Slim Evo used an individuality gene that recorded 10 bot ids in one gene. Every time a bot came upon a veggie, you could use a location store, but always have the hive coordinates stored. So say your bots could remember 20 waypoints, that means they could communicate with the army and queen about where food is, where enemies are along the way, where to send help, having positions remembered gives the bot a consiousness of its suroundings. I suggest 15 waypoints for course use, meaning every 100 cycles, a waypoint is stored only when nothing is seen; that gives your workers a route to follow and return to at any point along the route, a highway system if you will. Allocate 10 waypoints for enemy coordinates, each time a new bot id is seen near or around a waypoint besides enemy waypoints. Allocate another 20 waypoints for food and you've got a bot that knows where 20 points to harvest are, 10 enemies and how to get to and from the hive. This also sets your bots up for specialization; a bot on one side heading away from the hive will always work in the same general direction, never going to the other side of the hive and interfering unless called for. You could also add 5 waypoints for other hives, and you might want to consider some variable to control the amount of agression the hive takes based upon the number of same bot species reported. If you want I can pm you my universal conspec genes, but I have to tell you they aren't that efficient, they lay out the general purpose of them. I could see this bot becoming very intelligent with only a few more genes for memory manipulation. Fortunately, they make a memloc, so you can write to locations faster and easier than the system I used in Slim Evo, which was merely a string of conditions. Also, this may lead you to want to do some tie communications between scouts to share information about enemies and routes, it may be possible to store 100 waypoints in a single bot, using 200 memlocs, but the rigging would no longer be for one gene.

170
Quote from: EricL
Today, refvars and trefvars are populated only once per cycle,  at the beginning of the cycle based upon whatever the value of .focuseye or .readtie was at the end of the last cycle.  Changing .focuseye or .readtie mid cycle has no effect - only the last value stored matters and then only for the next cycle.  This makes it impossible to switch between eyes or ties during a cycle.  Same thing with .tienum and controlling ties.

I've been playing around and I think I can make the refvars and trefvars populate mid cycle whenever .focuseye or .readtie is modified.  This would make things like the following possible:


-4 .focuseye store
*.memval *.dnalen != and
140 .aimleft store
-1 .shoot store

-3 .focuseye store
*.memval *.dnalen != and
105 .aimleft store
-1 .shoot store

-2 .focuseye store
*.memval *.dnalen != and
70 .aimleft store
-1 .shoot store

.
.
.

What do people think of this?

I have been toying arround with multibot eyes, one idea I had was to have two bots focus on the same bot through touts, and have a tird bot tied to either bot scan for more. So far I've managed a translator and tout/ins, the focus is almost completed. I've been wondering tho, how was sight supposed to be handled? Was it to be realisitic? Or simulated? Because realisiticly, you would have several bots looking at one group or bots, and those bots would tell others to activate based on tie counters and such.

171
Bot Challenges / combat challenge
« on: May 02, 2008, 11:42:21 PM »
Use the sea snake.

172
Suggestions / A way to edit bot's starting body
« on: May 02, 2008, 12:43:45 AM »
It shouldn't be too ahrd, theres already a energy distributor for veggies. I actually like that idea..

173
The Gene depository / OCULUS II
« on: May 02, 2008, 12:00:17 AM »
Quote from: EricL
Quote from: gymsum
I thought sgn wasn't supported in DB yet.
It's there.  Replaces the top value on the integer stack with either -1 or 1 depending on it's sign.

thought it was sin.. lol

174
Bot Tavern / The amazing Antbot
« on: May 01, 2008, 11:56:33 PM »
Quote from: bacillus
I just saw something great in the antbot's behaviour: two scout were pulling in a veggie together because it was too heavy. It was caused by one scout who was trying to drag it away, but couldn't because the tie kept breaking, until another one came along and helped him.

Later I managed to get four scouts pulling away at a veggie with 23000 body.

Could include your sim, I'ld love to see this.

175
ok got something for you

cond
*.robage 32000 sub 2 mod 1 =
start
....push a variable into a sys var at location
stop

cond
*.robage 32000 sub 3 mod 1 =
start
...read from the location in 1st gene
stop

cond
*.robage mod 1 =
start
..push something into another location, such as tout1, or multi, or whatever
stop


This will let your multibots tie communicate between veggies. Every cycle store say *40 into tout1. Everyother cycle another bot writes to 40. Every three cycles the bot reads from tin1. That gives something for what you want. It could be used so a bot stores something in the veggie, another makes it shoot, and another makes it turn by waht bot a said or read.

176
Interesting behaviour bots / Antbot v1.3
« on: May 01, 2008, 12:13:28 AM »
I think I've found you're problem...

You have conditions for the ins sysvars, but at no point did you make a store to any of the out sysvars, meaning all in sysvars on conspecs returned 0 by default, or mutant. This could be your underlying problem, you should store some var into the in sysvars.

177
The Gene depository / OCULUS II
« on: May 01, 2008, 12:10:42 AM »
I thought sgn wasn't supported in DB yet.

178
Suggestions / fear and courage
« on: May 01, 2008, 12:08:02 AM »
Quote from: Numsgil
The core issue here is that the concept of "fear" is an emotion that our brains give us to keep us alive.  Meaning that it's something a bot writer (or evolution) needs to actually build.  There's no way to add a concept of fear to the program and have bots respond by running away or whatever, because "run away" is too nebulous a concept to enforce on the actual program level.  Of course, there's nothing to prevent someone from coding in something like fear in their bot and having their bots run away when out numbered or out gunned or whatever.

I agree with you 100%. Thats why I mentioned pain and pleasure, they can be implemented as emotions, since what they mostly are in tangible manners.

179
Bot Tavern / The amazing Antbot
« on: May 01, 2008, 12:05:59 AM »
I like your ideas, but lose the workers. I am currently working on something similar to a gps system, where a bot stores several points before finding food, then stores the points as a route, those creating a highway for others to follow using the out sysvars. Ideally your scout could find the food, marking every 60 or 30 cycles a point to remember that is the return route both ways, also may give them more security since your 'army' coudl focus around those points so that your scouts dont lose the food. Also, gardening usually involves creating more veggies with the ones you have, which means you want an internal veggie counter for your queen so that it doesnt over produce and require too much food. Also, routes could be dominated by a colony or hive, so if another hive or colony is seen following the route, they are stopped or killed.

180
Evolution and Internet Sharing Sims / Successes...and Failures?
« on: April 30, 2008, 05:13:50 PM »
I still stand against the move, I just dont see how its necessary. Isn't there already a conditions thing that captures any bot that does something or aquires something, the scripts thingy...

Pages: 1 ... 10 11 [12] 13 14