-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathA15_Breakthrough.bc2
More file actions
168 lines (167 loc) · 5.26 KB
/
Copy pathA15_Breakthrough.bc2
File metadata and controls
168 lines (167 loc) · 5.26 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
1000 A=1500:GOTO20:REM BREAKTHROUGH
1010 DIMSC$(25,40),AC(255),DU$(10),AX(10),AY(10),RX(10)
1020 DIMRY(10),XX(10)
1030 FORI=1 TO10:READDU$(I)
1040 AC(ASC(DU$(I)))=I:IFI<>10 THEN1060
1050 AC(ASC(DU$(I)))=0
1060 NEXTI
1070 GOTO1680
1080 REM
1090 GOSUB100:AX(1)=-1:AY(1)=-1:AX(2)=0:AY(2)=-1
1100 AX(3)=1:AY(3)=-1
1110 RX(1)=-1:RY(1)=1:RX(2)=0:RY(2)=1:RX(3)=1:RY(3)=1
1120 XX(0)=36:XX(1)=0
1130 FORI=2 TO9:XX(I)=XX(1)+(I-1)*4:NEXTI
1140 HO=0:FORVE=0 TO21:GOSUB110:PRINT"!"
1150 SC$(VE,HO)="!":NEXTVE:VE=0
1160 FORHO=1 TO38:GOSUB110:PRINT"-":SC$(VE,HO)="-":NEXTHO
1170 HO=38
1180 FORVE=0 TO21:GOSUB110:PRINT"!":SC$(VE,HO)="!":NEXTVE
1190 VE=23:HO=0:GOSUB110
1200 FORI=1 TO10:IFI=1 THENPRINT" ";:GOTO1220
1210 PRINT" ";
1220 PRINTDU$(I);
1230 NEXTI
1240 HO=0:VE=0:GOSUB110
1250 FORVE=1 TO6:HO=1:GOSUB110
1260 H$="*":IFVE/2=INT(VE/2) THENH$="%"
1270 FORHO=1 TO37:PRINTH$;:SC$(VE,HO)=H$
1280 NEXTHO:NEXTVE
1290 PX=20:PY=21:R=-1
1300 GOSUB260:ZU=INT(RV*3)+1
1310 A$="":BE$=""
1320 FX=XX(1)
1330 VE=22:HO=FX:GOSUB110
1340 FORI=HO TOHO+3:PRINT"+";:SC$(VE,I)="+":NEXTI
1350 GOTO1370
1360 GOSUB260:ZU=INT(RV*3)+1
1370 RX=PX:RY=PY:HO=PX:VE=PY:GOSUB110:PRINT"O":SC$(VE,HO)="O"
1380 FORI=1 TOGE:NEXTI
1390 GOSUB200:A$=IN$:IFA$<>"" THENA=AC(ASC(A$)):GOTO1600
1400 IFR=-1 THENPX=PX+AX(ZU):PY=PY+AY(ZU):GOTO1420
1410 PX=PX+RX(ZU):PY=PY+RY(ZU)
1420 IFPY=0 THENR=0:PX=RX:PY=RY:GOTO1360
1430 IFPY>22 THEN1510
1440 Z$=SC$(PY,PX):IF(Z$=" ") OR(Z$="") THEN1500
1450 IFZ$="+" THENPX=RX:PY=RY:R=-1:GOTO1360
1460 IFZ$="!" THENPX=RX:PY=RY:ZU=4-ZU:GOTO1370
1470 R=-1-R
1480 HO=PX:VE=PY:GOSUB110:PRINT" ":SC$(VE,HO)=" "
1490 HO=RX:VE=RY:GOSUB110:PRINT" ":SC$(VE,HO)=" ":GOTO1360
1500 HO=RX:VE=RY:GOSUB110:PRINT" ":SC$(VE,HO)=" ":GOTO1370
1510 PU=0
1520 HO=RX:VE=RY:GOSUB110:PRINT" ":SC$(VE,HO)=" "
1530 FORVE=1 TO6:FORHO=1 TO38:IFSC$(VE,HO)=" " THENPU=PU+1
1540 NEXTHO:NEXTVE
1550 GOSUB100:FORI=1 TO38:PRINT"*";:NEXTI
1560 PRINT
1570 PRINTA$(CO);" MANAGED TO GET ";
1580 PRINTPU;" POINT";:IFPU<>1 THENPRINT"S"
1590 RETURN
1600 IFA$=BE$ THEN1400
1610 BE$=A$
1620 HO=FX:VE=22:GOSUB110
1630 FORI=HO TOHO+3:PRINT" ";:SC$(VE,I)=" ":NEXTI
1640 FX=XX(A)
1650 VE=22:HO=FX:GOSUB110
1660 FORI=HO TOHO+3:PRINT"+";:SC$(VE,I)="+":NEXTI
1670 GOTO1400
1680 GOSUB100
1690 PRINT"BREAKTHROUGH"
1700 PRINT"============"
1710 PRINT:PRINT
1720 PRINT"A GAME OF REACTION FOR 1 - 5 PERSONS"
1730 PRINT:PRINT
1740 PRINT:PRINT"PROGRAMMED BY THOMAS HOFMEISTER"
1750 PRINT:PRINT"IN BOCHUM, W-GERMANY"
1760 GOSUB2120:GOSUB100
1770 PRINT"HOW MANY PLAYERS PARTICIPATE";:INPUTAU
1780 PRINT:PRINT
1790 PRINT:PRINT"WHICH SPEED:"
1800 PRINT:PRINT"(1=FAST..100=SLOW)";:INPUTGE
1810 IF(GE<1) OR(GE>100) THENGOSUB100:GOTO1800
1820 IF(AU<1) OR(AU>5) THENGOSUB100:GOTO1770
1830 DIMSP(9),A$(9):CO=0
1840 GOSUB100
1850 FORPH=1 TOAU:PRINT"NAME ";PH;:INPUTA$(PH):NEXTPH
1860 CO=CO+1:IFCO=AU+1 THENCO=1
1870 GOSUB1080
1880 SP(CO)=SP(CO)+PU
1890 PRINT:PRINT
1900 PRINT"THE RESULTS SO FAR :"
1910 PRINT"===================="
1920 PRINT:PRINT
1930 FORPH=1 TOAU:PRINTA$(PH);" :";TAB(25);SP(PH);" POINT";
1940 IFSP(PH)<>1 THENPRINT"S";
1950 PRINT:NEXTPH
1960 PRINT:PRINT"NOW IT'S ";
1970 IFCO+1=AU+1 THENPRINTA$(1);:GOTO1990
1980 PRINTA$(CO+1);
1990 PRINT"'S TURN.":PRINT:PRINT
2000 PRINT"PRESS 'F' TO START"
2010 PRINT
2020 PRINT"PRESS 'E' TO END"
2030 PRINT
2040 PRINT"PRESS 'A' TO CHANGE THE SPEED"
2050 GOSUB200
2060 IFIN$="F" THEN1860
2070 IFIN$="E" THEN2470
2080 IFIN$<>"A" THEN2050
2090 PRINT:PRINT"SPEED";:INPUTGE
2100 IF(GE<1) OR(GE>100) THENGOSUB100:GOTO2090
2110 GOTO2000
2120 PRINT:PRINT
2130 PRINT"DO YOU WANT THE RULES (Y/N)"
2140 GOSUB200
2150 IFIN$="Y" THENGOSUB2180:RETURN
2160 IFIN$="N" THENRETURN
2170 GOTO2140
2180 GOSUB100
2190 PRINT"YOU HAVE TO REMOVE THE WALL"
2200 PRINT:PRINT"AT THE TOP OF THE SCREEN"
2210 PRINT:PRINT"WITH THE BALL O."
2220 PRINT:PRINT"YOU CAN HIT THE BALL"
2230 PRINT:PRINT"WITH THE ++++ AT THE BOTTOM"
2240 PRINT:PRINT"OF THE SCREEN."
2250 PRINT:PRINT"IF YOU DON'T MANAGE TO GET"
2260 GOSUB2430
2270 PRINT:PRINT"THE BALL, THE GAME IS OVER."
2280 PRINT:PRINT"FOR EACH REMOVED BRICK"
2290 PRINT:PRINT"YOU GET 1 POINT."
2300 PRINT:PRINT"YOU CAN MOVE YOUR ++++ BY"
2310 PRINT:PRINT"PRESSING THE LETTERS WHICH"
2320 PRINT:PRINT"ARE ALSO SHOWN BELOW THE ++++."
2330 PRINT:PRINT"IF YOU WANT TO USE OTHER"
2340 PRINT:PRINT"LETTERS FOR MOVING THE"
2350 GOSUB2430
2360 PRINT:PRINT"++++ THEN CHANGE PROGRAM LINE"
2370 PRINT:PRINT"25000 AND PUT INTO THE DATAS"
2380 PRINT:PRINT"THOSE LETTERS YOU WANT TO USE"
2390 PRINT:PRINT"AND IN THE SAME ORDER"
2400 PRINT:PRINT"IN WHICH THEY LATER APPEAR"
2410 PRINT:PRINT"ON THE SCREEN."
2420 GOSUB2430:RETURN
2430 HO=0:VE=22:GOSUB110
2440 PRINT"PRESS A KEY TO CONTINUE";
2450 GOSUB210:GOSUB100
2460 RETURN
2470 GOSUB100:PRINT"THIS WAS A PROGRAM BY"
2480 PRINT:PRINT"THOMAS HOFMEISTER"
2490 PRINT:PRINT"IF YOU WANT TO KNOW"
2500 PRINT:PRINT"MY ADDRESS THEN LIST"
2510 PRINT:PRINT"30000- "
2520 END
25000 DATA"Q","W","E","R","T","Y","U","I","O","P"
30000 REM
30010 REM THOMAS HOFMEISTER
30020 REM WITTENBERGSTR. 25
30030 REM 4630 BOCHUM 7
30040 REM
30050 REM WRITTEN ON A COMMODORE-64
30060 REM
30070 REM AND ADAPTED FOR BASICODE-2
30080 REM
30090 REM IN JUNE 1983
30100 REM
30110 REM COPYRIGHT
30120 REM NOS HILVERSUM