-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy path箭头对对碰.txt
109 lines (109 loc) · 4.96 KB
/
箭头对对碰.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
7 DIM ZB(7,7),GSX(49),GSY(49),ZB1(7,7)
10 GRAPH:ND=1
11 LOCATE 3,7:PRINT"The Game":ELLIPSE 80,40,50,11:LOCATE 5,7:PRINT"2006 1.";
12 FOR I=1 TO 6E3:NEXT:CLS
15 LOCATE 2,6:PRINT"箭头对对碰":LOCATE 4,6:PRINT"any press
20 W$=INKEY$:CLS
25 LOCATE 1,6:PRINT"箭头对对碰",SPC(8);"开始",SPC(8);"杂项",SPC(8);"制作
26 LOCATE 5,9:PRINT"退出";:BOX 60,15,100,80,0:Z=24
27 BOX 61,Z-8,99,Z+7,1,2:W$=INKEY$:BOX 61,Z-8,99,Z+7,1,2
28 IF ASC(W$)=20 AND Z>24 THEN Z=Z-16
29 IF ASC(W$)=21 AND Z<72 THEN Z=Z+16
30 IF Z=72 AND ASC(W$)=13 THEN BOX 61,64,99,79,1,2:END
32 IF Z=40 AND ASC(W$)=13 THEN CLS:40
33 IF Z=24 AND ASC(W$)=13 THEN CLS:70
35 GOTO 27
40 LOCATE 3,2:PRINT"1.难度设制 2.帮助":W$=INKEY$:IF W$="b"THEN CLS:42
41 IF W$="n"THEN CLS:52 ELSE 40
42 LOCATE 3,4:PRINT"1.正常 2.困难":W$=INKEY$:IF W$="b"THEN ND=1:CLS:25
43 IF W$="n"THEN ND=2:CLS:25 ELSE 42
52 PRINT"游戏规则:按方向键控制光标方向,按<输入键>可选定目标,目标将根据箭头所指方向,
53 W$=INKEY$:CLS:PRINT"然后将其与邻近的那张牌交换位子,每选定一次将在空格处随机出现
54 W$=INKEY$:CLS:PRINT"两个箭头,如果没有空格,游戏就算失败了,横竖只要有相邻的两个以上
55 W$=INKEY$:CLS:PRINT"同种箭头,即可消除,全部消除即可胜利.":W$=INKEY$:CLS:GOTO 25
70 K1=0:K2=0:K3=0:K4=0:K5=0:K6=0:K7=0:K8=0:K9=0:YG=40:XG=80
75 FOR A=0 TO 6:FOR B=0 TO 6
76 ON ND GOTO 77,85
77 TU=INT(RND(1)*5)+5
78 IF TU=5 THEN IF K5<=7 THEN K5=K5+1 ELSE 77
79 IF TU=6 THEN IF K6<=7 THEN K6=K6+1 ELSE 77
80 IF TU=7 THEN IF K7<=7 THEN K7=K7+1 ELSE 77
81 IF TU=8 THEN IF K8<=7 THEN K8=K8+1 ELSE 77
82 IF TU=9 THEN IF K9<=16 THEN K9=K9+1 ELSE 77
83 GOTO 106
85 TU=INT(RND(1)*9)+1
90 IF TU=1 THEN IF K1<=3 THEN K1=K1+1 ELSE 85
92 IF TU=2 THEN IF K2<=3 THEN K2=K2+1 ELSE 85
94 IF TU=3 THEN IF K3<=3 THEN K3=K3+1 ELSE 85
96 IF TU=4 THEN IF K4<=3 THEN K4=K4+1 ELSE 85
98 IF TU=5 THEN IF K5<=3 THEN K5=K5+1 ELSE 85
100 IF TU=6 THEN IF K6<=3 THEN K6=K6+1 ELSE 85
102 IF TU=7 THEN IF K7<=3 THEN K7=K7+1 ELSE 85
104 IF TU=8 THEN IF K8<=3 THEN K8=K8+1 ELSE 85
105 IF TU=9 THEN IF K9<=16 THEN K9=K9+1 ELSE 85
106 ZB(A,B)=TU
107 NEXT B,A
108 CLS:BOX 40,0,120,80:FOR I=5 TO 75 STEP 10:LINE 45,I,115,I:NEXT
109 FOR I=45 TO 115 STEP 10:LINE I,5,I,75:NEXT
110 FOR X=0 TO 6:FOR Y=0 TO 6:XX=X*10+50:YY=(Y+1)*10
111 ON ZB(X,Y)GOTO 150,145,140,135,130,125,120,115,151
115 LINE XX,YY-3,XX,YY+3:DRAW XX-1,YY-2:DRAW XX+1,YY-2:GOSUB 160
120 LINE XX,YY-3,XX,YY+3:DRAW XX-1,YY+2:DRAW XX+1,YY+2:GOSUB 160
125 LINE XX-3,YY,XX+3,YY:DRAW XX-2,YY-1:DRAW XX-2,YY+1:GOSUB 160
130 LINE XX-3,YY,XX+3,YY:DRAW XX+2,YY-1:DRAW XX+2,YY+1:GOSUB 160
135 LINE XX-2,YY-2,XX+2,YY+2:DRAW XX-2,YY-1:DRAW XX-1,YY-2:GOSUB 160
140 LINE XX-2,YY-2,XX+2,YY+2:DRAW XX+1,YY+2:DRAW XX+2,YY+1:GOSUB 160
145 LINE XX-2,YY+2,XX+2,YY-2:DRAW XX+1,YY-2:DRAW XX+2,YY-1:GOSUB 160
150 LINE XX-2,YY+2,XX+2,YY-2:DRAW XX-1,YY+2:DRAW XX-2,YY+1:GOSUB 160
151 GOSUB 160
160 POP:NEXT Y,X
162 IF N=49 GOTO 400
170 BOX XG-4,YG-4,XG+4,YG+4,1,2:LOCATE 1,1:PRINT"<Q>:","QUIT
180 W$=INKEY$:BOX XG-4,YG-4,XG+4,YG+4,1,2
185 IF ASC(W$)=21 AND YG<70 THEN YG=YG+10
187 IF ASC(W$)=20 AND YG>10 THEN YG=YG-10
189 IF ASC(W$)=22 AND XG<110 THEN XG=XG+10
191 IF ASC(W$)=23 AND XG>50 THEN XG=XG-10
193 IF W$="q"THEN END
194 IF ASC(W$)=13 THEN 200
195 GOTO 170
200 XA=(XG-50)/10:YA=YG/10-1
205 IF(ZB(XA,YA)=8 AND YA=0)OR(ZB(XA,YA)=7 AND YA=6)THEN BEEP:170
206 IF(ZB(XA,YA)=6 AND XA=0)OR(ZB(XA,YA)=5 AND XA=6)THEN BEEP:170
207 IF(ZB(XA,YA)=4 AND(XA=0 OR YA=0))OR(ZB(XA,YA)=3 AND(XA=6 OR YA=6))THEN BEEP:170
208 IF(ZB(XA,YA)=2 AND(XA=6 OR YA=0))OR(ZB(XA,YA)=1 AND(XA=0 OR YA=6))THEN BEEP:170
210 ON ZB(XA,YA)GOTO 226,224,222,220,218,216,214,212,230
212 SWAP ZB(XA,YA),ZB(XA,YA-1):GOTO 230
214 SWAP ZB(XA,YA),ZB(XA,YA+1):GOTO 230
216 SWAP ZB(XA,YA),ZB(XA-1,YA):GOTO 230
218 SWAP ZB(XA,YA),ZB(XA+1,YA):GOTO 230
220 SWAP ZB(XA,YA),ZB(XA-1,YA-1):GOTO 230
222 SWAP ZB(XA,YA),ZB(XA+1,YA+1):GOTO 230
224 SWAP ZB(XA,YA),ZB(XA+1,YA-1):GOTO 230
226 SWAP ZB(XA,YA),ZB(XA-1,YA+1)
230 FOR H=0 TO 6:FOR S=0 TO 6:IF ZB(S,H)=9 THEN L=L+1
232 NEXT S,H:IF L=0 THEN 350
234 FOR H=0 TO 6:FOR S=0 TO 6:IF ZB(S,H)=9 THEN GSX(N)=S:GSY(N)=H:N=N+1
236 NEXT S,H
238 FOR NR=1 TO 2:ZB(GSX(INT(RND(1)*L)),GSY(INT(RND(0)*L)))=INT(RND(1)*(5*ND-1))+5-(ND-1)*5
240 NEXT
243 FOR H=0 TO 6:FOR S=0 TO 4
244 IF(ZB(S,H)-ZB(S+1,H))OR(ZB(S+1,H)-ZB(S+2,H))THEN 248
246 ZB1(S,H)=9:ZB1(S+1,H)=9:ZB1(S+2,H)=9
248 NEXT S,H
250 FOR S=0 TO 6:FOR H=0 TO 4
252 IF(ZB(S,H)-ZB(S,H+1))OR(ZB(S,H+1)-ZB(S,H+2))THEN 256
254 ZB(S,H)=9:ZB(S,H+1)=9:ZB(S,H+2)=9
256 NEXT H,S
258 FOR H=0 TO 6:FOR S=0 TO 4:IF ZB1(S,H)-9 OR ZB1(S+1,H)-9 OR ZB1(S+2,H)-9 THEN 261
260 ZB(S,H)=9:ZB(S+1,H)=9:ZB(S+2,H)=9
261 NEXT S,H
262 FOR H=0 TO 6:FOR S=0 TO 4:ZB1(S,H)=0:ZB1(S+1,H)=0:ZB1(S+2,H)=0:NEXT S,H
300 L=0:N=0:GOTO 108
350 CLS:FOR E=1 TO 3:LOCATE E,3+E:PRINT"GAME":LOCATE 6-E,14-E:PRINT"OVER";
351 LOCATE 6-E,3+E:PRINT"GAME";:LOCATE E,14-E:PRINT"OVER";
352 FOR I=1 TO 1500:NEXT:CLS:NEXT:LOCATE 3,6:PRINT"GAME OVER
353 FOR I=40 TO 111:LINE I,30,I,50:LOCATE 3,6:PRINT"GAME OVER":NEXT
354 W$=INKEY$:CLS:LOCATE 3,2:PRINT"是否重新再来?(Y/N)":W$=INKEY$
355 IF W$="y"THEN CLS:70 ELSE CLS:10
400 CLS:LOCATE 3,3:PRINT"恭喜你完成了游戏":GOTO 354