Darwinbots Forum

Code center => Suggestions => Dead-End and Solved Suggestion Requests => Topic started by: Botsareus on March 11, 2005, 03:44:00 PM

Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 11, 2005, 03:44:00 PM
Num Did you forget about this or what happend? I can understand you are doing enough Db work already (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=65&st=30)

When you have time, explain to me how your virsion is supposed to work. Dont post more c++ or calcules because I wont understand. If you can explain it in somewhat english , I will be really happy to listin

 B)  Bau B)
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 11, 2005, 06:48:29 PM
The PDF with the function I'll be using isn't cut and paste friendly.

I can't explain it without using some calculus.  It's been put somewhwat on the back burner for a while as I get to other things.  There are several DNA changes I want to look into, and I'm letting all the ideas ferment in my head a while.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 11:00:57 AM
Here attached is Prove that in the current Darwin Bots (2.35) Robots [you]Do Not[/you] evolve stuff like:
Quote
*232
*953
*41
In The "cond" part , or the "start" part of the DNA.


Search for "*40" and you will find that T_Preservents has it in the "cond" part , and/or the "start" part of the DNA. T_Preservents started out with this code , it did not evolve it.

But then:

Search for any number with a * in the bigging and you will see that crazylga does not have any of it in the "cond" part or the "start" part of the dna.

This is good prove that stuff like that does not evolve , because:

1.)The simulation was ran for a while
2.)The crazylga is basicaly alga with no conditions and high mutation rates from the bigging. (alga does not have any memory manipulation in the bigging of the program)

So please fix this problem , make mutations work better.

(sorry , only a portion of the file fit)
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 11:29:38 AM
Num I seen you reading this; Did you Understand? Do you need more prove? (if so go ahead try your own experiments)

Or are you saying (like shvartz) that its going to be Quote: "To cheap and to good" ??
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 11:44:52 AM
Try this:

Disable all muations except for the one at the bottom called 'introduce a new variable'.  Set that one to 1.

Run a mutation sim.  Tell me what happens.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 11:50:17 AM
If I set mutation rates of mutation rates to 0 nothing happens:
Quote
cond
start
  50
  .repro
  store
  15
  .aimdx
  store
stop
-------------- 2
end
always the same code.

Introduce new variable has no effect.
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 11:55:43 AM
Okay, now we're getting somewhere.

It doesn't seem that 'introduce a new variable' is actually introducing new variables.  That's a much mroe precise statement than 'mutations don't work!!!!1111', which means I can actually test the bug and isolate it.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:02:59 PM
'introduce a new variable' does insert new stuff like "*40" or "*957" in the "cond" part or the "start...stop" part of the DNA.

There is no way also to:

'change *40 into *250" for the "cond" part of the gene

'change "[you]250[/you] into *920 or into *42" in the "start...stop"

or change "*920 into 250" etc.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:12:30 PM
The reason it doesn't change is because the value "Introduce new variable" is a secondary effect setting. That is why it is in a separate section from all the others. It controls the chance of a mutation introduced by another control being something NEW

To put it another way..

You can't mutate a new value if you aren't mutating any value.

Under the heading "Insert new values", place a 1 in the box labeled "Insert a condition" as well as the 1 that you already have in "Introduce new variable"

Run your little robot for a tiny short time and see what you get.

I tried it. I started the program and hit pause as fast as I could move my mouse. 45 cycles had passed.

Here is the result.

Code: [Select]
cond
  *.trefvelyoursx
  30093
  %=
  *.hitdn
  9015
  !%=
start
  50
  .repro
  store
  15
  .aimdx
  store
stop
end

Please note that ALL of the mutations took place in the condition section of the gene and that they are ALL new!
It added 2 complete conditions and then stopped reproducing because the new conditions were not being met. There were hundreds of different colored bots on the screen. This was just the first one that I checked.

