Welcome To Darwinbots > Newbie
Eyes
Darwin226:
I've made a code that determines which eye has the greatest value and sets it as a focus eye.
This is it:
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']cond
*.mode 1 =
start
-4 .focuseye store
stop
cond
*.mode 1 =
*.eye2 *.eye1 >
start
-3 .focuseye store
stop
cond
*.mode 1 =
*.eye3 *.eye2 >
start
-2 .focuseye store
stop
cond
*.mode 1 =
*.eye4 *.eye3 >
start
-1 .focuseye store
stop
cond
*.mode 1 =
*.eye5 *.eye4 >
start
0 .focuseye store
stop
cond
*.mode 1 =
*.eye6 *.eye5 >
start
1 .focuseye store
stop
cond
*.mode 1 =
*.eye7 *.eye6 >
start
2 .focuseye store
stop
cond
*.mode 1 =
*.eye8 *.eye7 >
start
3 .focuseye store
stop
cond
*.mode 1 =
*.eye9 *.eye8 >
start
4 .focuseye store
stop
The problem:
It's 9 genes. Has anyone thought of something that has the same effect but it less genes?
If someone has, can I use it?
As usual, thanks in advance =)
bacillus:
Even better, I did it in one store :
--- Code: --- -4 *.eye1 *.eye9 sub sgn 0 floor mult *.eye1 *.eye8 sub sgn 0 floor mult *.eye1 *.eye7 sub sgn 0 floor mult *.eye1 *.eye6 sub sgn 0 floor mult *.eye1 *.eye5 sub sgn 0 floor mult *.eye1 *.eye4 sub sgn 0 floor mult *.eye1 *.eye3 sub sgn 0 floor mult *.eye1 *.eye2 sub sgn 0 floor mult 4 *.eye9 *.eye8 sub sgn 0 floor mult *.eye9 *.eye7 sub sgn 0 floor mult *.eye9 *.eye6 sub sgn 0 floor mult
*.eye9 *.eye5 sub sgn 0 floor mult *.eye9 *.eye4 sub sgn 0 floor mult *.eye9 *.eye3 sub sgn 0 floor mult *.eye9 *.eye2 sub sgn 0 floor mult *.eye9 *.eye1 sub sgn ++ sgn mult add -3 *.eye2 *.eye9 sub sgn ++ sgn mult *.eye2 *.eye8 sub sgn 0 floor mult *.eye2 *.eye7 sub sgn 0 floor mult *.eye2 *.eye6 sub sgn 0 floor mult *.eye2 *.eye5 sub sgn 0 floor mult *.eye2 *.eye4 sub sgn 0 floor mult *.eye2 *.eye3 sub sgn 0 floor mult *.eye2 *.eye1 sub sgn ++ sgn mult add 3 *.eye8 *.eye9 sub sgn ++ sgn mult *.eye8 *.eye7 sub sgn 0 floor mult *.eye8 *.eye6 sub sgn 0 floor mult *.eye8 *.eye5 sub sgn 0 floor mult *.eye8 *.eye4 sub sgn 0 floor mult *.eye8 *.eye3 sub sgn 0 floor mult *.eye8 *.eye2 sub sgn ++ sgn mult *.eye8 *.eye1 sub sgn ++ sgn mult add -2 *.eye3 *.eye9 sub sgn ++ sgn mult *.eye3 *.eye8 sub sgn ++ sgn mult *.eye3 *.eye7 sub sgn 0 floor mult *.eye3 *.eye6 sub sgn 0 floor mult
*.eye3 *.eye5 sub sgn 0 floor mult *.eye3 *.eye4 sub sgn 0 floor mult *.eye3 *.eye2 sub sgn ++ sgn mult *.eye3 *.eye1 sub sgn ++ sgn mult add 2 *.eye7 *.eye9 sub sgn ++ sgn mult *.eye7 *.eye8 sub sgn ++ sgn mult *.eye7 *.eye7 sub sgn 0 floor mult *.eye7 *.eye6 sub sgn 0 floor mult *.eye7 *.eye5 sub sgn 0 floor mult *.eye7 *.eye4 sub sgn ++ sgn mult *.eye7 *.eye2 sub sgn ++ sgn mult *.eye7 *.eye1 sub sgn ++ sgn mult add -1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn mult *.eye4 *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn 0 floor mult *.eye4 *.eye5 sub sgn 0 floor mult *.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub sgn ++ sgn mult add 1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn mult *.eye4 *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn ++ sgn mult *.eye4 *.eye5 sub sgn 0 floor mult
*.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub sgn ++ sgn mult add 0 *.eye5 *.eye9 sub sgn ++ sgn mult *.eye5 *.eye8 sub sgn ++ sgn mult *.eye5 *.eye7 sub sgn ++ sgn mult *.eye5 *.eye6 sub sgn ++ sgn mult *.eye5 *.eye4 sub sgn ++ sgn mult *.eye5 *.eye3 sub sgn ++ sgn mult *.eye5 *.eye2 sub sgn ++ sgn mult *.eye5 *.eye1 sub sgn ++ sgn mult add .focuseye store
--- End code ---
Sorry about the indentations.
Darwin226:
OH MEH GAWD!!!
Whaaaa....
How?
*runs away*
Though I'm a little scared to ask, could you explain how it works?
If it's too long to explain or something you don't need to.
bacillus:
PART 1
--- Code: ----4 *.eye1 *.eye9 sub sgn 0 floor mult
--- End code ---
subtracting *.eye9 from *.eye1 returns 0 if equal, positive if .eye1 is greater, and negative if .eye9 is greater. (sgn simple reduces this difference to -1, 0 or 1.)
0 floor makes both -1 and 0 equal to 0.
the resultant is multiplied by -4, the focuseye value for eye1.
repeat this process for each of the eye pairings with .eye1:
--- Code: ----4 *.eye1 *.eye9 sub sgn 0 floor mult
*.eye1 *.eye8 sub sgn 0 floor mult
*.eye1 *.eye7 sub sgn 0 floor mult
*.eye1 *.eye6 sub sgn 0 floor mult
*.eye1 *.eye5 sub sgn 0 floor mult
*.eye1 *.eye4 sub sgn 0 floor mult
*.eye1 *.eye3 sub sgn 0 floor mult
*.eye1 *.eye2 sub sgn 0 floor mult
--- End code ---
(Looks so much neater that way, but not as impressive )
and voila, you know whether .eye1 should be selected or not!
This process is repeated for each eye.
Sometimes, you have to use ++ sgn instead of 0 floor. This makes -1 to 0, and 0 and 1 to 1. This gives certain eyes priority over others when there's a clash eg. both eyes have same readings.
PART 2
Because of the priority setting bit, only one number will equate to a nonzero value (unless each eye is equal to 0 or eye5 takes priority). However, there's still a whole lot of zeros on the stack. To get rid of these, simply add them all together. This will leave you with one nice number to finish it all off:
.focuseye store
This code is practically unreadable unless you know how it works, and I had to remind myself (believe me, I found a glitch in it and it took me forever to find it )
Anyways, that's about as simple as I can make it.
Darwin226:
Great! I understand everything. (not sarcastic)
Thanks =)
Navigation
[0] Message Index
[#] Next page
Go to full version