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.


Topics - Jez

Pages: 1 ... 14 15 [16] 17
226
Off Topic / New Horizons
« on: October 24, 2006, 05:26:03 PM »
Just to sidetrack before I start; Temple Grandin’s book Animals in Translation has a couple of great examples of animal behaviour:

1. A NASA study of pilots using computer simulation found that a worryingly large percentage of professional pilots failed to recognise a plane parked across the runway on which they landed. One even stopped his plane inside the parked plane. Nobody given this test who wasn’t a pilot failed to see the parked plane.

2. Alex? A grey parrot that has been taught to mimic all the phonetic sounds was demonstrated to the sponsors; because time was limited he wasn’t given his normal reward of a nut after each successful attempt. Eventually Alex gave the researcher a dirty look and said “Alex want a nut, Nuh Uh Tuh!”

Anyway;

I’ve just had the pleasure of watching a programme on the BBC titled Horizon - Human V 2.0 (Horizon meets the scientific prophets who claim we are on the verge of creating a new type of human.)

Over thirty years ago a scientist was challenged to stop Spanish bulls, who had been genetically trained to be ultra aggressive, from being aggressive. By the use of a radio controlled device he was able to do this.

From Moore’s Law – computers are a billion times more powerful than they were a century ago and are expected to be a billion times more powerful again in as little as the next twenty five years

To the Robotic rat – a computer controlled living entity that can be steered using a computer by rewarding the pleasure centre of the brain – or the monkey that has its thoughts read by a computer (taught to play a simple game where it moved the cursor via a joystick to touch a circle its thoughts were read by a computer which did the same thing, eventually the monkey stopped using its arm to control the joystick and via the pc accomplished the same objective!)

The date that computers are expected to be able to replicate the human brain is the same date that we are expected to understand the human brain – 2029 if I remember correctly.

From the paralysed person who only has control over his eyes, retaining full brain function, who is being taught to speak again using a computer to read his thoughts and reproduce the vocal functions he has lost to the Uni Bomber, a technophobe who used parcel bombs to kill three people and injure over 20 more, (all bombs were stamped with the letters FC.)

Ending with a little information on Quantum computers this was a great TV program and while I wouldn’t openly suggest anyone use the internet to download and watch this program I do hope you all get the chance to watch it.

I Love AI…

227
Bug reports / in3 in4 and in5 v2.37.6
« on: September 07, 2006, 08:09:28 AM »
There goes an easy workaround for dnalen not resetting.  

228
Biology / "Evolution keeps us superstitious"
« on: September 05, 2006, 07:02:00 PM »
I came across the article ‘Evolution keeps us superstitious. Now that’s lucky’ in The Times Tues Sept 5 06 by Mark Henderson - Science Editor

To paraphrase;

““Religion and other forms of magical thinking continue to thrive – despite the lack of evidence and advance of science – because people are naturally biased to accept a role for the irrational,” said Bruce Hood, Professor of Experimental Psychology at the University of Bristol”

Suggesting you can’t get rid of belief by science alone, your attachment to your wedding ring or teddy bear might be evidence of this.

““Even the most rational people behave in irrational ways and supernatural beliefs are part of the same continuum,” Professor Hood told the British Association Festival of Science in Norwich yesterday”

People are unwilling to wear clothing they believe to be from people they feel are evil or swap their wedding ring for an exact replica for instance.

““The difference between attaching significance to sentimental objects and believing in religion, magic or the paranormal is only one of degree,” Professor Hood said.”
““These tendencies,” he said,” were almost certainly a product of evolution. The human mind is adapted to reason intuitively, so that it can generate theories about how the world works even when mechanisms cannot be seen or easily deduced.”

While this has lead to scientific breakthroughs it also works the other way.

“”In most cases, intuitive theories capture everyday knowledge, such as the nature and properties of objects, what makes something alive, or the understanding that people’s minds motivate their actions,” Professor Hood said”
“But because intuitive theories are based on unobservable properties, such theories leave open the possibility of misconceptions. I believe these misconceptions of naïve intuitive theories provide the basis of many later adult magical beliefs about the paranormal.”

Because of this, he said, that it was probably pointless trying to get people to get rid of their belief systems.

