' Svjatoslav Agejenko 2003.04 DEFINT A-Z DECLARE SUB fall (a) DECLARE SUB start () amo = 500 DIM SHARED fx(1 TO amo) DIM SHARED fy(1 TO amo) FOR a = 1 TO amo fx(a) = RND * 300 + 10 fy(a) = RND * 100 + 10 NEXT a start 1 FOR b = 1 TO 100 a = INT(RND * amo) + 1 fall a NEXT b SOUND 0, .1 IF INKEY$ <> "" THEN SYSTEM GOTO 1 SUB fall (a) t = 0 2 PSET (fx(a), fy(a)), 0 ny = fy(a) + 1 nx = fx(a) + INT(RND * 3) - 1 IF POINT(nx, ny) > 0 THEN IF t < 10 THEN t = t + 1: GOTO 2 PSET (fx(a), fy(a)), 15 nx = RND * 300 + 10 ny = 1 END IF IF fy(a) > 198 THEN PSET (fx(a), fy(a)), 15 nx = RND * 300 + 10 ny = 1 END IF fx(a) = nx fy(a) = ny PSET (fx(a), fy(a)), 15 END SUB DEFSNG A-Z SUB start SCREEN 13 LOCATE 1, 1 PRINT "SNOW" FOR y = 0 TO 15 STEP .2 xp = SIN(y / 1) * 3 + 65 FOR x = 0 TO 30 STEP .1 ys = 4 + COS(x / 5) yp = COS(x / 4 + 3) * 5 + 130 c = POINT(x, y) IF c > 0 THEN LINE (x * 6 + xp, y * ys + yp)-(x * 6 + xp + 1, y * ys + yp + 1), 11, BF END IF NEXT x NEXT y LOCATE 1, 1 PRINT " " END SUB