46
Bug reports / When a bot wins the league
« on: January 17, 2007, 06:37:02 AM »
Minor bug, when a bot wins the league a match is played between the original 29th and 30th bot before you can save the new league rankings.
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.
' Gene 12 tie to parent
cond
*.robage 0 =
start
.tie inc
stop
' Gene 13 sever tie to parent
cond
*.robage 1 =
start
.deltie inc
stop
' Gene 7 wide search 1
cond
*.eye1 *.eye5 >
start
mult -140
stop
' Gene 8 wide search 2
cond
*.eye9 *.eye5 >
start
mult 140
stop
' Gene1. Simple search pattern.
cond
*.eye4 *.eye6 >
start
mult -35
stop
' Gene2. Simple search pattern part 2
cond
*.eye6 *.eye4 >
start
mult 35
stop
' Gene 3. Move forward
cond
*.vel 40 <
*.refeye *.myeye !=
start
40 *.vel sub 2 div .up store
stop
' Gene 4. Shoot the food
cond
*.eye5 40 >
*.refeye *.myeye !=
start
-1 .shoot store
stop
' Gene 6. Avoid conspecifics
cond
*.refeye *.myeye =
start
mult 180
stop
' Gene 14 rotate back and continue feeding
cond
*50 0 >
start
mult 628
50 dec
stop
' Gene 5. Reproduce
cond
*.nrg 5000 >
start
50 .repro store
mult 628
50 inc
stop
'Gene 9. Get rid of that waste
cond
*.waste 100 >
start
1 .backshot store
-4 .shoot store
*.waste .shootval store
stop
' Gene 10. Perform the rotation
cond
start
.aimdx store
stop
' Gene 11. slide to the side.
cond
*.aimdx 0 !=
*.aimdx 180 !=
start
*.aimdx 10 div .dx store
stop
end
'Topic: 3 cell bot
'Shen
' Updated Gaesum
' Improved repro genes
' Better tracking and navigation
'
'
'
' --==-- Reproduction loop --==--
'
' Using *50 for role assignment
' 0 will only rotate and try to repro its head
' 10 is the Head
' 20 is the Tail
' 100 is Temp Head
' 200 is Temp Tail
'
' - Unmake Slime -
cond
*.slime 0 >
*.numties 0 =
start
*.slime *.slime *.slime add sub .mkslime store
stop
' - Lone bots repro Heads and becomes Temp Tail -
cond
*.numties 0 =
*.eye5 30 <
*.nrg 500 >
*.vel 20 <
start
50 .repro store
200 50 store
stop
' - Child ties to parent and becomes Temp Head -
cond
*.robage 0 =
start
100 .tie store
100 50 store
stop
' - Temp Head aligns and becomes Head -
cond
*.multi 1 =
*50 100 =
start
100 .readtie store
100 .tienum store
628 .fixang store
200 .fixlen store
35 .stifftie store
10 50 store
stop
' - Temp Tail aligns and becomes Tail -
cond
*.multi 1 =
*50 200 =
start
100 .readtie store
100 .tienum store
628 .fixang store
20 50 store
stop
' - Rescue lost bots -
cond
*.numties 0 =
*.vel 2 <
*.robage 10 >
start
10 .aimdx store
stop
' - Detach multi headed bots -
cond
*.numties 1 >
' *.tiepres 100 =
start
*.tiepres .deltie store
200 50 store
stop
' - Start Repro Loop -
cond
*.multi 1 =
*.nrg 5000 >
*.eye5 20 <
*.body 400 >
start
100 .deltie store
stop
' --==-- Navigation --==--
' -=- Head Nav -=-
' - Approach Enemy -
cond
*.eye5 0 >
*.eye5 30 <
*.refeye *.myeye !=
*.vel 40 <
*.multi 1 =
*50 10 =
start
10 .up store
stop
' - Search -
cond
*.eye5 0 =
*.refeye *.myeye !=
*.eye3 *.eye 7 =
*.vel 30 <
*.multi 1 =
*50 10 =
start
10 .up store
30 rnd 30 rnd sub .aimdx store
stop
' --==-- Distant Tracking --==--
' - Wide -
cond
*.eye5 30 <
*.refeye *.myeye !=
*.eye7 *.eye3 !=
*.multi 1 =
*50 10 =
start
*.eye7 *.eye3 sub 2 mult .aimdx store
*.eye7 *.eye3 sub 2 div .dx store
stop
' - Narrow -
cond
*.eye5 30 <
*.refeye *.myeye !=
*.eye6 *.eye4 !=
*.multi 1 =
*50 10 =
start
*.eye6 *.eye4 sub 2 mult .aimdx store
*.eye6 *.eye4 sub 2 div .dx store
stop
' --==-- Close Tracking --==--
' - Wide -
cond
*.eye5 30 >
*.refeye *.myeye !=
*.eye7 *.eye3 !=
*.multi 1 =
*50 10 =
start
*.eye7 *.eye3 sub 3 div .aimdx store
*.eye7 *.eye3 sub 4 div .dx store
stop
' - Narrow -
cond
*.eye5 30 >
*.refeye *.myeye !=
*.eye6 *.eye4 !=
*.multi 1 =
*50 10 =
start
*.eye6 *.eye4 sub 3 div .aimdx store
*.eye6 *.eye4 sub 4 div .dx store
stop
' --==-- Conspecifics --==--
' - Avoid Close Friend -
cond
*.eye5 30 >
*.refeye *.myeye =
*.multi 1 =
*50 10 =
start
*.eye4 *.eye6 sub .aimdx store
*.eye4 *.eye6 sub 5 div .dx store
stop
' - Ignore Distant Friend -
cond
*.eye5 30 <
*.refeye *.myeye =
*.vel 30 <
*.multi 1 =
*50 10 =
start
10 .up store
30 rnd 30 rnd sub .aimdx store
stop
' -=- Tail Nav -=-
' - Narrow -
cond
*.eye5 30 >
*.eye6 *.eye4 !=
*.refeye *.myeye !=
*.multi 1 =
*50 20 =
start
*.eye6 *.eye4 sub .aimdx store
*.eye6 *.eye4 sub 4 div .dx store
stop
' - Wide -
cond
*.eye5 30 >
*.eye7 *.eye3 !=
*.refeye *.myeye !=
*.multi 1 =
*50 20 =
start
*.eye7 *.eye3 sub .aimdx store
*.eye7 *.eye3 sub 4 div .dx store
stop
' --==-- Defence --==--
' - Eat -
cond
*.eye5 29 >
*.refeye *.myeye !=
*.multi 1 =
start
-1 .shoot store
stop
' - Make shell -
cond
*.nrg 1000 >
*.shell 50 <
*.multi 1 =
start
10 .mkshell store
stop
' - Make slime -
cond
*.nrg 500 >
*.slime 190 <
*.multi 1 =
start
200 *.slime sub .mkslime store
stop
' --==-- Other Stuff --==--
' - Sharing -
cond
*.nrg *.trefnrg !%=
*.multi 1 =
start
50 .sharenrg store
50 .shareslime store
50 .shareshell store
stop
' - Make Body -
cond
*.nrg 4500 >
*.body 500 <
start
50 .strbody store
stop
' - Feed from Body -
cond
*.nrg 1000 <
*.body 10 >
start
100 .fdbody store
stop
' Waste disposal
cond
*.waste 400 >
start
-4 .shoot store
*.waste .shootval store
stop
end
' Topic: My attempt at a MultiBot
'Henk
' Oranje_Bot
' attemp at a multibot
' by Henk
' tie 1 = A tie to a friend
' tie 2 = ATTACK
'Tie at birth
cond
*.robage 0 =
start
1 .tie store
1 .readtie store
123 .out1 store
stop
' set length
cond
*.numties 1 =
*.multi 1 =
*.trefage *.robage >
start
1 .tienum store
200 .fixlen store
stop
' move when untied
cond
*.numties 0 =
*.robage 2 >
start
*.maxvel *.vel sub .up store
stop
' follow when not tied
' **************************
cond
*.eye1 *.eye9 >
*.eye1 *.eye5 >
*.numties 0 =
start
-128 .aimdx store
4 .sx store
stop
cond
*.eye9 *.eye1 >
*.eye9 *.eye5 >
*.numties 0 =
start
128 .aimdx store
4 .dx store
stop
cond
*.eye4 *.eye6 >
*.eye4 *.eye5 >
*.numties 0 =
start
-26 .aimdx store
stop
cond
*.eye6 *.eye4 >
*.eye6 *.eye5 >
*.numties 0 =
start
26 .aimdx store
stop
cond
*.numties 0 >
start
628 .fixang store
stop
' follow when tied
' *********************
cond
*.eye1 *.eye9 >
*.eye1 *.eye5 >
*.numties 0 >
*.trefage *.robage <
start
500 .fixang store
-135 .aimdx store
-5 .dx store
stop
cond
*.eye9 *.eye1 >
*.eye9 *.eye5 >
*.numties 0 >
*.trefage *.robage <
start
756 .fixang store
135 .aimdx store
5 .dx store
stop
cond
*.eye4 *.eye6 >
*.eye4 *.eye5 >
*.numties 0 >
*.trefage *.robage <
start
1230 .fixang store
-35 .aimdx store
-1 .dx store
stop
cond
*.eye6 *.eye4 >
*.eye6 *.eye5 >
*.numties 0 >
*.trefage *.robage <
start
26 .fixang store
35 .aimdx store
1 .dx store
stop
' Share energy with partner
cond
*.numties 1 =
*.trefnrg *.nrg !%=
*.trefage *.robage <
*.trefnrg 7000 <
*.tiepres 2 !=
*.robage 50 >
start
50 .sharenrg store
stop
' Share slime with partner
cond
*.numties 1 =
*.trefnrg *.nrg !%=
*.trefage *.robage >
*.robage 50 >
start
50 .shareslime store
stop
' Share shell with partner
cond
*.numties 1 =
*.trefnrg *.nrg !%=
*.trefage *.robage <
*.robage 50 >
start
50 .shareshell store
stop
cond
*.numties 1 =
*.trefage *.robage <
*.shell 90 <
*.robage 50 >
start
100 *.shell sub .mkshell store
stop
cond
*.numties 1 =
*.trefage *.robage <
*.slime 90 <
*.robage 50 >
start
200 *.slime sub .mkslime store
stop
' repro for sole bot.
cond
*.nrg 8000 >
*.numties 0 =
start
50 .repro store
stop
' FORWARD killing
cond
*.numties 1 =
*.trefage *.robage <
*.robage 20 >
*.eye5 35 >
*.refeye *.myeye !=
start
-1 .shoot store
stop
' Killing for lonesome cowboys
cond
*.numties 0 =
*.in1 123 !=
*.eye5 35 >
*.robage 20 >
start
2 .tie store
stop
' aft killing
cond
*.in1 123 !=
*.eye5 35 >
*.trefage *.robage >
*.multi 1 =
*.robage 5 >
start
2 .tie store
stop
' eat through tie
cond
*.numties 0 >
*.tiepres 2 =
start
2 .tienum store
-1 .tieloc store
-1000 .tieval store
stop
cond
*.waste 0 >
*.eye5 30 >
*.refeye 0 =
*.robage 1 >
start
-4 .shoot store
1 .shootval store
stop
cond
*.waste 50 >
start
.backshot inc
-4 .shoot store
*.waste .shootval store
stop
' move as multibot
cond
*.numties 1 =
*.trefage *.robage <
*.robage 20 >
start
*.maxvel *.vel sub .up store
stop
' TIE ang reinitiation gene
cond
*.robage 1 =
start
*.robage 50 add 41 store
stop
cond
*.robage *41 >
*.robage 2 >
*.numties 0 >
start
628 .fixang store
*.robage 40 add 41 store
stop
' ************************
' reproduction for aft bot
cond
*.trefage *.robage >
*.nrg 8000 >
*.numties 1 =
*.robage 50 >
start
50 .repro store
' I dont wanna keep my child
2 55 store
stop
' restore cell 55 when alone
cond
*.numties 0 =
*55 0 !=
start
0 55 store
stop
' REMOVE SHELL WHEN NOT IN MULTIBOT
cond
*.shell 0 >
*.numties 0 =
start
0 *.shell sub .mkshell store
stop
' avoid friends when I'm tied
cond
*.eye5 0 >
*.in1 123 =
*.numties 1 =
*.trefage *.robage <
start
314 .aimdx store
stop
cond
*.eye5 0 >
*.in1 123 =
*.numties 0 =
start
314 .aimdx store
stop
cond
*.robage 4 =
*.numties 1 =
start
55 .tmemloc store
stop
cond
*.robage 5 =
*.numties 1 =
start
55 .tmemloc store
stop
cond
*.robage 6 =
*.numties 1 =
start
55 .tmemloc store
stop
cond
*.robage 6 =
*.numties 1 =
*.tmemval 2 =
start
1 .deltie store
stop
' reset trefage when untied
cond
*.numties 0 =
*.trefage 0 !=
start
0 .trefage store
stop
' Anti tie gene
' Evil anti-tie gene.
cond
*.tiepres 1 !=
*.tiepres 2 !=
*.numties 0 >
start
*.tiepres .tienum store
.tieval .tieloc store
1000 .tieval store
stop
end
'Topic: 3 cell bot
'PY
'hexagonis
'
' first robot stores value in 50 to identify itself
' then reproduces
cond
*.numties 0 =
*.robage 0 !=
*.eye5 10 <
*.nrg 100 >
start
3 50 store
80 .repro store
stop
' lone robot needs to move away from objects before breeding
cond
*.numties 0 =
*.robage 0 !=
*.eye5 10 >
start
-5 .up store
stop
' first robot rotates to face away from the circle
cond
*50 3 =
*.robage 10 >
start
419 .aimsx store
4 50 store
stop
cond
*.numties 1 =
*.robage 10 >
*.eye5 40 >
*50 1 !=
start
419 .aimsx store
stop
'dismantle a faulty structure
cond
*.robage 100 >
*.numties 1 =
*.multi 1 =
start
1 .deltie store
stop
' new baby ties to parent
cond
*.robage 0 =
start
1 .tie store
1 .readtie store
40 .stifftie store
stop
cond
*.robage 1 =
*50 1 !=
start
419 .aimsx store
stop
cond
*.robage 2 =
start
50 .memloc store
stop
' last robot ties to original parent.
cond
*.memval 4 =
*.eye5 30 >
*.numties 1 =
start
1 .tie store
stop
cond
*.robage 2 =
*.eye5 30 <
*50 0 =
*.memval 2 !=
start
80 .repro store
stop
cond
*.robage 2 >
*.robage 10 <
*.numties 2 =
*50 1 !=
start
415 .aimsx store
1 50 store
stop
' Use some body reserves to stay alive
cond
*.nrg 500 <
*.body 100 >
start
100 .fdbody store
stop
' Store body away in times of plenty
cond
*.nrg 5000 >
*.body 100 <
start
100 .strbody store
stop
' Store body away when even more stuffed with energy
cond
*.nrg 10000 >
*.body 1000 <
start
100 .strbody store
stop
cond
*.nrg *.trefnrg >
*.multi 1 =
*.robage 30 >
start
50 .sharenrg store
stop
'Reproduce to form new hexagonis
cond
*.nrg 15000 >
*.body 500 >
*50 2 =
*.numties 2 =
start
80 .repro store
stop
cond
*.robage 1 >
*.robage 10 <
*.memval 2 =
start
1 .deltie store
-10 .up store
0 50 store
stop
' set tie angles to zero
' set tie length too
cond
*.multi 1 =
*.robage 30 =
start
1 .tienum store
628 .fixang store
100 .fixlen store
50 inc
stop
cond
*.eye5 20 >
*.refaimsx *.myaimsx !=
*.refeye *.myeye !=
start
-1 .shoot store
stop
cond
*50 2 >
*.eye5 40 <
*.multi 1 =
*.robage 30 >
*.nrg 100 >
*.pain 0 >
start
8 .up store
stop
cond
*.multi 1 =
*.numties 2 =
*.nrg 1000 >
start
10 .mkslime store
stop
cond
*.multi 1 =
*.numties 2 =
*.eye4 *.eye6 !=
start
*.eye4 *.eye6 sub 10 div .tieang store
stop
end
'Topic: 3 cell bot
'PY
'Hexagonis
'
' first robot stores value in 50 to identify itself
' then reproduces
cond
*.numties 0 =
*.robage 0 !=
start
3 50 store
50 .repro store
stop
' first robot rotates to face away from the circle
cond
*50 3 =
*.robage 10 >
start
419 .aimsx store
4 50 store
stop
'cond
'*50 1 =
'*.numties 2 =
'start
'419 .aimsx store
'2 50 store
'stop
' new baby ties to parent
cond
*.robage 0 =
start
1 .tie store
1 .readtie store
40 .stifftie store
stop
cond
*.robage 1 =
*50 1 !=
start
419 .aimsx store
stop
cond
*.robage 2 =
start
50 .memloc store
stop
' last robot ties to original parent.
cond
*.memval 4 =
*.eye5 30 >
*.numties 1 =
start
1 .tie store
stop
cond
*.robage 2 =
*.eye5 30 <
*50 0 =
start
50 .repro store
stop
cond
*.robage 2 >
*.robage 10 <
*.numties 2 =
*50 1 !=
start
415 .aimsx store
1 50 store
stop
' Use some body reserves to stay alive
cond
*.nrg 500 <
*.body 100 >
start
100 .fdbody store
stop
' Store body away in times of plenty
cond
*.nrg 5000 >
*.body 100 <
start
100 .strbody store
stop
' Store body away when even more stuffed with energy
cond
*.nrg 10000 >
start
100 .strbody store
stop
cond
*.nrg *.trefnrg >
*.multi 1 =
*.robage 30 >
start
50 .sharenrg store
stop
' set tie angles to zero
' set tie length too
cond
*.multi 1 =
*.robage 30 =
start
1 .tienum store
628 .fixang store
100 .fixlen store
50 inc
stop
cond
*.multi 1 =
*.eye5 40 >
*.refaimsx *.myaimsx !=
*.refeye *.myeye !=
start
-1 .shoot store
stop
cond
*50 2 >
*.eye5 40 <
*.multi 1 =
*.robage 30 >
start
5 .up store
stop
end
cond
*.eye5 0 >
*.refeye *.myeye =
start
*.refaim .setaim store
stop
cond
*.eye5 0 >
*.refeye *.myeye !=
*.refeye 0 !=
start
*.refaim .setaim store
stop
cond
*.eye3 *.eye5 >
start
45 .aimsx store
stop
cond
*.eye7 *.eye5 >
start
45 .aimdx store
stop
cond
*.eye1 *.eye5 >
start
75 .aimsx store
stop
cond
*.eye9 *.eye5 >
start
75 .aimdx store
stop
cond
*.refeye *.myeye !=
*.eye5 34 >
start
-1 .shoot store
stop
cond
*.fixed 0 =
*.vel 15 <
start
1 .up store
stop
cond
*.eye5 35 >
*.fixed 0 =
start
1 .fixpos store
stop
cond
*.eye5 36 <
*.fixed 1 =
start
0 .fixpos store
stop
cond
*.nrg 6000 >
start
50 .repro store
stop
end
'Topic: Interesting group behaviour
'Group Mind Bot
'Made by k0zm0
'made: 4.aug.2004
'changed :5.aug.2004
cond
*.robage 50 =
start
1256 rnd .aimsx store
999 rnd .out1 store
stop
cond
*.eye5 0 >
*.refeye *.myeye =
start
*.aim *.refaim sub .aimdx store
stop
cond
*.eye5 20 >
*.refeye 0 !=
*.refeye *.myeye !=
start
-1 .shoot store
stop
cond
*.in1 0 =
*.refeye 0 =
*.eye5 30 >
start
*.out1 .shootval store
.out1 .shoot store
stop
cond
*.refnrg 1000 >
*.in1 *.out1 =
*.refeye 0 =
*.eye5 30 >
start
-1 .shoot store
stop
cond
*.in1 0 !=
*.in1 *.out1 !=
*.refeye 0 =
*.eye5 30 >
start
-1 .shoot store
stop
cond
*.in1 *.out1 !=
*.refeye *.myeye =
*.eye5 30 >
start
*.out1 .shootval store
.out1 .shoot store
stop
cond
*.vel 10 <
start
10 *.vel sub 2 div .up store
stop
cond
*.nrg 6000 >
*.eye5 50 <
start
50 .repro store
stop
end