“No amount of evidence is going to get people to take it on board and abandon these ideas.”

This may have evolved for several reasons;

““I don’t think we’re going to evolve a rational mind because there are benefits to being irrational, said Professor Hood.”
“Superstitious behaviour – the idea that certain rituals and practices protect you – is adaptive.”
If you remove the appearance that they are in control, both humans and animals become stressed. During the Gulf War in 1991, in areas attacked by Scud missiles there was a rise in superstitious belief”
I want to challenge recent claims by Richard Dawkins, amongst others, that supernaturalism is primarily attributable to religions spreading beliefs among the gullible minds of the young, Rather, religions may simply capitalise on a natural bias to assume the existence of supernatural forces.”

(I compare this to the ‘God’ part of the brain that I have heard about before. It was right next to a “Ten-year deadline on global warning” article btw.)

229
DNA - General / Stack length
« on: September 02, 2006, 06:59:22 AM »
Had a problem when writing a 1G bot and think I know why but wanted to confirm.

Lengthy bit of And Or code needed to be put at start of series of instructions or it wouldn't work properly.

Occured to me that if the stack has a max length and it zero's anything over that then I might have run out of space for the calculation to be carried out properly.

Is that stack thing true? If so what's the max length?

230
Bug reports / dnalen and virus
« on: September 02, 2006, 06:47:49 AM »
I think I have found a bug anyway...

Had a go at redoing Bubbles as a 1g bot, added commands to make it delete gene1 if it wasn't or gene2 if there was more than 1 gene and it was still gene1.

The problem is that while it seems to be doing this it is still suffering a dnalen change. If I open the ingame rob info it always shows ''''Gene 2: Last 'stop' at position 3299''''' but the console tells me that standard bots have a dnalen of 3300 and ones that have had a virus before have a dnalen of 3318
The other bots recognise this by using a dnalen ID and shoot it even though it is back to having one gene.

Saving the dna from each bot gives me text with seemingly random changes:
Code: [Select]
*.refvelup
  add
  0
 floor        '#name: Bubbles singleb.txt'#generation: 6'#mutations: 0condstart  300  963  *.robage sgn  1  sub abs  mult  store  500  984  *.robage sgn  1  sub abs  mult  store  336

A couple of pages of condensed code follow before it goes back to normal code and continues until the next time that '#name:' bit appears (have just looked again and it seems to be triggered by '0 floor' and stops being condensed at the next '0' increasing in length by one '0' each time? The condensed code always seems to be the original code from the start and I can't spot any '0 floor's in it.

Looks like the dnalen changes back to 3300 if I save the dna for one of the corrupted bots and restart the sim with it.

Used:
DB V2.37.6
League conditions
Bubbles 1G
DIN 2

231
Simulation Emporium / Strange Grouping
« on: August 30, 2006, 10:31:19 AM »
I've had strange behaviour from bots before, my coding is haphazard at the best of times, but this time I was impressed. I took a 1g bot, Blue on Blue, Bubbles and a version of Zebedee and pitted them all against each other. The 1g bot and Zebedee got slaughtered but the funny thing was that Blue on Blue often managed to get to 30 genes, same as Bubbles. (F1 conditions)

That's when things get a bit strange, everytime I've watched this Bubbles ends up forming a mass (as tighty packed as bots can get (wish ties allowed same:))) in the lower left of the screen, all the other Bubbles drift towards this point and Blue on Blue, if it's not surrounded by Bubbles, slowly increases in numbers until Bubbles is destroyed.

Doesn't sound so strange in writing I guess!

Anyway if anyone wants to replicate this the save game is posted here:

232
Bugs and fixes / Population control
« on: August 24, 2006, 07:26:35 AM »
Bots reach a max of about 2070, at about 2050 they start ignoring the veg.
(Bots reached 2099 this time because they carried on feeding off one veg and only stopped when the other veg reproduced)

Bot posted here so you can replicate, should take less than 2000 cycles, default conditions apply.
DB V.2.37.6

Would be interested to know if this has anything to do with Bubbles ignoring enemy at a certain population level!


'MAX POPULATION BOT
'death by baby
cond
*.paralyzed 0 !=
*.poisoned 0 !=
start
100 .repro store
*.aim 280 add .setaim store
stop

