Conway's Game of life CB.llä

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
Post Reply
User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Conway's Game of life CB.llä

Post by Wingman » 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 :D

Last edited by Wingman on Sat Apr 16, 2011 11:38 am, edited 3 times in total.
- - - -

User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

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

Post by KillBurn » Sat Apr 16, 2011 11:08 am

Homma kaatuu heti alussa MAViin. Vika luultavasti alun for-next rakenteessa.
Sumu Games: Sam, Ur eye!

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

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

Post by Misthema » 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. =)

User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

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

Post by Wingman » 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
- - - -

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

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

Post by Misthema » Sat Apr 16, 2011 11:51 am

Noniin, johan alkoi toimimaan ja näytti tosi veikeeltä, juuri niin kuin pitääkin(?). =)

User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 8:40 pm
Location: C:\Työpöytä

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

Post by TukeKoodi » Sat Apr 16, 2011 11:58 am

Noni, just tällaista mä laivanupotukseen tarvitsinkin. Kai saa käyttää??
Aloittelija, koodaaja, jotain...
CbFUN :D

User avatar
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

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

Post by Viltzu » 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 :>

User avatar
Latexi95
Guru
Posts: 1163
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

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

Post by Latexi95 » 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.

User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 8:40 pm
Location: C:\Työpöytä

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

Post by TukeKoodi » Sat Apr 16, 2011 10:51 pm

Mihin vain. Esimerkiksi ristinollaan, laivanupotukseen, väripalettiin, lautapeleihin, kaikkeen missä tarvitaan "ruudukko" jonkun asettamiselle jne.
Last edited by TukeKoodi on Sat Apr 16, 2011 11:39 pm, edited 1 time in total.
Aloittelija, koodaaja, jotain...
CbFUN :D

TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

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

Post by TheFish » 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.
CoolBasic henkilökuntaa
Kehittäjä

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest