defrag
中级用户
痴迷DOS者
积分 456
发帖 570
注册 2004-10-9
状态 离线
|
『第
2 楼』:
再商船各BASIC的:SCREEN 9: WIDTH 40, 25: RANDOMIZE TIMER: TIMER ON
CLEAR , , 10000
DIM a1(4, 4, 4), a(4, 4, 4), o(100, 100): a$ = CHR$(177): x = 3: y = 6: s = 1: s2 = 0: hsc = 10000
FOR l2 = 2 TO 11
o(23, l2) = 1
NEXT
GOSUB r1: CLS : GOSUB r: GOSUB r1
a: k$ = INKEY$
LINE (3, 10)-(93, 180), INT(RND * 15) + 1, B: LINE (4, 11)-(92, 179), INT(RND * 15) + 1, B: LINE (5, 12)-(91, 178), 15, B
IF k$ = CHR$(32) THEN GOSUB c: GOSUB pd2: GOSUB pd: GOSUB h
IF RIGHT$(k$, 1) = CHR$(75) THEN PLAY "t255o4e64": GOSUB c: y = y - 1: fx = 1: GOSUB pd: GOSUB h
IF RIGHT$(k$, 1) = CHR$(77) THEN PLAY "t255o4e64": GOSUB c: y = y + 1: fx = 2: GOSUB pd: GOSUB h
IF RIGHT$(k$, 1) = CHR$(80) THEN PLAY "t255o4e64": GOSUB c: x = x + 1: fx = 3: GOSUB pd: GOSUB h
IF t2 = 0 THEN t = TIMER: t2 = 1
IF TIMER - t >= s THEN GOSUB c: x = x + 1: fx = 3: GOSUB pd: t2 = 0
IF k$ = CHR$(27) THEN STOP
GOSUB h: GOSUB o
GOTO a
pd2: r3 = r3 + 1
IF r3 = 5 THEN r3 = 1
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
IF a(r1, r2, r3) = 1 AND o(x + r1 - 1, y + r2 - 1) <> 0 AND r3 <> 1 THEN r3 = r3 - 1: GOTO pd22
NEXT: NEXT
pd22: PLAY "t100o4g30"
RETURN
r1: GOSUB sj
LOCATE 12, 25: PRINT " ": LOCATE 13, 25: PRINT " ": LOCATE 14, 25: PRINT " ": LOCATE 15, 25: PRINT " "
FOR r31 = 1 TO 4
FOR r11 = 1 TO 4
FOR r21 = 1 TO 4
READ a1(r11, r21, r31)
NEXT: NEXT: NEXT
c1 = INT(RND * 9) + 1
r31 = INT(RND * 4) + 1
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
IF a1(r1, r2, r31) = 1 THEN COLOR c1: LOCATE 11 + r1, 24 + r2: PRINT a$
NEXT: NEXT
COLOR 1: LOCATE 13, 20: PRINT "NEXT:"
RETURN
r:
FOR r3 = 1 TO 4
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
a(r1, r2, r3) = a1(r1, r2, r3)
NEXT: NEXT: NEXT
c = c1
r3 = r31
RETURN
h:
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
IF a(r1, r2, r3) = 1 AND y + r2 - 1 > 11 THEN y = 11 - r2 + 1
IF a(r1, r2, r3) = 1 AND y + r2 - 1 < 2 THEN y = 2 - r2 + 1
NEXT: NEXT
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
IF a(r1, r2, r3) = 1 THEN COLOR c: LOCATE x + r1 - 1, y + r2 - 1: PRINT a$
NEXT: NEXT
RETURN
c:
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
IF a(r1, r2, r3) = 1 THEN LOCATE x + r1 - 1, y + r2 - 1: PRINT " "
NEXT: NEXT
RETURN
pd:
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
IF a(r1, r2, r3) = 1 AND o(x + r1 - 1, y + r2 - 1) <> 0 AND fx = 1 THEN y = y + 1
IF a(r1, r2, r3) = 1 AND o(x + r1 - 1, y + r2 - 1) <> 0 AND fx = 2 THEN y = y - 1
IF a(r1, r2, r3) = 1 AND o(x + r1 - 1, y + r2 - 1) <> 0 AND fx = 3 THEN x = x - 1: GOTO f
NEXT: NEXT
RETURN
f:
FOR r1 = 1 TO 4
FOR r2 = 1 TO 4
IF a(r1, r2, r3) = 1 THEN COLOR c: LOCATE x + r1 - 1, y + r2 - 1: PRINT a$: o(x + r1 - 1, y + r2 - 1) = c
IF a(r1, r2, r3) = 1 AND o(3, y) <> 0 THEN COLOR 15: LOCATE 3, 1: PRINT "-GAME OVER-": PLAY "O3t100g34f34G10f34e34f10e34d34e10d34c34d10c34o2b34o3c1": GOSUB p: SYSTEM
NEXT: NEXT
PLAY "t100o4b30c30": GOSUB k
l1 = 22: l = 0
f2: FOR l2 = 2 TO 11
IF o(l1, l2) <> 0 THEN l = l + 1
NEXT
IF l = 10 THEN GOSUB x: l = 0: li = li + 1: sc = sc + 100 * n
l1 = l1 - 1: l = 0
IF l1 = 2 THEN GOSUB r: GOSUB r1: x = 3: y = 6: n = 0: sc = sc + INT(RND * 30) + 1: GOTO a
GOTO f2
x: FOR l3 = 2 TO 11
COLOR 14: LOCATE l1, l3: PRINT CHR$(15): PLAY "t255o5f64b64": o(l1, l3) = 0
NEXT
x2: FOR l3 = 2 TO 11
IF o(l1, l3) = 0 THEN o(l1, l3) = o(l1 - 1, l3): COLOR o(l1 - 1, l3): LOCATE l1, l3: PRINT a$: o(l1 - 1, l3) = 0
NEXT
l1 = l1 - 1
IF l1 = 2 THEN l1 = 23: PLAY "t100o4g60d60": GOSUB l4 = 0: n = n + 1: RETURN
GOTO x2
IF li >= 30 THEN s = .9: s2 = 1
IF li >= 60 THEN s = .8: s2 = 2
IF li >= 90 THEN s = .7: s2 = 3
IF li >= 120 THEN s = .6: s2 = 4
IF li >= 150 THEN s = .5: s2 = 5
IF li >= 180 THEN s = .4: s2 = 6
IF li >= 210 THEN s = .3: s2 = 7
IF li >= 240 THEN s = .2: s2 = 8
IF li >= 270 THEN s = .1: s2 = 9
IF sc > hsc THEN hsc = sc
COLOR 15: LOCATE 5, 20: PRINT "SCORE:"; sc: LOCATE 7, 20: PRINT "LINE:"; li: LOCATE 9, 20: PRINT "SPEED:"; s2: COLOR 14: LOCATE 17, 20: PRINT "HISCORE:"; hsc
RETURN
sj: sj = INT(RND * 7) + 1
IF sj = 1 THEN RESTORE 1
IF sj = 2 THEN RESTORE 2
IF sj = 3 THEN RESTORE 3
IF sj = 4 THEN RESTORE 4
IF sj = 4 THEN RESTORE 4
IF sj = 5 THEN RESTORE 5
IF sj = 6 THEN RESTORE 6
IF sj = 7 THEN RESTORE 7
RETURN
1 DATA 1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0, 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, 1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0, 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0
2 DATA 1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0, 0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0, 1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0, 0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0
3 DATA 1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0, 0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0, 1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0, 1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0
4 DATA 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0, 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0, 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0, 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0
5 DATA 1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0, 1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0, 0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0, 1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0
6 DATA 0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0, 1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0, 0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0, 1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0
7 DATA 0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0, 0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0, 1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0, 1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0
8 DATA
p: p$ = INKEY$
IF p$ = CHR$(27) THEN STOP
IF p$ <> "" THEN RETURN
GOTO pk:
FOR k = 1 TO 10000
k$ = INKEY$
NEXT
RETURN
|
DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青![upload=bmp]uploadImages/20035317345478982.png[/upload] |
|