'set memval
cond
*.memloc .dnalen !=
start
.dnalen .memloc store
stop

'make tie to overwrite birth tie
cond
*.numties 0 !=
*.tiepres 0 =
start
.tie inc
stop

'deltie
cond
*.tiepres 0 !=
start
*.tiepres .deltie store
stop

'repro
cond
*.nrg 1000 >
*.body 500 >
start
25 .repro store
628 *.aim add .setaim
stop

'move toward food
cond
*.numties 0 =
*.eye5 0 >
*.memval *.dnalen !=
start
*.refxpos *.refypos dist 500 div *.maxvel mult *.refvel add *.maxvel ceil .up store
*.refxpos *.refypos angle .setaim store
*.veldx .sx store
stop

'shoot food
cond
*.eye5 30 >
*.memval *.dnalen !=
start
'*.refxpos *.refypos angle *.aim sub .aimshoot store
*.nrg 32 div .shootval store
-6 .shoot store
stop

'avoid friends
cond
*.eye5 0 >
*.memval *.dnalen =
start
*.refxpos *.refypos angle 280 add .setaim store
stop

'search for food
cond
*.eye5 0 =
start
*.aim 280 add .setaim store
stop

'make body
cond
*.nrg 1000 >
start
100 .strbody store
stop

'use body
cond
*.nrg 500 <
start
100 .fdbody store
stop

end

233
Off Topic / Happy Birthday Numsgil
« on: August 24, 2006, 07:13:27 AM »
 Happy Birthday Numsgil!

234
Biology / Max number of bots
« on: August 23, 2006, 01:37:16 PM »
Is there a max number of bots on screen or a max number for an individual species?

My latest bot stops feeding at about 2050 bots. It seems to reach about 2070 because it takes a little while for the last babies to be born.
Very strange, all the bots suddenly start ignoring all the veg. The veg, if it can find space, will carry on reproducing.

Don't see how it could be the bots code.

Just realised I had only tried under default conditions, tried again and the bot also does it if I double the size of the arena.
Didn't realise we had population control!  

235
Suggestions / Eyes
« on: August 22, 2006, 03:31:20 PM »
Do you think that bots would benefit having their eyes changed a bit? The following quotes come from a previous discussion here:
Quote
What I can't do is mimic behaviour of simple things like fish because they have two eyes and bots don't. I can't mimic shoal behaviour for instance only mass following behaviour.
Quote
How about giving bots greater control over eyes, so that, for example, each refvar gets split into 1-9
So *.refeye9 would read back the eye reference of a bot in your eye9
Quote
What I was thinking when I wrote that was more sort of two eyes and being able to choose the location that they are at. The difference between having eyes at side of head or on front of head style.
Quote
Maybe something similar to what I'm doing with ties. Have a command (switcheye or something) that changes which eye has the "focus", and as such changes the info read from the refvars during DNA execution. You could change your "focus" from eye5 to eye3 and back again in a single cycle.
The only possible issue is while this increases potential complexity (which is good) it decreases reaction time that bots have. Already bots can accomplish alot in a single cycle. The few cycles it takes to turn and "lock" onto an opponent are very important to the fitness landscape, and we should be careful before we change it.
Quote
Where the eye's overlap the animal has depth perception, where they can see with only one eye they have no depth perception but can ID objects.
That's what the bots are doing wrong isn't it! They have depth perception through the side eyes but can't ID.
Quote
If we remove the distance part of eye5 and require bots to triangulate the distance to other bots, these are the consequences as I see them.
1. We would need to add some trig functions. Perhaps map the usual 0-360 degrees and -1 to 1 of regular sin and cosine to 0-1256 and -1000 to 1000.
2. Things get more complex for the bots. Specifically finding the distance to the target becomes rather difficult. Finding the velocity even more so.
3. It may not be possible to tell the difference between a really big bot and a very close bot unless you form a multibot and use steroscopic vision.
4. Alot of old bots simply wouldn't work.
I would be willing to make this fundamental change as part of the feature set for 3.0, since upgrading the numbers gives us a legitimate reason not to support older bots  But it would be a huge change.

