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

Pages: 1 ... 4 5 [6] 7
76
' Symbioticus
'
' A tank with a battery ...
'
' Ties to a veg, pulls
' it close behind it and
' uses it as an energy
' source
'
' Version 2.0
' - Code completely redone
' - Uses a modified version of Animal Minimalis' search pattern
' Version 2.1
' - Uses some better coding to save energy
' Version 2.2
' - Improves on turning and movement genes
' Version 2.3
' - Adds a roaming routine to cover more ground
' Version 2.4
' - Some minor changes, improved some routines, better .fdbody routine
' Version 2.5
' - Some minor changes, corrected an error in the coding which caused Symbioticus to become immobile when it lost it's veg, annotated some more of the code to make it more understandable

'*************************************************************

def roam 51 ' Used for movement
def done 52 ' Used for setting tie

' Delete birth tie and set .memloc

cond
start
.tie *.robage -1 mult 1 add mult inc
.tiepres .memloc *.robage -1 mult 1 add mult store
.deltie inc
stop

'*************************************************************

' Find and tie to a veggie

cond
*.robage 0 >
*.done 0 =
*.multi 0 =
*.eye5 0 >
*.eye5 45 <
*.refshoot 0 =
*.refaimdx 1 =
*.refeye 0 =
*.memval 86 !=
*.numties 0 =
start
40 .up store
stop

cond
*.robage 0 >
*.eye5 45 >
*.refshoot 0 =
*.refaimdx 1 =
*.refeye 0 =
*.memval 86 !=
*.numties 0 =
start
86 .tie store
stop

cond
*.robage 0 >
*.numties 0 =
*.eye5 0 =
*.memval 86 = or
*.refshoot 0 != or
*.refaimdx 1 != or
*.refeye 0 != or
start
314 rnd .aimdx store
stop

'*************************************************************

' Set tie and unfix veg

cond
*.numties 1 =
*.treffixed 1 =
start
86 .tienum store
.fixpos .tieloc store
0 .tieval store
stop

cond
*.numties 1 =
*.multi 0 =
*.done 0 =
start
.done inc
628 .fixang store
15 .fixlen store
86 .tienum store
.fixang .tieloc store
628 .tieval store
86 .readtie store
stop

'*************************************************************

' When tied to a vegetable

cond
*.myeye *.trefeye =
start
*.tiepres .deltie store
stop

cond
*.numties 0 =
start
0 *.shell sub .mkshell *.shell sgn mult store
.done *.done sgn mult dec
stop

'*************************************************************

' Sharing and producing

cond
*.multi 1 =
start
75 .sharenrg store
50 .shareslime store
50 .shareshell store
.sharewaste inc
*.pleas 3 div .strbody *.pleas sgn mult store
*.pleas 3 div .mkslime *.pleas sgn mult store
600 *.shell sub .mkshell store
stop

' Shooting and tracking genes for when I become an MB

' Shoot

cond
*.multi 1 =
*.eye5 0 >
*.refeye *.myeye !=
*.memval 86 !=
start
-32 .shootval store
-6 .shoot store
stop

cond
*.multi 1 =
*.eye5 45 >
*.refeye *.myeye !=
*.memval 86 !=
start
32 .shootval store
-6 .shoot store
stop

' Move

cond
*.multi 1 =
*.eye5 0 =
*.memval 86 = or
*.refeye *.myeye = or
*.roam 100 <
start
100 .aimdx store
.roam inc
stop

cond
*.roam 99 >
*.multi 1 =
*.eye5 0 =
*.memval 86 = or
*.refeye *.myeye = or
start
100 .up store
.roam inc
stop

cond
*.roam 200 >
start
0 .roam store
stop

' Aim and chase

cond
*.multi 1 =
*.eye5 0 >
*.refeye *.myeye !=
*.memval 86 !=
start
*.refxpos *.refypos angle .setaim store
*.refveldx .aimdx store
stop

cond
*.multi 1 =
*.eye5 0 >
*.eye5 30 <
*.refeye *.myeye !=
*.memval 86 !=
start
*.refvelup *.refvelup add 60 add .up store
stop

'*************************************************************

' Reproduction

cond
start
10 .repro *.body 5000 sub sgn mult *.multi sgn mult store
stop

