OK, lets have a competition. Most complex PONG

Miscellaneous Forums/General Discussion/OK, lets have a competition. Most complex PONG

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

there should be 100 different pongs going on, each of which you control with the same two buttons, but all of them have different starting position balls/bats, and they should all be displayed next to each other down the screen, giving a res each with 64x48! On one 640x480 screen. :)

Technically, my version cannot be beaten! BWahaha!
Note: Not actually a very functioning Pong game, I just had a few minutes of free time to piss about. ;)

Graphics 640,480,16,2
SetBuffer BackBuffer()

Type pong
Field bat[1], ballx#, bally#, balla#
End Type

Dim zpong.pong(9,9)
For x=0 To 9
For y=0 To 9
	zpong(x,y) = New pong
	zpong(x,y)\bat[0] = Rnd(36)
	zpong(x,y)\bat[1] = Rnd(36)
	zpong(x,y)\ballx = 32
	zpong(x,y)\bally = 24
	zpong(x,y)\balla = Rnd(-4,4)*45
Next
Next

While Not KeyDown(1)
	Cls
	ky = (KeyDown(208) - KeyDown(200))
	For x=0 To 9
	For y=0 To 9
		zpong(x,y)\bat[0] = zpong(x,y)\bat[0] + ky
		If zpong(x,y)\bat[0] < 0 zpong(x,y)\bat[0] = 0
		If zpong(x,y)\bat[0] > 36 zpong(x,y)\bat[0] = 36
		zpong(x,y)\bat[1] = zpong(x,y)\bally-5
		If zpong(x,y)\bat[1] < 0 zpong(x,y)\bat[1] = 0
		If zpong(x,y)\bat[1] > 36 zpong(x,y)\bat[1] = 36
		
		ix = x*64
		iy = y*48
		Color 255,255,0
		Rect ix+32,iy,1,47,0
		Color 255,255,255
		Rect ix,iy,63,47,0
		Rect ix+4,iy+zpong(x,y)\bat[0],2,10,0
		Rect ix+57,iy+zpong(x,y)\bat[1],2,10,0
		
		zpong(x,y)\ballx = zpong(x,y)\ballx + Sin(zpong(x,y)\balla) * .75
		zpong(x,y)\bally = zpong(x,y)\bally + Cos(zpong(x,y)\balla) * .75
		
		If zpong(x,y)\ballx < 1
			Color 255,0,0
			Rect ix,iy,64,48
			zpong(x,y)\ballx = 32
			zpong(x,y)\bally = 24
			zpong(x,y)\balla = Rnd(-4,4)*45
		EndIf
		
		If zpong(x,y)\ballx > 61
			Color 0,255,0
			Rect ix,iy,64,48
			zpong(x,y)\ballx = 32
			zpong(x,y)\bally = 24
			zpong(x,y)\balla = Rnd(-4,4)*45
		EndIf
		
		If zpong(x,y)\bally < 1 zpong(x,y)\balla = 180-zpong(x,y)\balla
		If zpong(x,y)\bally > 45 zpong(x,y)\balla = 180-zpong(x,y)\balla
		
		If zpong(x,y)\ballx => 3 And zpong(x,y)\ballx =< 6 And zpong(x,y)\bally => zpong(x,y)\bat[0] And zpong(x,y)\bally =< zpong(x,y)\bat[0] + 10
			zpong(x,y)\balla = -zpong(x,y)\balla
		EndIf
		
		If zpong(x,y)\ballx => 56 And zpong(x,y)\ballx =< 57 And zpong(x,y)\bally => zpong(x,y)\bat[1] And zpong(x,y)\bally =< zpong(x,y)\bat[1] + 10
			zpong(x,y)\balla = -zpong(x,y)\balla
		EndIf
		
		Rect ix+zpong(x,y)\ballx-1, iy+zpong(x,y)\bally-1, 3,3
		
	Next
	Next
	Flip
Wend
End