'=========================================================================== ' Subject: PLASMA KALIDA THINGY-MAJIG Date: 10-01-96 (08:33) ' Author: Ryan White Code: QB, QBasic, PDS ' Origin: BigFoot@InfoAve.Net Packet: GRAPHICS.ABC '=========================================================================== 'Plasma Kalida-thingy-majig 'By Ryan White 'Press F1 to makes something wierd happen.... 'Otherwise, have fun with this. SCREEN 12 RANDOMIZE TIMER: CLS : DEFINT A-Z DIM c(255, 2) ON KEY(1) GOSUB chng: KEY(1) ON DEF fnx = INT(RND * 3) - 1: DEF fny = INT(RND * 3) - 1 FOR n = 0 TO 15 c(n, 0) = n * 4: c(n, 1) = n * 4: c(n, 2) = n * 4: c(n + 16, 0) = 63: c(n + 16, 1) = 63 - n * 4: c(n + 16, 2) = 63 - n * 4 c(n + 32, 0) = 63: c(n + 32, 1) = n * 2: c(n + 32, 2) = 0: c(n + 48, 0) = 63: c(n + 48, 1) = n * 2 + 31: c(n + 48, 2) = 0 c(n + 64, 0) = 63 - n * 4: c(n + 64, 1) = 63: c(n + 64, 2) = 0: c(n + 80, 0) = 0: c(n + 80, 1) = 63 - n * 2: c(n + 80, 2) = n * 4 c(n + 96, 0) = 0: c(n + 96, 1) = 32 - n * 2: c(n + 96, 2) = 60: c(n + 112, 0) = n * 3: c(n + 112, 1) = 0: c(n + 112, 2) = 60 c(n + 128, 0) = 45 - n * 3: c(n + 128, 1) = 0: c(n + 128, 2) = 60: c(n + 144, 0) = 0: c(n + 144, 1) = n * 2: c(n + 144, 2) = 60 c(n + 160, 0) = 0: c(n + 160, 1) = 30 + n * 2: c(n + 160, 2) = 60 - n * 4: c(n + 176, 0) = n * 4: c(n + 176, 1) = 63: c(n + 176, 2) = 0 c(n + 192, 0) = 63: c(n + 192, 1) = 60 - n * 2: c(n + 192, 2) = 0: c(n + 208, 0) = 63: c(n + 208, 1) = 30 - n * 2: c(n + 208, 2) = 0 c(n + 224, 0) = 60 - n * 2: c(n + 224, 1) = n * 2: c(n + 224, 2) = n * 2: c(n + 240, 0) = 30 - n * 2: c(n + 240, 1) = 30 - n * 2: c(n + 240, 2) = 30 - n * 2 NEXT n FOR n = 0 TO 15: OUT &H3C8, n: FOR m = 0 TO 2: OUT &H3C9, c(n, m): NEXT m: NEXT n x = 0: y = 0 DO x = fnx + x: y = fny + y IF x >= 320 THEN x = 319 ELSE IF x <= -1 THEN x = 0 IF y >= 240 THEN y = 239 ELSE IF y <= -1 THEN y = 0 c1 = 1 + POINT(x, y): IF c1 >= 16 THEN c1 = 15 c2 = 1 + POINT(639 - x, y): IF c2 >= 16 THEN c2 = 15 c3 = 1 + POINT(x, 479 - y): IF c3 >= 16 THEN c3 = 15 c4 = 1 + POINT(639 - x, 479 - y): IF c4 >= 16 THEN c4 = 15 PSET (x, y), c1: PSET (639 - x, y), c2: PSET (x, 479 - y), c3: PSET (639 - x, 479 - y), c4 PSET (319 - x, 239 - y), c1: PSET (320 + x, 239 - y), c2: PSET (319 - x, 240 + y), c3: PSET (320 + x, 240 + y), c4 PSET (x, 239 - y), c1: PSET (639 - x, 239 - y), c2: PSET (639 - x, 240 + y), c3: PSET (x, 240 + y), c4 PSET (319 - x, y), c1: PSET (320 + x, 479 - y), c2: PSET (320 + x, y), c3: PSET (319 - x, 479 - y), c4 IF v = 1 THEN GOSUB col LOOP UNTIL INKEY$ <> "" END chng: I = I - 1: IF I = -1 THEN I = 1 IF I = 1 THEN v = 1 ELSE v = 0 RETURN col: scol = scol + 1: IF scol = 241 THEN scol = 0 ecol = scol + 14 cc = 0 FOR n = scol TO ecol cc = cc + 1 OUT &H3C8, cc FOR m = 0 TO 2: OUT &H3C9, c(n, m): NEXT m NEXT n RETURN ' -1 or 1 routines:x = x + (INT((RND * 2) + 1) * 2 - 3):y = y + (INT((RND * 2) + 1) * 2 - 3)