In this simulation, "lightning" (moving green dot, this is WIP, it will be a set of lines in later versions) is evolving to strike your "house". (i.e. the blue dot)
There are obstacles that the lightning has to pass (blue lines)
This is greatly inspired by this simulation: yt link
After each simulation, numbers will be shown on your screen:
The list tells you which creature did the best, with the first creature displayed being 1, the second being 2, etc.
The 3 numbers on the bottom show you the highest fitness (did the worst), the average fitness, and the lowest fitness (did the best).
The fitness is the distance from your house to where the lightning strike ended.
Here's the code (sorry for weird post, this is WIP and I don't really have much to say. I'll update this when I get the graphics done.)
Code:
I can't really post a screenie, as I'm in a rush.
There are obstacles that the lightning has to pass (blue lines)
This is greatly inspired by this simulation: yt link
After each simulation, numbers will be shown on your screen:
The list tells you which creature did the best, with the first creature displayed being 1, the second being 2, etc.
The 3 numbers on the bottom show you the highest fitness (did the worst), the average fitness, and the lowest fitness (did the best).
The fitness is the distance from your house to where the lightning strike ended.
Here's the code (sorry for weird post, this is WIP and I don't really have much to say. I'll update this when I get the graphics done.)
Code:
Degree
GridOff
AxesOff
ClrDraw
{100,88,20,2}->L3
ZStandard
ZSquare
Pxl-On(L3(2),L3(1)
Line(~16,2,~1,2
Line(1,2,16,2
Line(~1,10,~1,0
40->N
N->dim(L4
N->dim(L5
N->dim(L6
20N->dim(|LD
20N->dim(|Ltheta
DelVar D
For(A,1,N
180->R
For(B,1,20
D+1->D
randInt(~45,45)->C
If (R+C)<0
min(max(R+C,~90),90->R
If (R+C)>=0
min(max(R+C,90),270->R
R->L1(D
randInt(1,8)->L2(D
End
End
Repeat 0
DelVar D
For(A,1,N
1->Z
132->I
24->J
For(B,1,20
D+1->D
sin(L1(D->K
~cos(L1(D->L
For(C,1,L2(D
If Z
Then
I+K->I
J+L->J
If pxl-Test(int(J),int(I
DelVar Z
For(theta,0,1
If Z:Then
Pxl-Change(int(J),int(I),Green
Wait 0.001
End
End
End
End
End
sqrt((L3(1)-I)^^2+(L3(2)-J)^^2)->L4(A
Ans->L5(A
End
SortA(L4
DelVar I
For(A,1,N
0->B
Repeat Ans
B+1->B
L4(A)=L5(B)
End
B->L6(A
For(D,1,20
I+1->I
L1(20(B-1)+D->|LT1(I
L2(20(B-1)+D->|LT2(I
End
End
|LT1->L1
|LT2->L2
Disp L6
round(L5,2
Disp toString(max(Ans))+":"+toString(mean(Ans))+":"+toString(min(Ans
int(N/2)->dim(L6
DelVar E
For(A,1,N/2
20(A-1)->D
For(B,1,20
D+1->D
E+1->E
L1(D)->R
Ans->|Ltheta(E
DelVar C
If not(randInt(0,L3(4))
(randInt(~45,45)*not(randInt(0,L3(3)))+randInt(~10,10)->C
If (R+C)<0
min(max(R+C,~90),90->R
If (R+C)>=0
min(max(R+C,90),270->R
R->|Ltheta(E+20*(N/2))
L2(D)->|LD(E
min(max(L2(D)+(not(randInt(1,L3(4))*randInt(~1,1))),1),8->|LD(E+20*(N/2)
End
End
|Ltheta->L1
|LD->L2
End
I can't really post a screenie, as I'm in a rush.