' =========================================================== ' Bubble play ' "Tin Tik Rin" Project Q BASIC ' http://tintik.at.infoseek.co.jp/pqb/ ' (C)Tintik 2004 ' ' 320*200 dots 256 colors ' =========================================================== DEFINT A-Q: RANDOMIZE TIMER ON KEY(1) GOSUB STOPTRAP: KEY(1) ON ' ON KEY(31) GOSUB HELPTRAP: KEY(31) ON ERF = 0: ON ERROR GOTO ERRTRAP ' COLOR of Letteric ' Black =0 ' Blue =32 Cyan =52 Green =48 ' Purple=36 White =15 Yellow=44 ' Red =40 ' =========================================================== ' Initialize ' =========================================================== SCREEN 13 WD = 1: WX = 320: WY = 200 lot = 255 DIM z(lot, 4) FOR i = 1 TO lot z(i, 1) = RND(1) * WX z(i, 2) = RND(1) * 3 - 1.5 z(i, 3) = RND(1) * WY z(i, 4) = RND(1) * 3 - 1.5 NEXT ' =========================================================== ' Main ' ========================================================= ' Windos85 i$ = "" WHILE (i$ <> CHR$(27)) i$ = INKEY$ FOR i = 1 TO lot PSET (z(i, 1), z(i, 3)), 0 z(i, 1) = z(i, 1) + z(i, 2) IF z(i, 1) > WX THEN z(i, 1) = WX: z(i, 2) = -z(i, 2) IF z(i, 1) < 1 THEN z(i, 1) = 1: z(i, 2) = -z(i, 2) z(i, 3) = z(i, 3) + z(i, 4) IF z(i, 3) > WY THEN z(i, 3) = WY: z(i, 4) = -z(i, 4) IF z(i, 3) < 1 THEN z(i, 3) = 1: z(i, 4) = -z(i, 4) FOR j = i TO lot IF i <> j THEN IF ABS(z(j, 1) - z(i, 1)) < 2 THEN IF ABS(z(j, 3) - z(i, 3)) < 2 THEN z(i, 2) = RND(1) * 5 - 2.5 z(i, 4) = RND(1) * 5 - 2.5 END IF END IF END IF NEXT PSET (z(i, 1), z(i, 3)), i NEXT WEND ' GOSUB Gcolor ' =========================================================== STOPTRAP: COLOR 7 PRINT ":End." SCREEN 11 RESET END ' =========================================================== HELPTRAP: PRINT "Non HELP." END ' =========================================================== ERRTRAP: ERF = -1 PRINT ":Error "; ERR ' ERROR ERR RESUME NEXT ' =========================================================== ' Sub Routine ' =========================================================== Tcolor: FOR i = 0 TO 255 COLOR i: PRINT "#"; IF i MOD 16 = 0 THEN PRINT NEXT RETURN Gcolor: FOR i = 0 TO 255 LINE (i, 0)-(i, 200), i NEXT RETURN explord: SCREEN 13 FOR i = 1 TO 100 t0 = TIMER rx = RND(1) * 160: ry = RND(1) * 100 rr = 8 + RND(1) * 32 CIRCLE (80 + rx, 50 + ry), rr, 106 + rr / 5 PAINT (80 + rx, 50 + ry), 106 + rr / 5 CIRCLE (240 - rx, 150 - ry), rr, 33 + rr / 5 PAINT (240 - rx, 150 - ry), 33 + rr / 5 Tloop: FOR w! = 0 TO 50000: NEXT NEXT RETURN ' ========================================================== ' ===========================================================