精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓...算法和基础...〓〓>>一个Dos下字符界面的屏保(QB)

主题:一个Dos下字符界面的屏保(QB)
发信人: hunter__fox(雁回西楼)
整理人: winsy(2003-03-05 15:07:19), 站内信件
CONST intMinLen = 40
CONST intMaxLen = 40
DIM aDisplay(1 TO 40)  AS STRING
DIM aPoint(1 TO 40, 1 TO 2) AS INTEGER
DIM intNowlen AS INTEGER
DIM intStep AS INTEGER, intNow AS INTEGER
DIM n AS INTEGER

intStep = INT(RND * 20) + 1
intNowlen = intMinLen
intNow = 0
intStep = 1'INT(RND * 8) + 1
FOR n = 1 TO 40
aPoint(n, 1) = n + 20: aPoint(n, 2) = 3
NEXT
CLS
COLOR 4

DO WHILE INKEY$ = ""
  FOR n = 1 TO intNowlen
    IF n <= intNowlen / 4 THEN
aDisplay(n) = "圹"'Chr(219)+Chr(219)
ELSE
IF n <= intNowlen / 2 THEN
aDisplay(n) = "膊"'Chr(179)+Chr(179)
ELSE
IF n <= intNowlen / 4 * 3 THEN
aDisplay(n) = "北"'Chr(178)+Chr(178)
ELSE
aDisplay(n) = "鞍"'Chr(177)+Chr(177)
END IF
END IF
END IF
NEXT
FOR n = intNowlen TO 1 STEP -1
FOR m = 1 TO 100: NEXT
'PRINT n, aPoint(n, 2), aPoint(n, 1)
LOCATE aPoint(n, 2), aPoint(n, 1)
'PRINT adisplay(n)
IF n < intNowlen THEN PRINT aDisplay(n); ELSE PRINT " ";
IF n > 1 THEN
      aPoint(n, 1) = aPoint(n - 1, 1)
      aPoint(n, 2) = aPoint(n - 1, 2)
    END IF
  NEXT
  SELECT CASE intStep
  CASE 1
    IF NOT (aPoint(1, 1) = 1) THEN aPoint(1, 1) = aPoint(1, 1) - 1
    IF NOT (aPoint(1, 2) = 1) THEN aPoint(1, 2) = aPoint(1, 2) - 1
  CASE 2
    IF NOT (aPoint(1, 1) = 1) THEN aPoint(1, 1) = aPoint(1, 1) - 1
  CASE 3
    IF NOT (aPoint(1, 1) = 1) THEN aPoint(1, 1) = aPoint(1, 1) - 1
    IF NOT (aPoint(1, 2) = 24) THEN aPoint(1, 2) = aPoint(1, 2) + 1
  CASE 4
    IF NOT (aPoint(1, 2) = 1) THEN aPoint(1, 2) = aPoint(1, 2) - 1
  CASE 5
    IF NOT (aPoint(1, 2) = 24) THEN aPoint(1, 2) = aPoint(1, 2) + 1
  CASE 6
    IF NOT (aPoint(1, 1) > 78) THEN aPoint(1, 1) = aPoint(1, 1) + 1
    IF NOT (aPoint(1, 2) = 1) THEN aPoint(1, 2) = aPoint(1, 2) - 1
  CASE 7
    IF NOT (aPoint(1, 1) > 78) THEN aPoint(1, 1) = aPoint(1, 1) + 1
  CASE 8
    IF NOT (aPoint(1, 1) > 78) THEN aPoint(1, 1) = aPoint(1, 1) + 1
    IF NOT (aPoint(1, 2) = 24) THEN aPoint(1, 2) = aPoint(1, 2) + 1
  END SELECT
  IF intNow = 20 THEN
    DO: m = INT(RND * 8) + 1: LOOP WHILE m = intStep: intStep = m
    intNow = 0
  ELSE
    intNow = intNow + 1
  END IF
LOOP
COLOR 7
CLS


----
作者:hunter__fox雁回西楼
※ 来源: 网易虚拟社区 广州站.
※ 个人天地 流水情怀[ccbyy] 灌水精英 NO:003

※ 编程开发 VFP[VFP]           

[关闭][返回]