Page 1 of 1

### Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 9:34 am
Tein tällaisen pienen soluautomaatiosimulaattorin, johon ajattelin jotenkin saada RuleTablen toimimaan, mutta nyt tein solujen toiminnan select...case -rakenteella.
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 ``````
EDIT:

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

EDIT:

Nyt on koodi korjattu, ei pitäisi mavata for-looppien takia enää

EDIT:

korjasin vielä kunnolla

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 11:08 am
Homma kaatuu heti alussa MAViin. Vika luultavasti alun for-next rakenteessa.

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 11:15 am
Ööööh... Varmasti toimii hienosti ja silleen, mutta itse en saanut toimimaan tuota. Jäi muutenkin mietityttämään, että miksi sinulla on taulukot (400/BX)*(300/BY), mutta käyt niitä kuitenkin läpi 400*300 kokoisina BX=8 ja BY=8 stepeillä...?
Koitapa korjata tuo niin pääsisi testaamaan kunnolla, eikä tarvitsisi itse korjailla. =)

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 11:34 am
Noin. Tosiaan, ihmettelin vähän itsekkin mavia, mutta tuohan se oli vikana. Korjasin siis taulukoiden läpikäynnit ja nyt toimii

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 11:51 am
Noniin, johan alkoi toimimaan ja näytti tosi veikeeltä, juuri niin kuin pitääkin(?). =)

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 11:58 am
Noni, just tällaista mä laivanupotukseen tarvitsinkin. Kai saa käyttää??

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 2:50 pm
TukeKoodi wrote:Noni, just tällaista mä laivanupotukseen tarvitsinkin. Kai saa käyttää??
Lue se aloitusposti ennen kuin kyselet.

Hyvin toimii Ihan jännän näköinen kun on paljon soluja ja painaa enter pohjassa :>

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 2:59 pm
Onhan se ihan jännän näköinen, mutta en aivan tajunnut mihin tätä käytetään.

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 10:51 pm
Mihin vain. Esimerkiksi ristinollaan, laivanupotukseen, väripalettiin, lautapeleihin, kaikkeen missä tarvitaan "ruudukko" jonkun asettamiselle jne.

### Re: Conway's Game of life CB.llä

Posted: Sat Apr 16, 2011 11:05 pm
TukeKoodi wrote:Mihin vain. Esimerkiksi ristinollaan, laivanupotukseen, kaikkeen missä tarvitaan "ruudukko" jonkun asettamiselle jne.
Latexi95 varmaankin puhui itse Game of Life:stä, eikä pelkästään solujen asettelemisesta. Eipä tuolla "pelillä" minun tietojeni mukaan mitään varsinaista käyttöä ole. Kunhan vain voi katsoa mitä tapahtuu erilaisilla alkuasetelmilla.