این برنامه باعث ریزش برف می شود
RANDOMIZE TIMER
SCREEN 13
MinX = 0
MinY = 0
MaxX = 319 - MinX
MaxY = 199 - MinY
MaxSnow = 1000
Text$ = "http:\RFazli.blogfa.com"
TYPE Snows
X AS INTEGER
Y AS INTEGER
Col AS INTEGER
END TYPE
DIM Snow(MaxSnow) AS Snows
';;;;;;;;;;;;;;;;
';; Make Snows ;;
';;;;;;;;;;;;;;;;
FOR MSnow = 1 TO MaxSnow
Snow(MSnow).X = MinX + INT(RND * (MaxX)) + 1
Snow(MSnow).Y = MinY + INT(RND * (MaxY)) + 1
Snow(MSnow).Col = 15'30 + INT(RND * 1) + 1
NEXT MSnow
COLOR INT(RND * 14) + 1
LOCATE INT(RND * 19) + 4, INT(RND * (34 - LEN(Text$)))
PRINT Text$
COLOR INT(RND * 14) + 1
LOCATE INT(RND * 19) + 4, INT(RND * (34 - LEN(Text$)))
PRINT Text$
';;;;;;;;;;;;;;;;;;
';; Main Program ;;
';;;;;;;;;;;;;;;;;;
DO
FOR CheckLocateSnow = 1 TO MaxSnow
OldX = Snow(CheckLocateSnow).X
OldY = Snow(CheckLocateSnow).Y
IF Snow(CheckLocateSnow).Y + 1 > MaxY THEN
Snow(CheckLocateSnow).Y = MinY
END IF
IF POINT(Snow(CheckLocateSnow).X, Snow(CheckLocateSnow).Y + 1) = 0 THEN
Snow(CheckLocateSnow).Y = Snow(CheckLocateSnow).Y + 1
GOTO NextSnow
END IF
IF POINT(Snow(CheckLocateSnow).X + 1, Snow(CheckLocateSnow).Y) = 0 THEN
IF POINT(Snow(CheckLocateSnow).X + 1, Snow(CheckLocateSnow).Y + 1) = 0 THEN
Snow(CheckLocateSnow).Y = Snow(CheckLocateSnow).Y + 1
Snow(CheckLocateSnow).X = Snow(CheckLocateSnow).X + 1
GOTO NextSnow
END IF
END IF
IF POINT(Snow(CheckLocateSnow).X - 1, Snow(CheckLocateSnow).Y) = 0 THEN
IF POINT(Snow(CheckLocateSnow).X - 1, Snow(CheckLocateSnow).Y + 1) = 0 THEN
Snow(CheckLocateSnow).Y = Snow(CheckLocateSnow).Y + 1
Snow(CheckLocateSnow).X = Snow(CheckLocateSnow).X - 1
GOTO NextSnow
END IF
END IF
NextSnow:
';;;;;;;;;;;;;;;;;
'; Erase Old Snow
';;;;;;;;;;;;;;;;;
IF ((OldX = Snow(CheckLocateSnow).X) AND (OldY = Snow(CheckLocateSnow).Y)) OR Snow(CheckLocateSnow).Y + 1 > MaxY THEN
Snow(CheckLocateSnow).Y = MinY
ELSE
PSET (OldX, OldY), 0
END IF
';;;;;;;;;;;;;;;;;;;
';; Draw New Snow ;;
';;;;;;;;;;;;;;;;;;;
PSET (Snow(CheckLocateSnow).X, Snow(CheckLocateSnow).Y), Snow(CheckLocateSnow).Col
';;;;;;;;;;;;;;;;;;;;
'Key Exit !!!!!!!!!!!
';;;;;;;;;;;;;;;;;;;;
IF INKEY$ <> "" THEN END
NEXT CheckLocateSnow
LOOP