cond
*.nrg 100 <
start
*.body 100 ceil .fdbody *.body sgn mult store
stop

'*************************************************************

' Shoot back at annoying enemies

cond
*.shflav 0 !=
*.shflav -2 !=
*.multi 1 =
*.shoot 0 =
*.refeye 0 = or
start
1256 *.shang sub .aimshoot store
64 .shootval store
-6 .shoot store
0 .shflav store
stop

' Antiviral (for replicating viruses)

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

' Junk DNA (for conspecific recognition)

cond
start
*.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

end

77
Bot Tavern / The Wraithbot
« on: January 31, 2006, 02:14:47 PM »
The ideas behind the wraithbot :-

- Decimate their prey then withdraw to hibernate
- 5% are non-hibernating, sterile Keepers
- The rest hibernate at the hive for 1000nds of cycles at a time while their prey repopulates
- Carnivorous - don't eat veggies unless desperate
- Very aggressive

Here's where we discuss and (hopefully) assemble the code for Wraithbot

I suggest making wraithbot based on Preybot - Preybot is similar in that it shares antbot-like hive tendancies.

What we've got:

- Hibernate by tieing together in a blob and using the breakage of ties to wake the hive via *.numties

Hmm...

So where do we start?

 :help:

78
The Gene depository / Multi-gene virus
« on: January 31, 2006, 12:13:40 PM »
Code: [Select]
def genecounter 51

cond
*.genecounter 0 =
start
.genecounter inc
stop

cond
*.vtimer 0 =
start
*.genecounter .mkvirus store
stop

cond
*.vtimer 1 =
start
.genecounter inc
100 .vshoot store
stop

cond
start
*.genes 1 add
stop

cond
*.genecounter =
start
1 .genecounter store
stop

end

It will copy it's genes and vshoot them in sequence.
Doesn't work very well at all though  :wacko:

Just thought you might like to see it  :D

I was playing around with using a tie to grab and hold a bot in place, .delgene all the captured bot's genes through the tie, then vshoot its genes into the held bot.
Sort of like Endy's 'Two' bot, but for many genes.

79
Off Topic / Guests - read this!
« on: January 29, 2006, 07:21:26 AM »
If you program bots and haven't joined yet then I strongly recomend joining.
I can say from personal experience  :D  that it's much more fun.

There could be someone great at bot programming out there who hasn't said hello  :(

I saw some guests earlier looking at various DNA files for a long time. If you know the DB language or have DB then drop in to say hello - we don't bite  :evil:

Come on ...

80
DNA - General / Hive coding
« on: January 28, 2006, 10:40:42 AM »
This thread is to discuss hivebot's hive coding (be that hive location, hibernating etc.)

The Hive is a location chosen by the Queen at the start of the sim as far away from the Pray communities as possible. It is a place that the species can come back to periodically to get orders from the Queen/Keepers.

When the species goes into hibernation it does so at the hive. Henk suggested a brilliant hibernation strategy:
All the hibernating bots tie together at the hive, then the 'wake up call' can be transmitted via chain reaction very quickly. Also, the hibernating bots could share nrg and include a few veggies in the 'hibernation web' to sustain the hibernating hivebots. Discuss the code for this here.

More importantly, we need some form of hive-selection code and basic hibernation code first.


Let the discussion begin  :)

81
DNA - General / Hivebot communication
« on: January 28, 2006, 05:32:14 AM »
This is the *official* thread of hivebot's .out/.in communication systems, the Keepers' information gathering and (x, y) location stuff.
All bots should 'report in' at the hive to see a Keeper/Queen periodically so information will get to all the bots via .in/.out eventually. That's partially the reason for the hive concept - somewhere lots of bots can congregate to swap info.

We need quite advanced communication methods for the bots to be able to relay coordinates and 'explainations' to each other.
I was thinking:
The bots could use a 'tree' method. How you interpret the next .in depends on the previous .in - anyone get that? So .in1 could tell the bots wether the message is about pray, threats, hive location etc. and they could interpret .in2-5 based on that.
... just an idea

Even if you don't understand a word I'm saying  :D  feel free to play around with ideas relating to those sections of the code here.
I bet lots of you that say you can't program bots very well have some good ideas anyway (If you think of something good, then we'll program it for you)

