主题:能把代码里的树改成两个小人吗 急用 谢谢
谢谢
DECLARE SUB tree (x%, y%, size%)
DECLARE SUB updatesnow ()
DECLARE SUB updatescroll ()
DECLARE SUB wipe (num%)
DECLARE SUB initmusic ()
DECLARE FUNCTION rand% (upperbound%, lowerbound%)
DECLARE FUNCTION isnum% (a$)
DEFINT A-Z
SCREEN 13
CONST maxflakes = 1000
DIM SHARED x(maxflakes) AS INTEGER
DIM SHARED y(maxflakes) AS INTEGER
DIM SHARED c(maxflakes) AS INTEGER
DIM SHARED t(maxflakes) AS INTEGER
DIM SHARED inc(maxflakes) AS INTEGER
DIM SHARED music$(6)
FOR i = 1 TO maxflakes
x(i) = RND * 319
y(i) = RND * -600
c(i) = rand(27, 31)
inc(i) = rand(0, 1)
t(i) = inc(i)
NEXT i
LOCATE 10, 10
COLOR 90
PRINT " happy holidays!"
LOCATE 12, 10
COLOR 103
PRINT " new year 2001"
LOCATE 14, 6
COLOR 99
PRINT "best wishes for everyone!"
SLEEP 1
CLS
LINE (1, 10)-(319, 10), 100, , &HAAAA
COLOR 15
tree 40, 140, 3
tree 279, 140, 3
initmusic
ON PLAY(1) GOSUB nextnote
PLAY ON
PLAY "mbp2"
DO
updatesnow
updatescroll
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
LOOP WHILE INKEY$ = ""
PLAY OFF
wipe rand(1, 3)
END
nextnote:
i = i MOD 7
IF i = 6 THEN
PLAY "mb" + music$(i) + "p3"
ELSE
PLAY "mb" + music$(i)
END IF
i = i + 1
RETURN
SUB initmusic
music$(i) = "mbmnt200o3l4cfl2fgl4dddgl8gagf"
music$(1) = "l4eccal8ab-agl4fdl8ccl4dgel2f"
music$(2) = "l4cfffl2el4efedl2cl4cagf"
music$(3) = "o4l4co3l4cl8ccl4dgel2f"
music$(4) = "l4cfl8fgfel4dddgl8gagfl4"
music$(5) = "eccal8ab-ag"
music$(6) = "l4fdl8ccl4dgel2f"
END SUB
FUNCTION isnum (a$)
IF ASC(a$) >= 48 AND ASC(a$) <= 57 THEN isnum = -1
END FUNCTION
FUNCTION rand (lowerbound, upperbound)
rand = INT((upperbound - lowerbound + 1) * RND + lowerbound)
END FUNCTION
SUB tree (x, y, size)
LINE (x - 1 * size, y + 15 * size)-(x + 1 * size, y + 21 * size), 6, BF
LINE (x, y)-(x + 10 * size, y + 15 * size), 2
LINE (x, y)-(x - 10 * size, y + 15 * size), 2
LINE (x - 10 * size, y + 15 * size)-(x + 10 * size, y + 15 * size), 2
PAINT (x, y + 10 * size), 2
FOR radius = 1 TO 2 * size
CIRCLE (x, y), radius, 14
NEXT radius
RANDOMIZE TIMER
FOR i = 1 TO 11
DO
xx = rand(x - 10 * size, x + 10 * size)
yy = rand(y + 3 * size, y + 15 * size)
flag = -1
FOR a = xx - 3 TO xx + 3
FOR b = yy - 4 TO yy + 4
IF POINT(a, b) <> 2 THEN flag = 0
NEXT b
NEXT a
IF flag THEN
LINE (xx, yy - 4)-(xx, yy), 8, BF
CIRCLE (xx, yy), 2, 4
PAINT (xx, yy), 4
EXIT DO
END IF
LOOP
NEXT i
END SUB
SUB updatescroll
STATIC i, n, a() AS INTEGER, init, s$
IF init = 0 THEN
er = 4 + INT(((319 - 1) + 1) * (8) + 7) / 8 * 1 * ((9 - 0) + 1)
DIM a(er) AS INTEGER
init = 1
i = 1
s$ = "\100best wishes for you! "
s$ = s$ + "\33t+34h\35i\36s\42\43p\44r\45o\75g\76r\77a\78m\79w\80r\81i\82t\83t\84e\85n\93by\96shangjun."
s$ = s$ + "\55h\56e\57l\58l\59o\60!\103welcome to see mr."
s$ = s$ + "shang in class 8 grade 3 in shanxi chenggu teachers' school!\89h\90a\91p\92p\93y\94n\95e\96w\97y\98e\99a\100r\101!"
s$ = s$ + " "
END IF
IF i = LEN(s$) + 1 THEN i = 1
IF n = 8 THEN
LOCATE 1, 40
q$ = MID$(s$, i, 1)
IF q$ = "\" THEN
b$ = MID$(s$, i + 1, 3)
FOR z = 1 TO LEN(b$)
IF NOT (isnum(MID$(b$, z, 1))) THEN EXIT FOR
NEXT z
COLOR VAL(MID$(b$, 1, z - 1))
i = i + LEN(MID$(b$, 1, z - 1)) + 1
END IF
PRINT MID$(s$, i, 1)
n = 0
i = i + 1
ELSE
GET (1, 0)-(319, 9), a(0)
PUT (0, 0), a(0), PSET
n = n + 1
END IF
END SUB
SUB updatesnow
FOR i = 0 TO maxflakes
IF t(i) = 0 THEN
IF y(i) > 10 THEN
lastx = x(i)
lasty = y(i)
IF POINT(lastx, lasty + 1) = 0 THEN
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
ELSE
IF POINT(lastx - 1, lasty) = 0 AND POINT(lastx - 1, lasty + 1) = 0 THEN
IF POINT(lastx + 1, lasty) = 0 AND POINT(lastx + 1, lasty + 1) = 0 THEN
IF RND > .5 THEN
x(i) = x(i) - 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
ELSE
x(i) = x(i) + 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
END IF
ELSE
x(i) = x(i) - 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
END IF
ELSEIF POINT(lastx + 1, lasty) = 0 AND POINT(lastx + 1, lasty + 1) = 0 THEN
x(i) = x(i) + 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
ELSE
x(i) = RND * 319
y(i) = RND * -600
c(i) = rand(27, 31)
inc(i) = rand(0, 1)
t(i) = inc(i)
END IF
END IF
ELSE
y(i) = y(i) + 1
END IF
t(i) = inc(i)
ELSE
t(i) = t(i) - 1
END IF
NEXT i
END SUB
SUB wipe (num)
SELECT CASE num
CASE 1
FOR i = 10 TO 1 STEP -1
FOR x = 0 TO 319
FOR y = 0 TO 199
IF x MOD i = 0 AND y MOD i = 0 THEN
PSET (x, y), 0
END IF
NEXT y
NEXT x
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
IF INKEY$ <> "" THEN CLS : EXIT FOR
NEXT i
CASE 2
FOR i = 10 TO 1 STEP -1
FOR x = 0 TO 319 STEP i
LINE (x, 0)-(x, 199), 0
NEXT x
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
IF INKEY$ <> "" THEN CLS : EXIT FOR
NEXT i
CASE 3
FOR i = 0 TO 100
LINE (i, 0)-(i, 199), 0
LINE (319 - i, 0)-(319 - i, 199), 0
LINE (0, i)-(319, i), 0
LINE (0, 199 - i)-(319, 199 - i), 0
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
IF INKEY$ <> "" THEN CLS : EXIT FOR
NEXT i
END SELECT
END SUB
DECLARE SUB tree (x%, y%, size%)
DECLARE SUB updatesnow ()
DECLARE SUB updatescroll ()
DECLARE SUB wipe (num%)
DECLARE SUB initmusic ()
DECLARE FUNCTION rand% (upperbound%, lowerbound%)
DECLARE FUNCTION isnum% (a$)
DEFINT A-Z
SCREEN 13
CONST maxflakes = 1000
DIM SHARED x(maxflakes) AS INTEGER
DIM SHARED y(maxflakes) AS INTEGER
DIM SHARED c(maxflakes) AS INTEGER
DIM SHARED t(maxflakes) AS INTEGER
DIM SHARED inc(maxflakes) AS INTEGER
DIM SHARED music$(6)
FOR i = 1 TO maxflakes
x(i) = RND * 319
y(i) = RND * -600
c(i) = rand(27, 31)
inc(i) = rand(0, 1)
t(i) = inc(i)
NEXT i
LOCATE 10, 10
COLOR 90
PRINT " happy holidays!"
LOCATE 12, 10
COLOR 103
PRINT " new year 2001"
LOCATE 14, 6
COLOR 99
PRINT "best wishes for everyone!"
SLEEP 1
CLS
LINE (1, 10)-(319, 10), 100, , &HAAAA
COLOR 15
tree 40, 140, 3
tree 279, 140, 3
initmusic
ON PLAY(1) GOSUB nextnote
PLAY ON
PLAY "mbp2"
DO
updatesnow
updatescroll
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
LOOP WHILE INKEY$ = ""
PLAY OFF
wipe rand(1, 3)
END
nextnote:
i = i MOD 7
IF i = 6 THEN
PLAY "mb" + music$(i) + "p3"
ELSE
PLAY "mb" + music$(i)
END IF
i = i + 1
RETURN
SUB initmusic
music$(i) = "mbmnt200o3l4cfl2fgl4dddgl8gagf"
music$(1) = "l4eccal8ab-agl4fdl8ccl4dgel2f"
music$(2) = "l4cfffl2el4efedl2cl4cagf"
music$(3) = "o4l4co3l4cl8ccl4dgel2f"
music$(4) = "l4cfl8fgfel4dddgl8gagfl4"
music$(5) = "eccal8ab-ag"
music$(6) = "l4fdl8ccl4dgel2f"
END SUB
FUNCTION isnum (a$)
IF ASC(a$) >= 48 AND ASC(a$) <= 57 THEN isnum = -1
END FUNCTION
FUNCTION rand (lowerbound, upperbound)
rand = INT((upperbound - lowerbound + 1) * RND + lowerbound)
END FUNCTION
SUB tree (x, y, size)
LINE (x - 1 * size, y + 15 * size)-(x + 1 * size, y + 21 * size), 6, BF
LINE (x, y)-(x + 10 * size, y + 15 * size), 2
LINE (x, y)-(x - 10 * size, y + 15 * size), 2
LINE (x - 10 * size, y + 15 * size)-(x + 10 * size, y + 15 * size), 2
PAINT (x, y + 10 * size), 2
FOR radius = 1 TO 2 * size
CIRCLE (x, y), radius, 14
NEXT radius
RANDOMIZE TIMER
FOR i = 1 TO 11
DO
xx = rand(x - 10 * size, x + 10 * size)
yy = rand(y + 3 * size, y + 15 * size)
flag = -1
FOR a = xx - 3 TO xx + 3
FOR b = yy - 4 TO yy + 4
IF POINT(a, b) <> 2 THEN flag = 0
NEXT b
NEXT a
IF flag THEN
LINE (xx, yy - 4)-(xx, yy), 8, BF
CIRCLE (xx, yy), 2, 4
PAINT (xx, yy), 4
EXIT DO
END IF
LOOP
NEXT i
END SUB
SUB updatescroll
STATIC i, n, a() AS INTEGER, init, s$
IF init = 0 THEN
er = 4 + INT(((319 - 1) + 1) * (8) + 7) / 8 * 1 * ((9 - 0) + 1)
DIM a(er) AS INTEGER
init = 1
i = 1
s$ = "\100best wishes for you! "
s$ = s$ + "\33t+34h\35i\36s\42\43p\44r\45o\75g\76r\77a\78m\79w\80r\81i\82t\83t\84e\85n\93by\96shangjun."
s$ = s$ + "\55h\56e\57l\58l\59o\60!\103welcome to see mr."
s$ = s$ + "shang in class 8 grade 3 in shanxi chenggu teachers' school!\89h\90a\91p\92p\93y\94n\95e\96w\97y\98e\99a\100r\101!"
s$ = s$ + " "
END IF
IF i = LEN(s$) + 1 THEN i = 1
IF n = 8 THEN
LOCATE 1, 40
q$ = MID$(s$, i, 1)
IF q$ = "\" THEN
b$ = MID$(s$, i + 1, 3)
FOR z = 1 TO LEN(b$)
IF NOT (isnum(MID$(b$, z, 1))) THEN EXIT FOR
NEXT z
COLOR VAL(MID$(b$, 1, z - 1))
i = i + LEN(MID$(b$, 1, z - 1)) + 1
END IF
PRINT MID$(s$, i, 1)
n = 0
i = i + 1
ELSE
GET (1, 0)-(319, 9), a(0)
PUT (0, 0), a(0), PSET
n = n + 1
END IF
END SUB
SUB updatesnow
FOR i = 0 TO maxflakes
IF t(i) = 0 THEN
IF y(i) > 10 THEN
lastx = x(i)
lasty = y(i)
IF POINT(lastx, lasty + 1) = 0 THEN
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
ELSE
IF POINT(lastx - 1, lasty) = 0 AND POINT(lastx - 1, lasty + 1) = 0 THEN
IF POINT(lastx + 1, lasty) = 0 AND POINT(lastx + 1, lasty + 1) = 0 THEN
IF RND > .5 THEN
x(i) = x(i) - 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
ELSE
x(i) = x(i) + 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
END IF
ELSE
x(i) = x(i) - 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
END IF
ELSEIF POINT(lastx + 1, lasty) = 0 AND POINT(lastx + 1, lasty + 1) = 0 THEN
x(i) = x(i) + 1
y(i) = y(i) + 1
PSET (lastx, lasty), 0
PSET (x(i), y(i)), c(i)
ELSE
x(i) = RND * 319
y(i) = RND * -600
c(i) = rand(27, 31)
inc(i) = rand(0, 1)
t(i) = inc(i)
END IF
END IF
ELSE
y(i) = y(i) + 1
END IF
t(i) = inc(i)
ELSE
t(i) = t(i) - 1
END IF
NEXT i
END SUB
SUB wipe (num)
SELECT CASE num
CASE 1
FOR i = 10 TO 1 STEP -1
FOR x = 0 TO 319
FOR y = 0 TO 199
IF x MOD i = 0 AND y MOD i = 0 THEN
PSET (x, y), 0
END IF
NEXT y
NEXT x
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
IF INKEY$ <> "" THEN CLS : EXIT FOR
NEXT i
CASE 2
FOR i = 10 TO 1 STEP -1
FOR x = 0 TO 319 STEP i
LINE (x, 0)-(x, 199), 0
NEXT x
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
IF INKEY$ <> "" THEN CLS : EXIT FOR
NEXT i
CASE 3
FOR i = 0 TO 100
LINE (i, 0)-(i, 199), 0
LINE (319 - i, 0)-(319 - i, 199), 0
LINE (0, i)-(319, i), 0
LINE (0, 199 - i)-(319, 199 - i), 0
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
IF INKEY$ <> "" THEN CLS : EXIT FOR
NEXT i
END SELECT
END SUB