AppTitle "Checkerboard by Eikon 08.12.04" Graphics 320, 240, 16, 3 SeedRnd MilliSecs() Type Block Field X, Y, T, F, D, I, C1, C2, C3, A#, R# End Type GenBoard sD = 1 SetBuffer BackBuffer() While Not KeyDown(1) For b.Block = Each Block If b\C1 + (b\F * 25) > 255 Then tmp1 = 255 - b\C1 Else tmp1 = (b\F * 25) If b\C3 + (b\F * 25) > 255 Then tmp2 = 255 - b\C2 Else tmp2 = (b\F * 25) If b\C3 + (b\F * 25) > 255 Then tmp3 = 255 - b\C3 Else tmp3 = (b\F * 25) Color b\C1 + tmp1, b\C2 + tmp2, b\C3 + tmp3 Rect b\R * Cos(b\A) + b\X, b\R * Sin(b\A) + b\Y, 10, 10, 1 If MilliSecs() >= b\T + 100 Then If b\D = 1 Then b\F = b\F + 1 Else b\F = b\F - 1 b\T = MilliSecs() EndIf b\A = b\A + 1 If b\F = 0 Then b\D = 1 ElseIf b\F = 4 Then b\D = 0 If sd = 1 And b\R < 300 Then b\R = b\R + 3 ElseIf b\R >= 300 Then sd = 0 If sd = 0 And b\R > 0 Then b\R = b\R - 3 ElseIf b\R <= 0 Then sd = 1 GenBoard EndIf Next ;If Rand(0, 100) = 50 Then GenBoard Flip 1: Cls Wend: End Function GenBoard() Delete Each Block r1 = Rand(35, 155): r2 = Rand(35, 155): r3 = Rand(35, 155) For i2 = 0 To 240 Step 10 For i = 0 To 320 Step 10 b.Block = New Block b\X = i: b\Y = i2: b\T = MilliSecs(): b\F = Rand(0, 4): b\D = Rand(0, 1) b\c1 = r1 b\c2 = r2 b\c3 = r3 b\A = Rand(0, 359): b\R = 0 Next Next End Function