82
Bot Tavern / Community project (now pretty much defunct)
« on: January 26, 2006, 01:43:08 PM »
:) I've just had an idea for a great community project  :)

What do you guys think?


EDIT: here's the recruitment thread


The concept of hibernation was introduced in this thread
Black Ant can be found here
The Wraith (from Stargate Atlantis)
Concerning the recent lack of activity here
PY's antbot can be found here

Wraithbot.
A hibernating bot that sleeps periodically to let it's prey's numbers increase and comes out of hibernation when the queen and the keepers decide that it's ready for 'feeding' :evil:
It's like an extremely advanced Black Ant or PY antbot.

Here's the hirarchy:
   The Queen - head of the hive, picks the hive coordinates and decides with the keepers when it's time to hibernate and wake up. There is only one queen that reproduces to form a hive, and only once to produce another queen. If the queen is killed or missing for too long then a random keeper becomes the new queen. If two queens exist then they will fight to the death. Queen starts off as the first bot in the sim (starts with one high-energy bot)
   The Keepers - 10% of the population. Tasked with relaying orders and defending the hive and the hibernating 'others'. Wake the sleeping with an .out signal or a memory shot if all else fails. If a keeper is killed then the surviving keepers will wake the hive! Keepers can: Patrol the hive, protect the queen, go out hunting (in shifts) and manage the hibernation of the hive.
   The Others - the rest! The bulk of the population hibernates when there isn't enough food to go around to sustain the population. They are woken by keepers when food is plentiful and will then cull nearly all living things on the map until the keepers send them into hibernation again. They will leave a small percentage of prey alive to reproduce.

Wraithbot will NEVER EVER be used in leagues (so don't worry about interference from chameleon-bots and F1 quality bots etc), but is instead for the creation of a stable ecosystem of these things preying on veggies and a simple bot (Animal Minimalis?, or one we can create - something with few genes that survives well but isn't too strong) population.

Makes extensive use of .out1-5/in1-5