236
F2 bots / Bubbles (F2)(Jez)-21.08.06
« on: August 21, 2006, 04:41:27 PM »
Code: [Select]
'I know, I know, but it's been 9 days since the last one!   This one has a useful venom/poison defence.

'Bubbles is a social hunter using a primitive form of communication to make up for its
'lack of spatial awareness. Bubbles follows the ancient "Path of Bubbles" which states
'that the shame of being poisoned or paralysed demands the sacred act of "Death by
'Baby!"
'To many Bubbles lead to disorientation though and some "Followers of the Bubble" may
'then become confused and unable to fufil their destiny.

def move 990
def bodya 989
def nrga 987
def nrgb 986
def bodyb 985

'ID gene - Endy
cond
*.robage 0 =
start
300 .bodya store
500 .nrga store
.thisgene .memloc store
100 .mkshell store
.tie inc
stop

'memloc check
cond
*.memloc .thisgene !=
start
.thisgene .memloc store
stop

'eye4
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye4 0 >
*.eye4 *.eye3 >=
*.eye4 *.eye2 >=
*.eye4 *.eye1 >=
*.eye4 *.eye6 >=
*.eye4 *.eye7 >=
*.eye4 *.eye8 >=
*.eye4 *.eye9 >=
start
*.aim 35 add .setaim store
stop

'eye6
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye6 0 >
*.eye6 *.eye4 >
*.eye6 *.eye7 >=
*.eye6 *.eye8 >=
*.eye6 *.eye9 >=
*.eye6 *.eye1 >=
*.eye6 *.eye2 >=
*.eye6 *.eye3 >=
start
*.aim -35 add .setaim store
stop

'eye3
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye3 0 >
*.eye3 *.eye4 >
*.eye3 *.eye6 >
*.eye3 *.eye2 >=
*.eye3 *.eye1 >=
*.eye3 *.eye7 >=
*.eye3 *.eye8 >=
*.eye3 *.eye9 >=
start
*.aim 70 add .setaim store
stop

'eye7
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye7 0 >
*.eye5 0 =
*.eye7 *.eye4 >
*.eye7 *.eye6 >
*.eye7 *.eye3 >
*.eye7 *.eye2 >=
*.eye7 *.eye1 >=
*.eye7 *.eye8 >=
*.eye7 *.eye9 >=
start
*.aim -70 add .setaim store
stop

'eye2
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye2 0 >
*.eye5 0 =
*.eye2 *.eye4 >
*.eye2 *.eye3 >
*.eye2 *.eye7 >
*.eye2 *.eye6 >
*.eye2 *.eye1 >=
*.eye2 *.eye9 >=
*.eye2 *.eye8 >=
start
*.aim 105 add .setaim store
stop

'eye8
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye8 0 >
*.eye5 0 =
*.eye8 *.eye2 >
*.eye8 *.eye3 >
*.eye8 *.eye4 >
*.eye8 *.eye7 >
*.eye8 *.eye6 >
*.eye8 *.eye1 >=
*.eye8 *.eye9 >=
start
*.aim -105 add .setaim store
stop

'eye1
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye1 0 >
*.eye1 *.eye2 >
*.eye1 *.eye3 >
*.eye1 *.eye4 >
*.eye1 *.eye6 >
*.eye1 *.eye7 >
*.eye1 *.eye8 >
*.eye1 *.eye9 >=
start
*.aim 140 add .setaim store
stop

'eye9
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye9 0 >
*.eye9 *.eye1 >
*.eye9 *.eye2 >
*.eye9 *.eye8 >
*.eye9 *.eye7 >
*.eye9 *.eye6 >
*.eye9 *.eye4 >
*.eye9 *.eye3 >
start
*.aim -140 add .setaim store
stop

'rotate if all eyes empty and not being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye4 0 =
*.eye3 0 =
*.eye2 0 =
*.eye1 0 =
*.eye6 0 =
*.eye7 0 =
*.eye8 0 =
*.eye9 0 =
*.shflav 0 =
*.shflav -2 = or
start
*.aim 280 add .setaim store
stop

'follow friend if not being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 !=
*.in2 0 != or
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 =
*.shflav -2 = or
start
*.in1 *.in2 angle .setaim store
*.in1 *.in2 dist 500 div *.maxvel mult *.refvel add 0 floor *.maxvel ceil .up store
*.veldx .sx store
stop