You just have to use the controls in the right way.
OK I admit that there hasn't really been any kind of tutorial on how to do so but then again.. Do I have to do everything around here? It isn't that hard to figure out.

  :rolleyes:  PY  :rolleyes:
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:13:59 PM
Quote
It doesn't seem that 'introduce a new variable' is actually introducing new variables. That's a much mroe precise statement than 'mutations don't work!!!!1111', which means I can actually test the bug and isolate it.

THERE IS NO BUG

It was designed to work this way!

 :rolleyes:  PY  :rolleyes:
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:16:05 PM
PY the problem is that its not what I am looking for.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:18:27 PM
Num check this out

'change variable with variable' actualy got rid of that pesky "*40" in T_Preservents


That kind of solves the "delete" problem , but does not solve the other two.
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 12:18:44 PM
Quote
Do I have to do everything around here? It isn't that hard to figure out.

You betcha!



Sorry Bots, back to square one.  Play with different mutations disabled to see what effect they're having.  If you do find a bug, it's much easier to fix if you've isolated it already.

And since none of us thing the mutations are buggy (they're some of the oldest code)...
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:20:55 PM
What do you actually want it to do?

Tell me precisely what you need and I will tell you either...
Vague, generalized statements like...

"Mutations don't work" don't help us to get to the bottom of the problem, if indeed there is one which I am not at all convinced of.

 <_<  PY  <_<
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:23:58 PM
Quote
And since none of us thing the mutations are buggy (they're some of the oldest code)...

Actually that isn't quite true.

The basics of them are old but...

I recently overhauled the whole system and made it work with a whole lot better controls than it used to have.
There are actually 2 more controls than there were prior to V2.35 and they are easier to use and get feedback from.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:24:08 PM
I never sayed "mutation dont work" , PY read the whole Tread to figure it out.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:26:27 PM
Maybe not in this thread but you most certainly have said that in the past.

 <_<  PY  <_<
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:29:01 PM
Quote
cond  head of the second gene
  *30 
  0
  >  if memory cell 30 content is >0

Reguler "variables" do not become this kind of "variables" with any settings.

The Program cant change a variable to become this variable , The Program cant add a new variable of that type
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:32:43 PM
Quote
*31
  *30
  store  we put the content of cell 31 in the cell pointed by cell 30

The above does not get added to the "start...stop" part of the gene.

Nothing changes to become the other one ex:

Quote
97 'changed from *31
  957 'change from *30
  store  we put value 97 directly into memory location 957

The flip side is true also:

Quote
*31 'changed from 97
  *30 'changed from 957
  store

Does not happen.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:44:00 PM
Quote
*957 'The above value must be able to change into stuff like *210 *310
*30  '[you]The below value must be able to change into stuff like *210 *310[/you]
>

more so,

Quote
Quote
 *.refypos
  0
  >
  *.ypos
  20
  <
  *.sun
  0
  =

  *.ypos 'yes this changes but
  *.sun '[you]The below value can be a variable[/you]
  >
  *.ypos 'yes this changes but
  *.sun '[you]The below value can be a variable[/you]
  <
  *.ypos 'yes this changes but
  *.sun '[you]The below value can be a variable[/you]
  =

Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:44:02 PM
OK Here is the code which inserts a NEW condition.

Code: [Select]
' inserts a new condition
Public Function DNAInsertCond(n As Integer, x As String, DNAto As String) As Integer
  Dim t As Integer, k As Integer, inizio As Integer
  Dim a As Integer
  Dim b As Integer
  Dim genestart As Integer
  t = 1
  DNAInsertCond = 0
  With rob(n)
  While Not (.DNA(t).tipo = 4 And .DNA(t).value = 4)
    If rob(n).DNA(t).tipo = 4 And rob(n).DNA(t).value = 1 Then
      If Random(1, Int(rob(n).mutarray(8) / SimOpts.MutCurrMult)) = 1 And DNACondsInGene(n, t) < MaxDnaCond Then
        DNAInsertCond = DNAInsertCond + 1
        x = x + "Condition inserted at pos " + CStr(t + 1) + " through " + CStr(t + 3) + vbCrLf
        k = t
        inizio = t + 1
        If DNAMakeSpace(n, t + 1, 3) Then
          .DNA(t + 1).tipo = 1
          .DNA(t + 1).value = rob(n).usedvars(Random(1, rob(n).maxusedvars))
          .DNA(t + 2).tipo = 0
          If Random(1, 10) = 1 Then
            .DNA(t + 2).value = Random(-10, 0)
          Else
            .DNA(t + 2).value = Random(0, 32000)
          End If
          .DNA(t + 3).tipo = 3
          .DNA(t + 3).value = Random(1, 6)
          x = x + "new condition = " + varname(CStr(.DNA(t + 1).value))
          
          x = x + " " + Str$(rob(n).DNA(t + 2).value)
          
          x = x + " " + Condname(rob(n).DNA(t + 3).value) + vbCrLf
          DNAto = DNAto + " " + varname(CStr(.DNA(t + 1).value))
        End If
      End If
    End If
    t = t + 1
  Wend
  End With
End Function

Note the line....

.DNA(t + 1).value = rob(n).usedvars(Random(1, rob(n).maxusedvars))

This line puts a random value into the DNA file at a position equal to the first part of the conditional statement.
It does appear that it is only able to grab a value from the "Usedvars" list which contains the memory values of all the sysvars.

From this code it does indeed appear to be impossible to generate a condition like..

*55 24 !=

since *55 does not appear in the "Usedvars" list

Is this what you are getting at Bots?

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:47:07 PM
Yes that [you]one[/you] of the problems.

Read the other two also.

(PY FINALY YOU GETTING IT :) :) :) )