.out1   Hive location x coordinate (queen picks this and all bots store it to .out1 if they see it)
.out2   Hive location y coordinate (queen picks this and all bots store it to .out1 if they see it)
.out3   Time to hibernate (queen or keepers decide when to send everyone into hibernation - normal bots that see a number in .out3 will go to the 'hive' to sleep. If the don't know where it is then they will 'ask' a keeper via .in1-2)
.out4   Orders and communication
.out5   Orders and communication

The sim will start with one high-energy wraithbot, who will reproduce to form a hive. Alternatively, the queen could be a different species.
The angle function can direct bots to the hive.
For 2.37.6 ideally - for large simulations.

Well, that's the concept.


This is a [span style=\'font-size:21pt;line-height:100%\']MASSIVE[/span] project and I need your help to realize it. I can't do this by myself. Hopefully, the whole community can participate (that's what it's for right  :D ) from newbies to bot gods
Forum seems to have been quiet lately - something bot-orientated we all can cooperate on is just what it needs  :D

 :help:  :help:  :help:



Comments?

83
DNA - General / 'Paralyzed' and 'poisoned' sysvars
« on: January 26, 2006, 11:27:25 AM »
What do '.paralyzed' (837) and '.poisoned' (838) do?

84
Tips and Tricks / Hibernation
« on: January 25, 2006, 05:33:07 PM »
Una was originally designed as an experiment into 'hibernating' bots. Using conditionless coding, this version of Una (it's an older version) will hibernate when 1 is placed into location 51

Code: [Select]
'Una
'
'With hibernation command

def hibernate 51
def IDcode 55

cond
start
1 .hibernate *.robage -1 mult 1 add mult store

.tie *.robage -1 mult 1 add mult *.hibernate mult inc
.deltie *.hibernate mult inc

.fixpos *.fixed mult *.hibernate mult dec

*.refveldx .dx *.eye5 sgn mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult store
*.refvelup 60 add .up *.eye5 sgn mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult store

42 .IDcode *.robage -1 mult 1 add mult store
.IDcode .memloc *.robage -1 mult 1 add mult store

-6 .shoot *.eye5 sgn 1 add sgn mult *.eye5 40 sub sgn 1 add sgn -1 add -1 mult mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.eye5 sgn mult store
-8 .shootval sub sgn 1 add sgn mult *.eye5 40 sub sgn 1 add sgn -1 add -1 mult mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.eye5 sgn mult store

-6 .shoot *.refpoison sgn mult *.eye5 45 sub sgn 1 add sgn mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.eye5 sgn mult store
-1 .shoot *.refpoison sgn -1 mult 1 add mult *.refshell sgn mult *.eye5 45 sub sgn 1 add sgn mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.eye5 sgn mult store
-6 .shoot *.refpoison sgn -1 mult 1 add mult *.refshell sgn -1 mult 1 add mult *.eye5 45 sub sgn 1 add sgn mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.eye5 sgn mult store

16 .shootval *.eye5 45 sub sgn 1 add sgn mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.eye5 sgn mult store

*.refvelup .up *.eye5 45 sub sgn 1 add sgn mult *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.eye5 sgn mult store
*.refxpos *.refypos angle .setaim *.hibernate mult *.memval 42 sub dup mult sgn *.refeye *.myeye sub dup mult sgn add sgn mult *.robage sgn mult *.eye5 sgn mult store

314 rnd .aimdx *.memval 42 sub dup mult sgn -1 add -1 mult *.refeye *.myeye sub dup mult sgn -1 add -1 mult mult *.eye5 sgn -1 add -1 mult add sgn mult *.hibernate mult store

40 .repro *.body 100 sub sgn mult *.nrg 1000 sub sgn 1 add sgn mult *.hibernate mult store
314 rnd .aimdx *.body 100 sub sgn mult *.nrg 1000 sub sgn 1 add sgn mult *.hibernate mult store

100 .strbody *.nrg 500 sub sgn mult *.hibernate mult store
100 .fdbody *.nrg -1 mult 100 add sgn mult *.hibernate mult store

*.tiepres .tienum *.numties sgn mult *.robage 1 sub sgn mult store
.dn .tieloc *.numties sgn mult *.robage 1 sub sgn mult store
32000 .tieval *.numties sgn mult *.robage 1 sub sgn mult store

*.waste .shootval *.waste 10 sub sgn mult *.hibernate mult store
-4 .shoot *.waste 10 sub sgn mult *.hibernate mult store

.delgene inc .delgene inc
stop

It's also nice and broken up to make it more understandable.

All commands in the DNA (except the anti-virus, but it uses inc anyway) have the code *.hibernate mult in them. *.hibernate is set at birth to be 1, but if you set it to zero using the console, the bot goes into hibernation. While in this state it uses no energy whatsoever. The original plan was for Una to release a deadly virus into the population and come out of hibernation later when the pandemic had (hopefully) wiped out everyone else. I never got round to using this feature when I realised that gearing the bot up for hibernation had made it extrodinarily efficient. I eventually removed the *.hibernation command just before joining this forum.

The virus (or a similar virus to the one) that Una was to be using (designed to be as deadly as possible, with the *.myeye being Una's *.myeye):

Code: [Select]
cond
start
100 .vshoot store
*.thisgene .mkvirus store
? .myeye store
*.genes rnd .delgene *877 -500 add sgn 1 add 2 div mult store
877 inc
.delgene dec
stop

What do you think of the concept?

Problem is that if another bot catches you sleeping they will just kill you  :angry:
I tried making a bot that hibernated when its *.nrg fell below 100. It was reasonably sucessful.

85
DNA - General / How do you use 'else'?
« on: January 25, 2006, 12:51:59 PM »
Can you use 'else' like this?

Code: [Select]
cond
start
stop
else
stop

How do you use 'else'?

86
Suggestions / Reproduction
« on: January 25, 2006, 12:05:58 PM »
Here are some suggestions concerning reproduction:


Rather than .mrepro being like normal .repro you could have the number stored into .mrepro as the mutation rate.
So:
0 .mrepro store
would produce an unmutated copy
And say:
100 .mrepro store
would produce very mutated progeny
You could have the energy shared between parent and ofspring as a simple 50 default, or you could have an additional sysvar controling that like .shootval for .shoot

Alternatively, you could use .mrepro as the .shootval style sysvar that controls the mutation rate of .repro (proportional to the current set mutation rate, and energy is expended altering it)
So
-64 .mrepro store
50 .repro store
would produce a relatively mutation-free ofspring
And
64 .mrepro store
50 .repro store
would produce a relatively mutated offspring


Another suggestion is a .divide command. Storing a number into .divide would split one bot into several, with the number in .divide specifying the number of bots:
4 .divide store
would split one bot into four, with the energy, body shell, poison and everything else being split between them. All the bots that come out of a divide would be subject to mutation.


Finally, a .shuffle command. If two conspecs were within a certain distance, then one could:
.shuffle inc
And both bots' genes would be exchanged without reproduction taking place. Probably for a future Darwinbots with chromosomes.



Doable?

87
The Gene depository / 'Batterybot' gene!
« on: January 24, 2006, 02:56:14 PM »
This is a prototype - a first attempt to put the basics of batterybot code into one gene, so don't be surprised if it doesn't work very well

EDIT: Seems to work fine  ^_^

Code: [Select]
cond
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 .tie *.numties sgn -1 mult 1 add sgn mult *.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
50 .fixlen *.numties sgn mult store
55 .tienum *.numties sgn mult *.treffixed mult store
.fixpos .tieloc *.numties sgn mult *.treffixed mult store
0 .tieval *.numties sgn mult *.treffixed mult store
80 .sharenrg *.multi mult store
*.tiepres .deltie *.robage -1 mult 50 add sgn mult store
*.tiepres .deltie *.tmemval 1 sub sgn mult store
*.tiepres .deltie *.myeye *.trefeye sub sgn abs -1 mult 1 add mult store
stop

A bot with this gene (preferably near the end) will collect a veggie and use it as a portable power source, taking 80% of the veg's energy. However, your bot will navigate and act just the same as before (hopefully - well, they did in testing  :unsure: ).


[span style=\'font-size:14pt;line-height:100%\']This gene is free for all to use[/span]


Problems with this gene:
- Larger population densities can lead to several bots tieing to one veg by mistake (fixed)
- Bots will attack each other's vegs

Tell me if you notice any other bugs


EDIT: I've corrected the first error and updated the code  ^_^ , but the bots still attack other bots' vegs. I'll leave that to you, since it will require forcing the bot to not attack vegs that are tied to a conspec.

EDIT: It seems to work well, provided your bot is not a tie-feeder and has no leach genes, tie defences or pretty much anything to do with ties!

88
Interesting behaviour bots / Symbioticus v2.1
« on: January 24, 2006, 01:50:36 PM »
As discussed in the 'Does this count as a MB' thread  ^_^

' Symbioticus
'
' A tank with a battery ...
'
' Ties to a veg, pulls
' it close behind it and
' uses it as an energy
' source
'
' Version 2.0
' - Uses a modified version of Animal Minimalis' search pattern
' Version 2.1
' - Uses some better coding to save energy

def done 51

cond
start
.tie *.robage -1 mult 1 add mult inc
.tiepres .memloc *.robage -1 mult 1 add mult store
.deltie inc
stop

'*************************************************************

' Find and tie to a veggie

cond
*.robage 0 >
*.done 0 =
*.multi 0 =
*.eye5 0 >
*.eye5 45 <
*.refshoot 0 =
*.refaimdx 1 =
*.refeye 0 =
*.memval 86 !=
*.numties 0 =
start
40 .up store
stop

cond
*.robage 0 >
*.eye5 45 >
*.refshoot 0 =
*.refaimdx 1 =
*.refeye 0 =
*.memval 86 !=
*.numties 0 =
start
86 .tie store
stop

cond
*.robage 0 >
*.numties 0 =
*.eye5 0 =
*.memval 86 = or
*.refshoot 0 != or
*.refaimdx 1 != or
*.refeye 0 != or
start
314 rnd .aimdx store
stop

'*************************************************************

cond
*.numties 1 =
*.treffixed 1 =
start
86 .tienum store
.fixpos .tieloc store
0 .tieval store
stop

cond
*.numties 1 =
*.done 0 =
start
.done inc
628 .fixang store
-32000 .fixlen store
86 .tienum store
.fixang .tieloc store
628 .tieval store
86 .readtie store
stop

cond
*.numties 0 =
*.done 1 =
start
.done dec
stop

'*************************************************************

' When tied to a vegetable

cond
*.myeye *.trefeye =
start
*.tiepres .deltie store
stop

cond
*.numties 0 =
*.shell 0 >
start
0 *.shell sub .mkshell store
stop

'*************************************************************

' Sharing and producing

cond
*.done 1 =
*.multi 1 =
start
75 .sharenrg store
50 .shareslime store
50 .shareshell store
.sharewaste inc
*.pleas 3 div .strbody *.pleas sgn mult store
*.pleas 3 div .mkslime *.pleas sgn mult store
600 *.shell sub .mkshell store
stop

cond
*.done 1 =
*.multi 1 =
*.eye5 0 >
*.refeye *.myeye !=
*.memval 86 !=
start
-32 .shootval store
-6 .shoot store
stop

cond
*.done 1 =
*.multi 1 =
*.eye5 45 >
*.refeye *.myeye !=
*.memval 86 !=
start
32 .shootval store
-6 .shoot store
stop

cond
*.done 1 =
*.multi 1 =
*.eye5 0 =
*.memval 86 = or
*.refeye *.myeye = or
start
750 .dx store
30 .up store
stop

cond
*.done 1 =
*.multi 1 =
*.eye5 0 >
*.refeye *.myeye !=
*.memval 86 !=
start
*.refxpos *.refypos angle .setaim store
*.refveldx .dx store
stop

cond
*.done 1 =
*.multi 1 =
*.eye5 0 >
*.eye5 30 <
*.refeye *.myeye !=
*.memval 86 !=
start
*.refvelup *.refvelup add 100 add .up store
stop

'*************************************************************

' Reproduction

cond
start
10 .repro *.body 5000 sub sgn mult *.multi sgn mult store
100 .fdbody *.nrg -1 mult 100 add sgn mult store
stop

'*************************************************************

cond
*.shflav 0 !=
*.shflav -2 !=
*.multi 1 =
start
1256 *.shang sub .aimshoot store
64 .shootval store
-6 .shoot store
0 .shflav store
stop

cond
start
*.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5 *.eye5
stop

end

89
The Gene depository / Counterattack gene
« on: January 23, 2006, 04:13:33 PM »
Code: [Select]
cond
*.shflav 0 !=
*.shflav -2 !=
start
1256 *.shang sub .aimshoot store
16 .shootval store
-6 .shoot store
0 .shflav store
stop

*.shflav is reset every time the gene is executed. Neat huh?

90
The Gene depository / Viruses
« on: January 23, 2006, 01:40:48 PM »
Anyone got any particularly interesting viruses to share?

This one has a timer, then kills its host (place any payload you like into the 100 .fdbody space, 500 is the countdown time in cycles)

Code: [Select]
cond
 878 8 !=
start
 *.thisgene .mkvirus store
 250 .vshoot store
 100 .fdbody *877 -500 add sgn 1 add 2 div mult store
 *.877 inc
stop

This one turns those infected into zombies, who work together to spread the virus

Code: [Select]
cond
start
100 .vshoot store
*.thisgene .mkvirus *.vtimer -1 mult 1 add mult store
676 .myeye store
676 *.memloc store
*.mkvirus 1 add  .delgene *.mkvirus *.thisgene sub dup mult sgn mult store
stop

This one messes up antivirus systems

Code: [Select]
cond
start
.vshoot inc
*.thisgene .mkvirus store
.delgene dec
stop

This one randomly overwrites the bot's memory

Code: [Select]
cond
start
.vshoot inc
*.thisgene .mkvirus store
32000 rnd 901 rnd store
stop

This one deletes all the infected bots genes (works against The One 50% of the time) but doesn't replicate
Needs a condition attached to stop it affecting the 'patient zero' bot

Code: [Select]
cond
start
 *.thisgene 1 rnd 2 mult -1 add add .delgene store
stop

This one breaks up MBs

Code: [Select]
cond
start
 *.thisgene .mkvirus store
 250 .vshoot store
 *.tiepres .deltie store
stop

Endless possibilities ...
(conditionless bots programming skills are good for this sort of thing)

Feel free to add some more viruses to this thread
- Kinda like a beastiary for viruses :firedevil:

Pages: 1 ... 4 5 [6] 7