pidemmittä puheitta, tässä koodi. Jos joku innostuu tätä käyttämään, mainitkoot minut tekijöissä.
Code: Select all
//conway's life on CB by Elias Linjama
Const BX=8
Const BY=8
Dim cell(400/BX,300/BY)
Dim cell2(400/BX,300/BY)
For x=1 To 400/BX
For y=1 To 300/BY
cell(x,y)=0
cell2(x,y)=0
Next y
Next x
run=0
t=50
Repeat
For x=1 To 400/BX
For y=1 To 300/BY
If cell(x,y)=0 Then
Color 1,1,1
Box x*BX,y*BY,BX,BY,cell(x,y)
EndIf
If cell(x,y)=1 Then
Color 255,255,255
Box x*BX,y*BY,BX,BY,cell(x,y)
EndIf
If MouseX()-x*BX<BX And MouseY()-y*BY<BY And MouseY()-y*BY>0 And MouseX()-x*BX>0 Then
If MouseHit(1) Then
cell(x,y)=1
ElseIf MouseHit(2) Then
cell(x,y)=0
Else
Color 255,0,0
Box x*BX,y*BY,BX,BY,0
Color 255,255,255
EndIf
EndIf
sur=cell(x-1,y)+cell(x-1,y-1)+cell(x,y-1)+cell(x+1,y-1)+cell(x+1,y)+cell(x+1,y+1)+cell(x,y+1)+cell(x-1,y+1)
If run=r Then
Select sur
Case 1
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=0
EndSelect
Case 2
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=1
EndSelect
Case 3
Select cell(x,y)
Case 0
cell2(x,y)=1
Case 1
cell2(x,y)=1
EndSelect
Case 4
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=0
EndSelect
Case 5
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=0
EndSelect
Case 6
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=0
EndSelect
Case 7
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=0
EndSelect
Case 8
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=0
EndSelect
Default
Select cell(x,y)
Case 0
cell2(x,y)=0
Case 1
cell2(x,y)=0
EndSelect
EndSelect
EndIf
Next y
Next x
run=run+KeyHit(57)
t=t+(KeyHit(16)-KeyHit(30))*5
If KeyDown(28) Then
If Timer()>ti+t Then
run+1
ti=Timer()
EndIf
EndIf
If run>r Then
For x=BX To 400/BX
For y=BY To 300/BY
cell(x,y)=cell2(x,y)
Next y
Next x
r=run
EndIf
If g>g2+1 Then g=g2
SetWindow ""+run+" "+t
DrawScreen
Forever
Ja aina unohdan kontrollit kertoa, hiirellä naputellaan soluja matriisiin ja spacella mennään yksi generaatio eteenpäin, enterillä se menee jatkuvasti eteenpäin. Q+A näppäimillä voi vaihtaa nopeutta, eli kuinka monta millisekuntia enteriä pitää pitää pohjassa ennen seuraavaa generaatiota
Nyt on koodi korjattu, ei pitäisi mavata for-looppien takia enää
korjasin vielä kunnolla