That a problem (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=288773)

That a problem (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=288836)
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:50:38 PM
I don't quite follow what you mean though.

Are you saying that it isn't possible to change the conditional at the end of the 3 part condition?

eg. from...

*.vel 30 >

to....

*.vel 30 !=

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 12:52:11 PM
"Are you saying that it isn't possible to change the conditional at the end of the 3 part condition?"

NO you got it right before , no no thats not it.

I am talking about *55 in your example , not about the conditional

-----------------------------------------------------------------------------------------------

Quote
From this code it does indeed appear to be impossible to generate a condition like..

*55 24 !=

since *55 does not appear in the "Usedvars" list

Is this what you are getting at Bots?

Thats it man thats what I am talking about.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 12:56:59 PM
OK I think I finally understand what your problem is.

I will check it out and see what can be done. Shouldn't be too hard.

I do think that the vast mojority of mutations aught to point to something that makes sense though.

It makes a lot more sense for a new condition to read something like...

*.ypos 567 >

than if it came out as...

*567 284 !=

or...

*894 *28 !%=

The first one is usable while the other two are just garbage. That is why the mutations are designed to point toward something usable in the present system.

It should be possible to get garbage conditions and actions though

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 01:00:36 PM
Py I thought you were a Mathematician , How is it garbage? Its actualy wery usefull.
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 01:02:08 PM
Most of the time any kind of useful mutation will in some way reference an actual sysvar and not just a random memory location.  That said, anything a bot programmer can do the mutations system should be able to do.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 01:03:01 PM
Quote
That said, anything a bot programmer can do the mutations system should be able to do.
Right on Num , Good words.


Py check out the other two specific problems

That's a problem (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=288773)

That's a problem (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=288836)


----------------------------------------------
Quote
Most of the time any kind of useful mutation will in some way reference an actual sysvar and not just a random memory location.

The point of mutation rates is to figure out witch mutations are more usefull. If we make  seporate rates for the stuff I am talking about it should work fine.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 01:06:07 PM
Useful for what?

The vast majority of robots couldn't give a crap if memory location 894 is almost equal to memory location 28.

Unless they happen to be using those memory locations for something then it is indeed garbage.

