1 rem 游戏基本介绍
2 print "jumping game!"
3 print "press left/right/down key!"
4 print "QQ :1039022875"
5 sleep 2134
6 rem 初始化基本参数(界面宽高、活动对象等参数)
7 H=SCREENHEIGHT(0):W=SCREENWIDTH(0)
8 IF H<=W THEN A=H
9 IF H>=W THEN A=W
10 CNT%=0:B%=A/4:C%=A/16:CBX%=6:CBY%=6
11 DIM W%(17):DIM H%(16):REM 定义石块数据(横纵坐标)
12 FOR E%=0 TO 15
13 WD%=RND(0):X%=13:R%=ABS(MOD(WD%,X%))
14 W%(E%)=R%:H%(E%)=E%
15 NEXT E%
16 W%(16)=16:rem 设置石块间距
17 FOR L%=0 TO 15
18 IF MOD(L%,2)<>1 THEN W%(L%)=16
19 NEXT L%
20 rem 绘制界面及游戏对象
21 CLS
22 SETCOLOR 255,0,0
23 FILLRECT 0,0,W,H
24 SETCOLOR 255,255,255
25 FILLRECT 0,0,A,A
26 REM 绘制活动对象和石块
27 SETCOLOR 0,0,255
28 FILLRECT CBX%*C%,CBY%*C%,C%,C%
29 SETCOLOR 0,255,0
16 FOR N%=6 TO 15
31 IF W%(N%)<>16 THEN FILLRECT W%(N%)*C%,H%(N%)*C%,B%,C%
32 NEXT N%
33 GOTO 45
44 rem 捕获输入参数
45 KT%=0:DT%=0
46 REM:保存输入
47 IF LEFT(0) AND CBX%>0 THEN DT%=-1
48 IF RIGHT(0) AND CBX%<15 THEN DT%=1
49 IF DOWN(0) THEN GOTO 58
50 KT%=KT%+1
51 NCBX%=CBX%:NCBY%=CBY%
52 IF DT%<0 AND CBX%>0 AND (CBX%-W%(CBY%)<>4) THEN NCBX%= NCBX%+DT%:REM 对象向左移动
53 IF DT%>0 AND CBX%<15 AND (CBX%+1<W%(CBY%)) THEN NCBX%= NCBX%+DT%:REM 对象向右移动
54 GOSUB 102:REM 重绘对象
55 CBX%=NCBX%:CBY%=NCBY%
56 GAP%=120-CNT%:SLEEP GAP%:IF KT%<=4 THEN GOTO 46
57 rem 对象向下移动
58 SUPERPOSE%=0:REM 计算对象和石块接触状态
59 BOUND%=CBX%-W%(CBY%+1)
62 IF BOUND%>=0 AND BOUND%<=3 THEN SUPERPOSE%=1
63 IF SUPERPOSE%<>0 THEN GOTO 72:REM 对象与石块上下接触,无法下落
64 IF SUPERPOSE%<>1 AND CBY%>=15 THEN GOTO 101:REM 对象触底,结束
65 NCBX%=CBX%:NCBY%=CBY%+1:REM 对象下移并绘制
67 GOSUB 102
68 CBX%=NCBX%:CBY%=NCBY%
69 GOTO 71
71 REM 石块上升,更新数据
72 IF SUPERPOSE%<>0 AND CBY%<1 THEN GOTO 101:REM 对象触顶,结束
74 CNT%=CNT%+1:IF CNT%>=100 THEN GOTO 100:REM 完成任务,结束
75 FOR N%=0 TO 14
76 W%(N%)=W%(N%+1)
77 NEXT N%
78 IF W%(14)<>16 THEN W%(15)=16:REM 完成石块上升,并添加新石块数据
79 IF W%(14)>=16 THEN WD%=RND(0):X%=13:R%=ABS(MOD(WD%,X%)):W%(15)=R%
80
81 IF SUPERPOSE%<>1 THEN NCBX%=CBX%:NCBY%=CBY%:GOTO 85
82 IF SUPERPOSE%<>0 THEN NCBX%=CBX%:NCBY%=CBY%-1:REM 石块上升,判断对象更新
83
84 REM 重绘界面
85 GOSUB 105:REM 擦除旧石块和对象
86 GOSUB 102:REM 重绘对象
87 CBX%=NCBX%:CBY%=NCBY%
88 GOSUB 106:REM 重绘石块
89 GOTO 45:REM 再进入输入状态,循环
99 REM 渲染,屏幕输出
100 PRINT "congratulation!":END
101 PRINT "game over":END
102 SETCOLOR 255,255,255:FILLRECT CBX%*C%,CBY%*C%,C%,C%
103 SETCOLOR 0,0,255:FILLRECT NCBX%*C%,NCBY%*C%,C%,C%
104 RETURN
105 SETCOLOR 255,255,255:FILLRECT 0,0,A,A:RETURN
106 SETCOLOR 0,255,0
107 FOR N%=0 TO 15
108 IF W%(N%)<16 THEN FILLRECT W%(N%)*C%,H%(N%)*C%,B%,C%
109 NEXT N%
110 RETURN
2 print "jumping game!"
3 print "press left/right/down key!"
4 print "QQ :1039022875"
5 sleep 2134
6 rem 初始化基本参数(界面宽高、活动对象等参数)
7 H=SCREENHEIGHT(0):W=SCREENWIDTH(0)
8 IF H<=W THEN A=H
9 IF H>=W THEN A=W
10 CNT%=0:B%=A/4:C%=A/16:CBX%=6:CBY%=6
11 DIM W%(17):DIM H%(16):REM 定义石块数据(横纵坐标)
12 FOR E%=0 TO 15
13 WD%=RND(0):X%=13:R%=ABS(MOD(WD%,X%))
14 W%(E%)=R%:H%(E%)=E%
15 NEXT E%
16 W%(16)=16:rem 设置石块间距
17 FOR L%=0 TO 15
18 IF MOD(L%,2)<>1 THEN W%(L%)=16
19 NEXT L%
20 rem 绘制界面及游戏对象
21 CLS
22 SETCOLOR 255,0,0
23 FILLRECT 0,0,W,H
24 SETCOLOR 255,255,255
25 FILLRECT 0,0,A,A
26 REM 绘制活动对象和石块
27 SETCOLOR 0,0,255
28 FILLRECT CBX%*C%,CBY%*C%,C%,C%
29 SETCOLOR 0,255,0
16 FOR N%=6 TO 15
31 IF W%(N%)<>16 THEN FILLRECT W%(N%)*C%,H%(N%)*C%,B%,C%
32 NEXT N%
33 GOTO 45
44 rem 捕获输入参数
45 KT%=0:DT%=0
46 REM:保存输入
47 IF LEFT(0) AND CBX%>0 THEN DT%=-1
48 IF RIGHT(0) AND CBX%<15 THEN DT%=1
49 IF DOWN(0) THEN GOTO 58
50 KT%=KT%+1
51 NCBX%=CBX%:NCBY%=CBY%
52 IF DT%<0 AND CBX%>0 AND (CBX%-W%(CBY%)<>4) THEN NCBX%= NCBX%+DT%:REM 对象向左移动
53 IF DT%>0 AND CBX%<15 AND (CBX%+1<W%(CBY%)) THEN NCBX%= NCBX%+DT%:REM 对象向右移动
54 GOSUB 102:REM 重绘对象
55 CBX%=NCBX%:CBY%=NCBY%
56 GAP%=120-CNT%:SLEEP GAP%:IF KT%<=4 THEN GOTO 46
57 rem 对象向下移动
58 SUPERPOSE%=0:REM 计算对象和石块接触状态
59 BOUND%=CBX%-W%(CBY%+1)
62 IF BOUND%>=0 AND BOUND%<=3 THEN SUPERPOSE%=1
63 IF SUPERPOSE%<>0 THEN GOTO 72:REM 对象与石块上下接触,无法下落
64 IF SUPERPOSE%<>1 AND CBY%>=15 THEN GOTO 101:REM 对象触底,结束
65 NCBX%=CBX%:NCBY%=CBY%+1:REM 对象下移并绘制
67 GOSUB 102
68 CBX%=NCBX%:CBY%=NCBY%
69 GOTO 71
71 REM 石块上升,更新数据
72 IF SUPERPOSE%<>0 AND CBY%<1 THEN GOTO 101:REM 对象触顶,结束
74 CNT%=CNT%+1:IF CNT%>=100 THEN GOTO 100:REM 完成任务,结束
75 FOR N%=0 TO 14
76 W%(N%)=W%(N%+1)
77 NEXT N%
78 IF W%(14)<>16 THEN W%(15)=16:REM 完成石块上升,并添加新石块数据
79 IF W%(14)>=16 THEN WD%=RND(0):X%=13:R%=ABS(MOD(WD%,X%)):W%(15)=R%
80
81 IF SUPERPOSE%<>1 THEN NCBX%=CBX%:NCBY%=CBY%:GOTO 85
82 IF SUPERPOSE%<>0 THEN NCBX%=CBX%:NCBY%=CBY%-1:REM 石块上升,判断对象更新
83
84 REM 重绘界面
85 GOSUB 105:REM 擦除旧石块和对象
86 GOSUB 102:REM 重绘对象
87 CBX%=NCBX%:CBY%=NCBY%
88 GOSUB 106:REM 重绘石块
89 GOTO 45:REM 再进入输入状态,循环
99 REM 渲染,屏幕输出
100 PRINT "congratulation!":END
101 PRINT "game over":END
102 SETCOLOR 255,255,255:FILLRECT CBX%*C%,CBY%*C%,C%,C%
103 SETCOLOR 0,0,255:FILLRECT NCBX%*C%,NCBY%*C%,C%,C%
104 RETURN
105 SETCOLOR 255,255,255:FILLRECT 0,0,A,A:RETURN
106 SETCOLOR 0,255,0
107 FOR N%=0 TO 15
108 IF W%(N%)<16 THEN FILLRECT W%(N%)*C%,H%(N%)*C%,B%,C%
109 NEXT N%
110 RETURN