'avoid friend when not getting shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 =
*.in2 0 = and
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 =
*.shflav -2 = or
start
*.refxpos *.refypos angle 280 add .setaim store
stop

'if see friend but getting shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 =
*.in2 0 = and
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 !=
*.shflav -2 != and
start
*.shang .setaim store
0 .shflav store
-1 .shoot store
*.shang *.aim add .aimshoot store
stop

'all eyes empty but being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye4 0 =
*.eye3 0 =
*.eye2 0 =
*.eye1 0 =
*.eye6 0 =
*.eye7 0 =
*.eye8 0 =
*.eye9 0 =
*.shflav 0 !=
*.shflav -2 != and
start
*.shang .setaim store
0 .shflav store
-1 .shoot store
*.shang *.aim add .aimshoot store
stop

'follow friend if not being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 !=
*.in2 0 != or
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 =
*.shflav -2 = or
start
*.in1 *.in2 angle .setaim store
*.in1 *.in2 dist 500 div *.maxvel mult *.refvel add 0 floor *.maxvel ceil .up store
*.veldx .sx store
stop

'don't follow friend if getting shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 !=
*.in2 0 != or
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 !=
*.shflav -2 != and
start
*.shang .setaim store
0 .shflav store
-1 .shoot store
*.shang *.aim add .aimshoot store
stop

'target and shoot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.robage 1 >
*.eye5 9 >
*.memval *.genes !=
'*.numties 0 =
start
*.refxpos *.refypos angle *.aim sub .aimshoot store
-6 .shoot store
*.nrg 32 div .shootval store
stop

'move and communicate
cond
*.paralyzed 0 =
*.poisoned 0 =
*.robage 1 >
*.eye5 0 >
*.memval *.genes !=
*.numties 0 =
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos dist 500 div *.maxvel mult *.refvel add 0 floor *.maxvel ceil .up store
*.veldx .sx store
*.refxpos .out1 store
*.refypos .out2 store
stop

'refresh communication or hide veg location
cond
*.paralyzed 0 =
*.poisoned 0 =
*.refeye 0 =
*.eye5 0 = or
*.memval *.genes =
*.eye5 0 > and
*.in1 0 = and
*.in2 0 = and or
*.out1 0 !=
*.out2 0 != or
start
0 .out1 store
0 .out2 store
stop

'turn back after repro
cond
*.paralyzed 0 =
*.poisoned 0 =
*.move 0 !=
start
*.aim 628 add .setaim store
.move dec
1 .deltie store
0 .shoot store
stop

'baby avoids mum
cond
*.paralyzed 0 =
*.poisoned 0 =
*.robage 1 =
*.numties 0 >
*.memval *.genes = or
start
*.aim 280 add .setaim store
0 .shoot store
stop

'repro
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.move 0 =
*.body *.bodya >
*.nrg *.nrga >
start
25 .repro store
*.aim 628 add .setaim store
1 .move store
*.bodya 10 div *.bodya add 30000 ceil .bodya store
*.nrga 10 div *.nrga add 30000 ceil .nrga store
stop

'delete tie
cond
*.numties 0 >
start
*.tiepres .deltie store
stop

'make body
cond
*.paralyzed 0 =
*.poisoned 0 =
*.nrg *.nrga >
*.body 3190 <
start
100 .strbody store
stop

'use body
cond
*.paralyzed 0 =
*.poisoned 0 =
*.nrg *.nrgb <
*.body 11 >
start
100 .fdbody store
stop

'make more shell
cond
*.paralyzed 0 =
*.poisoned 0 =
*.shell 100 <
*.nrg 500 > and
*.shflav -6 = or
*.shflav -3 = or
start
50 .mkshell store
0 .shflav store
stop

'poop
cond
*.paralyzed 0 =
*.poisoned 0 =
*.waste 50 >
*.memval *.genes !=
start
-4 .shoot store
*.waste .shootval store
stop

'Death by Baby!
cond
*.poisoned 0 !=
*.paralyzed 0 != or
start
100 .repro store
*.aim 280 add .setaim store
*.aim 280 add .aimshoot store
stop