Maybe one day they might start to use those locations but face it the chances are pretty slim.

I know mutation is a hit and miss thing but making this kind of change will just multiply the number of misses by orders of magnitude.

 :D  PY  :D

PS I am a research Chemist, not a mathemetician.
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 01:06:17 PM
I'd love to help but the mutations code is still garbage to me.  I've probably studied every line of every part of the program except the stuff for ties and mutations.

P.S. I'm the mathematician.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 01:07:19 PM
That's OK Num. Mutations is one of the areas that I understand pretty well.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 01:09:13 PM
Py check out the other two specific problems

1#That's a problem (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=288773)

2# That's a problem (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=288836)

the 1# problem Talks about that robots should be able to do math using them "unused" memory locations , right? If robots can do math the robots are smarter right? Smarter robots = better simulations
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 01:14:26 PM
Yes I already did.

They are part of the same thing, just in different subroutines.

All can be changed without too much fuss.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 01:16:06 PM
THX PY
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 01:17:05 PM
'Smarter' might be a difficult thing to figure out.  There's alot of room for general theorizing about the most successful way to find a good mutant.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 01:23:31 PM
I dont know Num , what I do know is that by the looks of it my bot8g is just bagging to have stuff like

**************IMPORTENT*****************
...cond
[you].eye5 'the top one and the buttom one are bouth from sysvars
.sun  'notice this is not a value its a memory location from the used sysvars
>[/you]
start
...
stop
....
**************IMPORTENT*****************

and stuff like

*30
*20  'notice this is not a value its a memory location (notice that there is no numeric value involved in this example too)>

and a lot of stuff like :

cond
start
32
33
store 'this one works I think , its pointer storage
2
30
store
3
31
store
*30
*31
add
[you]*33[/you]
[you]store[/you]
stop
end
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 01:26:21 PM
You're assuming that the program will know what to do with a pointer once it's found a way to make it.  Eventually a bot might figure something out but the number of steps involved isn't trivial.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 01:26:31 PM
I will even give away bot8g for everyone to check out. Dont want to spam the bestery too mutch with my mutants but ill attach it here.
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 01:27:48 PM
For some fun try having a sim where nothing is deleted or changed, only added to the DNA.

You can jack the mutation rates way up high.  It's alot of fun.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 01:31:02 PM
Num , A good use for pointers , is ARRAYS!

ARRAYS! + SIN + COS +ATN = MAPMEMOEY!! + STRATEGY DEVELOPMENT!!
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 03:18:49 PM
Do you want the good news or the bad news?

Good first eh?

I spent about an hour messing with the mutations code and got the system to do exactly what Bots wanted in the procedure that I posted earlier.

Here is a version of that little test bot that has been mutated with it.

Code: [Select]
cond
  836
  *517
  <
  *.ypos
  281
  >
  *944
  530
  ~=
start
  50
  .repro
  store
  15
  .aimdx
  store
stop
end

The BAD news?

The fucking program crashed before I could save the changes in the code and I lost them all.

 :shoot:  Bloody VB running directly from code.


To the idiot that designed the windows interface for VB, this is for you :plzdie:

 :angry: bum willy asso tit breast piss poo shit bugger damn  :angry:
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 03:55:42 PM
Quote
idiot
Strong language.

 :lol:
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 04:40:48 PM
Ok good work Py keep it up , (for conditions also add that you can have two *.eye , *.refaim etc. or two *517 , *944 etc.)
Here is an example:

Quote
cond
 *.ypos
 *.sun
 >
 *944
 *517
 ~=
start

And thats only the conditions, then we have to figure out the "start...stop" part of the dna.

P.S.
Yes Vb crashes on me a lot too, I developed a habit to press save right after I write somthing really importent in the code.


-----------
But do! not! make two "Numbers" apper in one condition

Here is an example

Quote
cond
 3
 2
 >
start

thats the same as writing

Quote
cond
stop
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 04:45:55 PM
Quote
Strong language.