'ID gene - Endy
cond
start
*.nrga 2 div .nrgb store
' little constant viral defense gene doubles as ID gene
*.genes .delgene
 .fixpos *.fixed mult dec 'anti fixpos by Elite
*.thisgene *.genes sub dup div
mult *.robage sgn mult store
.genes inc
stop
end

237
Newbie / Intimidating?
« on: August 21, 2006, 10:05:12 AM »
Having seen several new members join since I did and not having heard anything from the new members that aren't bots for spamming the forum I thought I'd open my big mouth!  

DB is a great game/sim but it can look really intimidating when you first start, 'specialy if you aren't used to programming! I still refer to the sysvars page loads and I shouldn't really need to after all the bots I've made in the past!

I made this post because I sort of thought it probably looks much more intimidating than it used to, some of the bots in the forums are minature works of art and the peeps you see talking on the forum are generally talking about the advanced functions not the simple stuff that make the bots work in the first place.

So here's a reminder! When I first met PY the top bot was I. Flamma, the last topic on the forum when I first joined was "Is I. Flamma ever going to be beaten?"
The first bot I wrote was simply one that could find/eat veg and reproduce, took me a while as well.  

I'm a born worrier I guess, don't want people to be joining DB and not posting because they don't feel there bot is any good, or their questions are too stupid. We'd love to hear from you, even if it's just to say hello, and we'd love to see your bots, even if they don't work properly or you don't feel they are competitive. DB isn't about competition anyway, that's just a game we play using DB!

PS Maybe my time would have been spent better going through the sysvars info and looking for stuff to add but it's a lot of info to trawl through, much easier for me (and others) to be lazy if other people point out what information they think is missing when they use it!!

238
DNA - General / Chameleon genes
« on: August 06, 2006, 11:12:33 AM »
I must be missing something here, want the set of genes as a closed loop in the bots code. Figured that *.memval can only be used for one value per turn.

Biggest problem has been *.reqmemval and *.reqmemloc ending up as the same value when I make minor changes

Have been testing against Ymir which uses a value of 8741 in mem loc 604 for ID

I've tried lots of different ways but seem to always end up against a brick wall.  

Test bot I have been using:

def count 987
def foundmemloc 51
def reqmemval 52

cond
*.count 1 =
*.reqmemval 0 !=
*.foundmemloc 0 !=
start
0 .count store
stop

'CHAMELEON GENES
'********************Adding count to next genes makes refmemval and foundmemloc same
cond
*.refeye 0 !=
'*.count 1 =
*.eye5 0 >
*.refshoot *.myshoot !=
*.foundmemloc 0 !=
'***********************Why not this line? (makes reqmemval and foundmemloc same)
'*.reqmemval 0 =
start
*.foundmemloc .memloc store
*.memval .reqmemval store
stop

cond
'*.count 1 =
*.reqmemval 0 !=
*.foundmemloc 0 !=
start
*.reqmemval *.foundmemloc store
stop

cond
*.refeye 0 !=
*.eye5 0 >
*.refshoot *.myshoot !=
*.robage 1 >
*.foundmemloc 0 =
'*.reqmemval 0 =
start
.memloc .memloc store
*.memval .foundmemloc store
'1 .count store
stop

'*****BOT******
cond
*.nrg 1000 >
start
50 .repro store
stop

cond
*.numties 0 =
*.count 0 = and
*.refshoot *.myshoot !=
*.eye5 0 >
start
*.refxpos *.refypos angle .setaim store
10 .up store
-1 .shoot store
stop

cond
*.eye5 0 =
*.refshoot *.myshoot = or
start
145 .aimsx store
stop
end

Would appreciate it if someone could check the code and tell me why the bot seems to like living in cloud cuckoo land everytime I make these changes.  

239
F2 bots / Blue on Blue (F2)(Jez)-05.08.06
« on: August 05, 2006, 02:32:12 PM »
ENTER THIS ONE in F1 league before zebedee please.

Got distracted from trying to beat league bots in standard way when I started playing with .delgene, bot was altered to take advantage of all the bots using only refeye, refaimsx or refaimdx as ID!