Sorry! I will tone it down in future. How does "cranially challenged" sound instead?

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 04:52:34 PM
Damage repaired. The mutator is working again.

It can already do what you suggest Bots. Each part of the whole thing can be a label (*569), a sysvar (*.refeye) or a simple number (986)

There is a slightly greater chance (60% actually) that the first section will be a sysvar and 20% each for the other two options

For the second part this is reversed so that ordinary numbers get the 60%.
And that too is subdivided so that there are two number ranges available, -100 to 100 and -1000 to 1000

The third part has now been expanded to include the new conditionals that Num put into the code. Stuff like >= and ~%=

As you pointed out, this is just the first part. I will have to adjust all the other mutation procedures in the same way.

It will take a while to get tham all done but at least the concept works.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 04:54:02 PM
weak languge , weak

(I am trying to make it better not worse , is it working?) :/
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 04:57:59 PM
PY NICE , BUT:
Quote
There is a slightly greater chance (60% actually) that the first section will be a sysvar and 20% each for the other two options

I think My new mutations should be a seporate "rate" in mutation rates.

Then if the program desides to make it 60% or 25% its the program's choise , not yours.

Same for all the stuff in the "start...stop" part of the dna.

--------
Good Job anyway....
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 17, 2005, 05:03:19 PM
At the moment the cutoff percentage is kind of arbitrary but I am only testing the idea at the moment. maybe it will eventually be controlled by sliders in the mutation panel. Who knows.

So far though I think your ideas are pretty good and well founded. Even if it did take me a while to figure out what you were saying.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 05:11:59 PM
Quote
So far though I think your ideas are pretty good and well founded. Even if it did take me a while to figure out what you were saying.
Amen.  When I can actually understand something you've come up with it's usually pretty cool.  Or totally inane.  50/50 really.  But that's not a bid track record.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 05:43:39 PM
Not sliders in the mutation panel

I want it to randomly mutate for each robot, and be found in the "other" mutation rates form

Here http://s9.invisionfree.com/DarwinBots_Foru...ndpost&p=282710 (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=154&view=findpost&p=282710)
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 17, 2005, 05:49:50 PM
I think they should be triangular sliders, like in simant when you chose between breeder, worker, and soldiers.

Then, the rate of change of mutations or whatever it is at the top of the mutations panel could modify it same as other mutations rates.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 06:02:36 PM
Here is my idea, Its not the final virsion (I dont even know If I got everything right, but it should be comprehendible) , I open that to discussion:

Change the current mutation rates:
'Change a condition'
'Change variable with variable'
'Introduce a new variable'
To mutate the top and the buttom parts of the condition so stuff like:

Quote
*.eye
*.sun
~=
is possible

Then add new
'Special Change a condition with memory'
'Special Change variable with variable with memory'
'Special Change a Introduce a new variable with memory'

So that stuff like
Quote
*20
*30
>
is possible

Then add new
'Change an instruction to with memory pointer'
'Change an instruction to change memory'
'Insert a new memory pointer'
'Change a value with a memory location'
'Insert New memory location'

To make stuff in the "start...stop" part of the dna possible ,example:
Quote
cond
start
32
33
store
2
30
store
3
31
store
*30
*31
add
*33
store 'memory(memory(33)----->32) =
'''''''' (memory(30)----->2)+ (memory(31)----->3) = 5
stop
end
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 17, 2005, 06:25:52 PM
Thats what I mean by mutation rates Num.

, Num I have no idea what you are talking about. Are you still talking about that "Mutation Rates Panel" in "Simulation parameters and options" ?

I am talking about "Mutation Rates Button" in the "Species Panel", It changes during the simulation.
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 18, 2005, 06:18:27 AM
Yes, I am still talking about what you're talking about.

Imagine a triangle.  Each corner represents one of the options.  Imagine a circle.  The closer it is to a corner the higher that corner's percentage is.

A corners percentage = that corner distance /(sum of distances to all corners).