Ymir and Zebedee can see through the disguise, only checked top twenty F2 bots though.

Code: [Select]
'Blue on Blue
'F2 League Infiltrator
'Messy eater
'Makes refeye, refaimsx, refaimdx or any combination of these refs
'Useless as identification
'Should be able to add most of the other refvals to the bot if needed


def aged 987
def bodya 986
def nrga 985
def spin 983
def counter 984
def shells 982
def aimleft 981
def aimright 980
def eyec 979

'ID gene - Endy
cond
*.robage 0 =
start
.tie inc
100 .shell store
600 .bodya store
1000 .nrga store
stop

cond
*.in1 0 !=
*.in1 *.out1 !=
start
*.in1 .out1 store
stop

cond
*.in2 0 !=
*.in2 *.out2 !=
start
*.in2 .out2 store
stop

cond
*.robage 5 >
*.memval *.genes !=
*.refbody *.bodya >
start
*.refbody 30000 ceil .bodya store
*.refbody 30000 ceil .out1 store
stop

cond
*.robage 5 >
*.memval *.genes !=
*.refnrg *.nrga >
start
*.refnrg 30000 ceil .nrga store
*.refnrg 30000 ceil .out2 store
stop

cond
*.robage 5 >
*.memval *.genes =
*.in3 *.bodya >
start
*.in3 .bodya store
*.in3 .out3 store
stop

cond
*.robage 5 >
*.memval *.genes =
*.in4 *.nrga >
start
*.in4 .nrga store
*.in4 .out4 store
stop

'poison
cond
*.in5 0 >
*.memval *.genes = and
*.shflav -1 = or
*.poison 50 <
*.nrg 200 >
start
100 *.poison sub .strpoison store
.out5 inc
stop

cond
*.ploc .shoot !=
start
.shoot .ploc store
stop


'rotate if all eyes empty
cond
*.aged *.refage =
*.robage 0 !=
start
*.aim 280 add .setaim store
stop

'avoid friend
cond
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
start
*.refxpos *.refypos angle 280 add .setaim store
stop

'target
cond
*.aged *.refage !=
*.robage 0 !=
*.memval *.genes !=
'*.numties 0 =
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos angle *.aim sub .aimshoot store
*.refxpos *.refypos dist 700 div *.maxvel mult *.refvel add 0 floor *.maxvel ceil .up store
*.veldx .sx store
-6 .shoot store
*.nrg 50 div 20 floor 1000 ceil .shootval store
stop

def move 990

'turn back after repro
cond
*.move 0 !=
start
*.aim 628 add .setaim store
.move dec
1 .deltie store
0 .shoot store
stop

cond
*.robage 1 =
*.aged *.refage !=
*.robage 0 !=
*.memval *.genes =
start
*.aim 628 add .setaim store
stop

'repro
cond
*.aged *.refage =
*.robage 0 !=
*.nrg *.nrga >
*.body *.bodya >
*.move 0 =
start
25 .repro store
*.aim 628 add .setaim store
1 .move store
stop

'delete tie
cond
*.tiepres 0 >
*.numties 0 > or
start
*.tiepres .deltie store
stop

cond
*.shell 30 <
*.shflav -6 = or
*.shflav -3 = or
*.shell 32000 <
*.nrg 1000 >
start
100 *.shell sub .shell store
stop

'energy to body
cond
*.body 31901 <
*.nrg 1000 >
start
100 .strbody store
stop

'body to energy
cond
*.nrg 300 <
start
100 .fdbody store
stop

cond
*.robage 32000 =
start
stop

cond
*.waste 50 >
*.memval *.genes !=
start
-4 .shoot store
*.waste .shootval store
stop

cond
*.fixpos 0 >
start
.fixpos dec
stop

cond
*.delgene 0 !=
start
0 .delgene store
stop

cond
*.shoot -2 =
start
0 .shoot store
0 .shootval store
stop

cond
*.paralyzed 0 >
start
0 .mkshell store
0 .shootval store
stop

cond
*.counter 0 !=
start
0 .counter store
stop

'aimleft
cond
*.aimleft 0 =
*.memval *.genes !=
*.refaimsx *.myaimsx <
*.aged *.refage !=
*.robage 0 !=
*.refeye 0 !=
start
*.myaimsx *.refaimsx sub .aimleft store
stop