A 1D slider works if you have 2 options.  Having 3 options means you can use a triangle.

Simant had a version of this.  Check it out if you have a chance.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 18, 2005, 09:10:18 AM
yes that was the idea I was thinking of too.

Another way I have seen it done is to have 3 small sliders set up so that as you increase 1 the others go down giving a total of 100% between the 3.

Not quite sure how to set up a triangular slider.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 18, 2005, 09:59:12 AM
I have no idea either, but I think the effect is cool.

three interrelated slides is easier but really not as much fun.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 18, 2005, 10:06:18 AM
I will see if I can figure it out. It may have to be some kind of custom maded control.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Numsgil on March 18, 2005, 10:19:13 AM
It'd be something like:

3 lines forming equilateral triangle.  A circle inside this triangle can be dragged around, but is not permitted to leave the triangle.

There's some math involved, but it isn't too bad.
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 18, 2005, 10:33:56 AM
I have seen it done the other way too.

You click and drag the points of the triangle outward and the others move inward as you do. You can get anything from an equilateral to a straight line from the centre to one of the 3 choices.
This method can actually have as many possibilities as you like. 4 or five options work just as well as 3.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 18, 2005, 11:49:08 AM
Here is my idea:
(http://img195.exs.cx/img195/1986/isthisit3qh.th.gif) (http://img195.exs.cx/my.php?loc=img195&image=isthisit3qh.gif)
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 18, 2005, 11:59:14 AM
Yup! That is the kind of thing I was thinking of. However it will need to be more than one control. We want to be able to control new conditions and replaced conditions seperately I think.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 18, 2005, 12:01:12 PM
Thx PY, thats just what I was thinking of.
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 18, 2005, 06:22:05 PM
I [you]don’t like the idea of using costume controls[/you], I think the controls we have there right now will work [you]great[/you] for the new conditions too.


Quote
We want to be able to control [you]new conditions [/you]and replaced [you] conditions [/you]separately I think.
I know you are busy with a lot of stuff. But we have to add not only new condition mutations but [you] change the existing once [/you]as well, we also need to add new mutations to the start....stop part of the Dna; Its all described right here (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=289086)

***
I even tryed to make up my own names for the controls
here (http://s9.invisionfree.com/DarwinBots_Forum/index.php?showtopic=163&view=findpost&p=291074)

--------
P.S.
-------
Quote
cond
start
32
33
store 'this one works I think , its pointer storage
2
30
store
3
31
store
*30
*31
add
[you]*33[/you]
[you]store[/you]
stop
end

This is a quote from the links I gave you, dont forget about this part , its also very important.

----------
P.S.
---------
Quote
cond
 836 'reguler value is used
 *517
 <
 *.ypos
 281 'reguler value is used
 >
 *944
 530 'reguler value is used
 ~=
start
 50
 .repro
 store
 15
 .aimdx
 store
stop
end

I like to have this mutations as well, its the ones PY already posted . (I never sayed I did not like this mutations)
Title: Advanced Randomness Generation Thread
Post by: PurpleYouko on March 18, 2005, 07:40:18 PM
Bots I  know we need to mutate the actions step as well!

That is controlled by a different part of the program and is part of the reason why we need more than one control.

 :D  PY  :D
Title: Advanced Randomness Generation Thread
Post by: Botsareus on March 18, 2005, 07:45:50 PM
Yea, Add more reguler controls , that should do the trick

And also change the [you]current conditions mutation[/you] the way I explained:
Quote
**************IMPORTENT*****************
...cond
[you].eye5 'the top one and the buttom one are bouth from sysvars
.sun  'notice this is not a value its a memory location from the used sysvars
>[/you]
start
...
stop
....
Right now instead of "sun" only numbers will mutate
**************IMPORTENT*****************

And don't forget about the followng hat trick too:

Quote
*35
*952
>

Ok , hope to see this in a virsion soon.... , good luck PY.....