'aimright
cond
*.aimleft 0 =
*.memval *.genes !=
*.refaimdx *.myaimdx <
*.aged *.refage !=
*.robage 0 !=
*.refeye 0 !=
start
*.myaimdx *.refaimdx sub .aimright store
stop

'eyec
cond
*.eyec 0 =
*.memval *.genes !=
*.refeye *.myeye <
*.aged *.refage !=
*.robage 0 !=
*.refeye 0 !=
start
*.myeye *.refeye sub .eyec store
stop

cond
*.eyec 159 >
*.counter 0 =
start
.counter inc
*.eyec 160 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
stop

cond
*.eyec 79 >
*.counter 0 =
start
.counter inc
*.eyec 80 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
stop

cond
*.eyec 39 >
*.counter 0 =
start
.counter inc
*.eyec 40 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
stop

cond
*.eyec 19 >
*.counter 0 =
start
.counter inc
*.eyec 20 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
stop

cond
*.eyec 9 >
*.counter 0 =
start
.counter inc
*.eyec 10 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
stop

cond
*.eyec 4 >
*.counter 0 =
start
.counter inc
*.eyec 5 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5
stop

cond
*.eyec 1 >
*.counter 0 =
start
.counter inc
*.eyec 2 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5
stop

cond
*.eyec 1 >
*.counter 0 =
start
.counter inc
*.eyec 2 sub .eyec store
*.thisgene .delgene store
*.eye5 *.eye5
stop

cond
*.eyec 0 >
*.counter 0 =
start
.counter inc
.eyec dec
*.thisgene .delgene store
*.eye5
stop

cond
*.aimright 15 >
*.counter 0 =
start
.counter inc
*.aimright 16 sub .aimright store
*.thisgene .delgene store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
stop

cond
*.aimright 7 >
*.counter 0 =
start
.counter inc
*.aimright 8 sub .aimright store
*.thisgene .delgene store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
stop

cond
*.aimright 3 >
*.counter 0 =
start
.counter inc
*.aimright 4 sub .aimright store
*.thisgene .delgene store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
*.aimdx .aimdx store
stop

cond
*.aimright 1 >
*.counter 0 =
start
.counter inc
*.aimright 2 sub .aimright store
*.thisgene .delgene store
*.aimdx .aimdx store
*.aimdx .aimdx store
stop

cond
*.aimright 0 >
*.counter 0 =
start
*.counter inc
.aimright dec
*.thisgene .delgene store
*.aimdx .aimdx store
stop

cond
*.aimleft 15 >
*.counter 0 =
start
.counter inc
*.aimleft 16 sub .aimleft store
*.thisgene .delgene store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
stop

cond
*.aimleft 7 >
*.counter 0 =
start
.counter inc
*.aimleft 8 sub .aimleft store
*.thisgene .delgene store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
stop

cond
*.aimleft 3 >
*.counter 0 =
start
.counter inc
*.aimleft 4 sub .aimleft store
*.thisgene .delgene store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
*.aimsx .aimsx store
stop

cond
*.aimleft 1 >
*.counter 0 =
start
.counter inc
*.aimleft 2 sub .aimleft store
*.thisgene .delgene store
*.aimsx .aimsx store
*.aimsx .aimsx store
stop

cond
*.aimleft 0 >
*.counter 0 =
start
.counter inc
.aimleft dec
*.thisgene .delgene store
*.aimsx .aimsx store
stop

'ID gene - Endy
cond
start
' little constant viral defense gene doubles as ID gene
*.genes .delgene
 .fixpos *.fixed mult dec 'anti fixpos by Elite
*.thisgene *.genes sub dup div
mult *.robage sgn mult store
.genes inc
.thisgene .memloc store
*.refage .aged store
stop
end

240
Newbie / .dupgene!
« on: August 05, 2006, 08:23:44 AM »
Bit of a long shot...

Is it possible for a bot to duplicate a gene inside itself and then add it to its own DNA? A sort of reverse of the .delgene perhaps.

I wanted to use it in an F2 bot so the less like a virus it looks the better!

Pages: 1 ... 14 15 [16] 17