-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy path02_Sea_Wars.bc2
More file actions
393 lines (392 loc) · 12.7 KB
/
02_Sea_Wars.bc2
File metadata and controls
393 lines (392 loc) · 12.7 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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
1000 A=2500:GOTO20:REM *ZEESLAG*
1010 DIMPO$(14,14),X1(5),X2(5),Y1(5),Y2(5),ME(10)
1020 DIMDI(3),CY$(4),C$(9),RE$(3),S$(5)
1030 DIMNR(5),TS(5),TE$(23)
1040 CO=0:RE$(0)=" "
1050 GOSUB100:REM*HOME;CLS*
1060 PRINT:PRINT
1070 PRINT"WELKE TAAL?"
1080 PRINT"WHICH LANGUAGE?"
1090 PRINT"QUEL LANGAGE?"
1100 PRINT"WELCHE SPRACHE?"
1110 PRINT:PRINT:PRINT:PRINT
1120 PRINT" NEDERLANDS...........1"
1130 PRINT" ENGLISH..............2"
1140 PRINT" FRANCAIS.............3"
1150 PRINT" DEUTSCH..............4"
1160 VE=20:HO=0:GOSUB110
1170 PRINT"NUMMER,NUMBER,NUMERO,NUMMER: ";
1180 GOSUB210:PRINTIN$
1190 NO=ASC(IN$)-48
1200 IF(NO<1) OR(NO>5) THEN1160
1210 GOSUB11140
1220 GOSUB100:REM*HOME;CLS*
1230 VE=5:HO=0:GOSUB110
1240 PRINT" ##############################"
1250 FORI=1 TO7
1260 PRINT" # #"
1270 NEXTI
1280 PRINT" ##############################"
1290 VE=9:HO=12:GOSUB110
1300 PRINTTE$(0)
1310 T=-1:RA=0:VS=0
1320 FORX=1 TO14
1330 FORY=1 TO14
1340 PO$(X,Y)="."
1350 NEXTY
1360 NEXTX
1370 VE=23:HO=0:GOSUB110
1380 PRINTTE$(2);:GOSUB210:PRINTIN$
1390 IFIN$="N" ORIN$="n" THEN1420
1400 GOSUB100:REM*HOME;CLS*
1410 GOSUB11390:REM*SUB. SPELREGELS*
1420 GOSUB11000:REM*RANDOM GENERATOR*
1430 GOSUB10900:REM*INLEZEN DATA POSITIE SCHEPEN*
1440 GOSUB10000:REM*TEKENEN SPEELVELD*
1450 GOSUB10720
1460 GOSUB10230:REM*INLEZEN POSITIE HO,VE*
1470 IFPO$(X,Y)<>"." THEN1450
1480 GOSUB10400:REM*CONTROLE*
1490 IFR<>1 THENPO$(X,Y)="O"
1500 IFR=1 THENPO$(X,Y)="*"
1510 VE=Y+3:HO=X+6:GOSUB110:PRINTPO$(X,Y)
1520 IFR=2 THENGOSUB250
1530 IFR<>3 THEN1620
1540 FORX=X1(S) TOX2(S)
1550 FORY=Y1(S) TOY2(S)
1560 VE=Y+3:HO=X+6:GOSUB110:PRINT"."
1570 FORDE=1 TO500:NEXTDE
1580 GOSUB250:REM*PIEPTOON*
1590 GOSUB110:PRINTPO$(X,Y)
1600 NEXTY
1610 NEXTX
1620 HO=30:VE=21:GOSUB110:PRINTRE$(0)
1630 GOSUB110:PRINTRE$(R)
1640 GOSUB10720:REM*TELLER AANTAL WORPEN*
1650 GOSUB10580:REM*RAAK -EN MIS%*
1660 GOSUB11240
1670 IF(T<196) AND(RA<>18) THEN1460
1680 HO=0:VE=22:GOSUB110:PRINTTE$(12);:GOSUB210
1690 IF(IN$="J") OR(IN$="O") OR(IN$="Y") THEN1310
1700 IF(IN$="j") OR(IN$="o") OR(IN$="y") THEN1310
1710 REM* EINDE PROGRAMMA (6)*
1720 GOSUB100:HO=0:VE=5:GOSUB110
1730 PRINT" ********************"
1740 PRINT" * *"
1750 PRINT" * *"
1760 PRINT" * *"
1770 PRINT" ********************"
1780 FORI=1 TO15
1790 HO=11:VE=7:GOSUB110
1800 PRINTTE$(23)
1810 FORDE=1 TO350:NEXTDE
1820 GOSUB110:PRINT" "
1830 FORDE=1 TO350:NEXTDE
1840 NEXTI
1850 GOSUB100
1860 END
10000 REM *TEKENEN SPEELVELD*
10010 GOSUB100:REM*HOME;CLS;CHR$(12)*
10020 R1$=" !ABCDEFGHIJKLMN!"
10030 REM
10040 R2$="--+--------------+--"
10050 HO=10:VE=0:GOSUB110:PRINTTE$(0)
10060 HO=5:VE=2:GOSUB110:PRINTR1$
10070 HO=4:VE=3:GOSUB110:PRINTR2$
10080 FORY=1 TO14
10090 VE=3+Y:GOSUB110
10100 IFVE<=12 THENPRINT"0";
10110 SR=Y:GOSUB300:PRINTSR$;"!";
10120 FORX=1 TO14
10130 PRINTPO$(X,Y);
10140 NEXTX
10150 PRINT"!";:IFVE<=12 THENPRINT"0";
10160 PRINTSR$
10170 NEXTY
10180 VE=18:GOSUB110:PRINTR2$
10190 VE=19:HO=5:GOSUB110:PRINTR1$
10200 HO=2:VE=21:GOSUB110:PRINT"VERT: HORZ: ";TE$(4)
10210 HO=33:VE=0:GOSUB110:PRINT"NR.: ";N
10220 RETURN
10230 REM*INLEZEN POSITIE*
10240 REM
10250 HO=7:VE=21:GOSUB110
10260 GOSUB210
10270 X=ASC(IN$)-ASC("a")+1
10280 IF(X<1) OR(X>14) THEN10300
10290 PRINTCHR$(ASC("A")-1+X);:GOTO10330
10300 PRINTIN$;
10310 X=ASC(IN$)-ASC("A")+1
10320 IF(X<1) OR(X>14) THEN10250
10330 HO=15:GOSUB110
10340 GOSUB210:PRINTIN$;
10350 Y=(ASC(IN$)-48)*10
10360 GOSUB210:PRINTIN$
10370 Y=Y+ASC(IN$)-48
10380 IF(Y<1) OR(Y>14) THEN10330
10390 RETURN
10400 REM
10410 REM*CONTROLE*
10420 REM
10430 S=0
10440 S=S+1
10450 R1=0:R2=1
10460 FORHO=X1(S) TOX2(S)
10470 FORVE=Y1(S) TOY2(S)
10480 IF(HO<>X) OR(VE<>Y) THEN10500
10490 PO$(X,Y)="O":R1=1
10500 IFPO$(HO,VE)<>"O" THENR2=0
10510 NEXTVE
10520 NEXTHO
10530 IF(S<>5) AND(R1=0) THEN10440
10540 IFR1=0 THENR=1
10550 IFR1=1 THENR=2
10560 IF(R1=1) AND(R2=1) THENR=3
10570 RETURN
10580 REM
10590 REM*RAAK -EN MISPERCENTAGE*
10600 REM
10610 IFR<>1 THENRA=RA+1
10620 HO=26
10630 VE=13:GOSUB110:PRINTTE$(5);
10640 CT=3:CN=0:SR=RA:GOSUB310:PRINTSR$
10650 VE=14:GOSUB110:PRINTTE$(6);
10660 SR=T-RA:GOSUB310:PRINTSR$
10670 VE=16:GOSUB110:PRINTTE$(7);
10680 CT=5:CN=1:SR=RA/T*100:GOSUB310:PRINTSR$:RP=VAL(SR$)
10690 VE=17:GOSUB110:PRINTTE$(8);
10700 SR=100-SR:GOSUB310:PRINTSR$:MP=VAL(SR$)
10710 RETURN
10720 REM
10730 REM*TELLER AANTAL WORPEN*
10740 REM
10750 HO=28:VE=3:GOSUB110:PRINTTE$(3)
10760 T=T+1
10770 DI(1)=INT(T/100)
10780 GE=T-100*DI(1)
10790 DI(2)=INT(GE/10)
10800 DI(3)=GE-DI(2)*10
10810 HO=27
10820 FORI=1 TO5
10830 VE=I+4:GOSUB110
10840 FORJ=1 TO3
10850 K=DI(J):K$=MID$(C$(K),I,1):K=VAL(K$)
10860 PRINTCY$(K);" ";
10870 NEXTJ
10880 NEXTI
10890 RETURN
10900 REM
10910 REM*INLEZEN POSITIE SCHEPEN*
10920 REM
10930 RESTORE
10940 FORJ=1 TON
10950 FORS=1 TO5
10960 READX1(S),Y1(S),X2(S),Y2(S)
10970 NEXTS
10980 NEXTJ
10990 RETURN
11000 REM*RANDOM GENERATOR VOOR DATA POSITIE SCHEPEN*
11010 FORI=1 TO15
11020 GOSUB260:REM*GENEREREN RANDOM GETAL RV*
11030 NEXTI
11040 N=INT(RV*25+0.5)
11050 R1=0
11060 FORI=1 TO10
11070 IFME(I)=N THENR1=1
11080 NEXTI
11090 IF(R1=1) OR(N=0) THEN11010
11100 CO=CO+1
11110 IFCO>10 THENCO=1
11120 ME(CO)=N
11130 RETURN
11140 REM*INLEZEN DATA GEKOZEN TAAL*
11150 FORI=1 TO500:READV$:NEXTI
11160 FORI=1 TO4:READCY$(I):NEXTI
11170 FORI=0 TO9:READC$(I):NEXTI
11180 FORJ=1 TONO
11190 FORI=1 TO5:READS$(I):NEXTI
11200 FORI=1 TO3:READRE$(I):NEXTI
11210 FORI=0 TO23:READTE$(I):NEXTI
11220 NEXTJ
11230 RETURN
11240 REM*BIJHOUDEN RESULTATEN*
11250 IFR<>3 THEN11380
11260 VS=VS+1:NR(VS)=S:TS(VS)=T
11270 IFVS<5 THEN11380
11280 FORDE=1 TO2500:NEXTDE
11290 GOSUB100:PRINTTE$(13):PRINTTE$(14)
11300 PRINT:PRINT:PRINTTE$(9)
11310 PRINT"======================================="
11320 FORI=1 TO5
11330 PRINT" ";I;" ! ";S$(NR(I));" ! ";TS(I)
11340 NEXTI
11350 PRINT:PRINT
11360 PRINTTE$(10);RP
11370 PRINTTE$(11);MP
11380 RETURN
11390 REM*SPELREGELS*
11400 PRINTTE$(15):PRINTTE$(16):PRINT:PRINT
11410 FORI=1 TO4
11420 PRINTTE$(16+I)
11430 NEXTI
11440 PRINT:PRINT
11450 FORI=1 TO5
11460 PRINTI;") ";S$(I)
11470 NEXTI
11480 PRINT:PRINT
11490 PRINTTE$(21):PRINTTE$(22):PRINT:PRINT
11500 PRINTTE$(1);:GOSUB210
11510 RETURN
25000 REM*DATA POSITIE SCHEPEN*
25010 DATA1,12,5,12,13,7,13,10,11,1,11,4,4,1,4,3,8,9,9,9
25020 DATA10,3,14,3,6,5,9,5,3,8,6,8,12,10,12,12,2,12,2,13
25030 DATA13,2,13,6,6,3,6,6,5,10,8,10,12,10,12,12
25035 DATA2,12,2,13
25040 DATA8,7,12,7,4,2,4,5,5,10,8,10,10,3,12,3,9,13,10,13
25050 DATA6,8,6,12,3,2,3,5,10,6,10,9,2,10,2,12,12,3,13,3
25060 DATA4,12,8,12,6,3,9,3,3,5,3,8,12,4,12,6,6,8,7,8
25070 DATA4,12,8,12,3,5,3,8,6,3,9,3,12,10,12,12,9,8,10,8
25080 DATA8,8,8,12,10,1,10,4,12,8,12,11,2,10,2,12,4,6,4,7
25090 DATA4,8,8,8,2,2,2,5,11,5,14,5,10,13,12,13,7,2,8,2
25100 DATA4,1,8,1,8,4,11,4,10,13,13,13,8,9,10,9,4,6,5,6
25110 DATA4,10,4,14,4,3,7,3,10,12,13,12,6,7,8,7,12,5,13,5
25120 DATA4,10,4,14,7,5,10,5,14,11,14,14
25130 DATA9,11,11,11,12,1,13,1
25140 DATA3,7,3,11,5,2,5,5,10,2,10,5,7,8,7,10,12,10,12,11
25150 DATA1,10,5,10,1,2,4,2,9,3,12,3,7,7,9,7,11,12,12,12
25160 DATA1,8,1,12,4,2,4,5,12,1,12,4,8,6,8,8,12,12,12,13
25170 DATA1,9,5,9,1,4,4,4,11,3,14,3,6,7,8,7,10,10,10,11
25180 DATA6,2,10,2,3,6,3,9,3,12,6,12,12,8,12,10,1,3,1,4
25190 DATA5,9,5,13,13,2,13,5,3,2,3,5,8,5,8,7,11,11,11,12
25200 DATA1,14,5,14,3,2,3,5,10,6,13,6,7,11,9,11,14,1,14,2
25210 DATA9,9,9,13,3,2,3,5,13,6,13,9,7,5,7,7,4,10,4,11
25220 DATA2,3,6,3,12,2,12,5,3,12,6,12,11,10,11,12,5,8,6,8
25230 DATA3,9,7,9,8,3,11,3,12,10,12,13,3,6,5,6,2,13,2,14
25240 DATA8,7,12,7,3,3,3,6,2,13,5,13,10,12,12,12
25245 DATA11,2,12,2
25250 DATA13,5,13,9,1,6,4,6,4,9,7,9,10,12,12,12,7,4,8,4
25260 DATA3,11,7,11,4,5,4,8,8,6,11,6,12,2,12,4,5,2,6,2
25500 REM *DATA TELLER*
25510 DATA" *","* ","***","* *"
25520 DATA"34443","11111","31323","31313"
25530 DATA"44311","32313","32343","31111"
25540 DATA"34343","34313"
25600 REM*DATA NEDERLANDS*
25610 DATA"VLIEGDEKSCHIP 00000 "
25620 DATA"KRUISER 0000 "
25630 DATA"FREGAT 0000 "
25640 DATA"DUIKBOOT 000 "
25650 DATA"MIJNENVEGER 00 "
25660 DATA"MIS","RAAK","GEZONKEN"
25670 DATA" *ZEESLAG*","DRUK EEN TOETS IN! "
25680 DATA"WILT U DE SPELREGELS ZIEN (J/N)? "
25690 DATA"*TELLER*","RESULTAAT:","RAAK :"
25700 DATA"MIS :","RAAK% :","MIS% :"
25710 DATA" NO ! OORLOGSSCHEPEN ! TELLER"
25720 DATA"TOTAAL RAAK% :","TOTAAL MIS% :"
25730 DATA"WILT U HET SPEL NOGMAALS SPELEN (J/N)? "
25740 DATA" RESULTATEN"
25750 DATA" =========="
25760 DATA" SPELREGELS"
25770 DATA" =========="
25780 DATA"HET DOEL VAN DIT SPEL IS OM MET EEN "
25790 DATA"ZO'N MINIMAAL AANTAL TORPEDO'S DE"
25800 DATA"GEHELE OORLOGSVLOOT, WELKE UIT 5 OOR-"
25810 DATA"LOGSSCHEPEN BESTAAT, TOT ZINKEN TE BRENGEN"
25820 DATA"UITGEBREIDE INFORMATIE ONTRENT RESULTA-"
25830 DATA"TEN WORDT OP HET BEELDSCHERM GETOOND."
25840 DATA" TOT ZIENS!"
25900 REM*DATA ENGELS*
25910 DATA"AIRCRAFT CARRIER 00000"
25920 DATA"CRUISER 0000 "
25930 DATA"FRIGATE 0000 "
25940 DATA"SUBMARINE 000 "
25950 DATA"MINESWEEPER 00 "
25960 DATA"MISSED","HIT","SUNK"
25970 DATA"*NAVAL COMBAT*","PRESS A KEY! "
25980 DATA"DO YOU WANT TO SEE THE RULES OF THE GAME?"
25990 DATA"*COUNTER*","RESULT :","HIT :"
26000 DATA"MISSED :","HIT% :","MISSED% :"
26010 DATA" NR ! WARSHIPS ! COUNTER"
26020 DATA"TOTAL HIT% :","TOTAL MISSED% :"
26030 DATA"DO YOU WANT TO PLAY THE GAME ONCE AGAIN (Y/N)?"
26040 DATA" RESULTS"
26050 DATA" ======="
26060 DATA" RULES OF THE GAME"
26070 DATA" ================="
26080 DATA"THE PURPOSE OF THIS GAME IS TO SINK"
26090 DATA"THE WHOLE WARFLEET, WHICH CONSISTS OF"
26100 DATA"5 WARSHIPS, WITH A MINIMUM NUMBER"
26110 DATA"OF TORPEDOS."
26120 DATA"DETAILED INFORMATION ABOUT THE RESULTS"
26130 DATA"IS DISPLAYED ON THE TV-SCREEN."
26140 DATA" GOODBYE!"
26200 REM*DATA FRANS*
26210 DATA"PORTE AVIONS 00000"
26220 DATA"CROISSEUR 0000 "
26230 DATA"FREGATE 0000 "
26240 DATA"SOUS-MARIN 000 "
26250 DATA"DRAGUEUR DE MINES 00 "
26260 DATA"MANQUE","TOUCHE","COULE"
26270 DATA"*BATAILLE NAVAL*","PRESSEZ UN BOUTON!"
26280 DATA"VOULEZ VOUS VOIR LES REGLES DE JEU (O/N)?"
26290 DATA"*COMPTEUR*","RESULTAT :","TOUCHE :"
26300 DATA"MANQUE :","TOUCHE% :","MANQUE% :"
26310 DATA" NU ! VAISSEAUX DE GUERRE !COMPTEUR"
26320 DATA"TOTAL TOUCHE% :","TOTAL MANQUE% :"
26330 DATA"VOULEZ VOUS JOUER LE JEU ENCORE UN FOIS (O/N)?"
26340 DATA" RESULTATS"
26350 DATA" ========="
26360 DATA" REGLES DE JEU"
26370 DATA" ============="
26380 DATA"LE DEISSIN DE CE JEU EST POUR UN NOMBRE"
26390 DATA"DE TORPEDO MINIME COULE TOUTE LA FLOTTE"
26400 DATA"DE GUERRE, QUELLE EXISTE DE CINQ"
26410 DATA"VAISSEAUX DE GUERRE."
26420 DATA"INFORMATION DETAILLE DE CES RESULTATS"
26430 DATA"EST MONTRER A L'ECRAN."
26440 DATA" AU REVOIR!"
26500 REM*DATA DUITS*
26510 DATA"FLUGZEUGTRAGER 00000 "
26520 DATA"KREUZER 0000 "
26530 DATA"FREGATTE 0000 "
26540 DATA"U-BOOT 000 "
26550 DATA"MINENRAUMER 00 "
26560 DATA"WASSER","TREFFER","GESUNKEN"
26570 DATA" *SEESCHLACHT*","DRUCKEN SIE EINE TASTE EIN!"
26580 DATA"WOLLEN SIE DIE SPIELREGELN SEHEN (J/N)?"
26590 DATA"*ZAHLER*","RESULTAT :","TREFFER :"
26600 DATA"WASSER :","TREFFER%:","WASSER% :"
26610 DATA" NU ! KRIEGSSCHIFFE ! ZAHLER"
26620 DATA"TOTAL TREFFER% :","TOTAL WASSER% :"
26630 DATA"WOLLEN SIE DAS SPIEL NOCHMAALS SPIELEN (J/N)?"
26640 DATA" RESULTATE"
26650 DATA" ========="
26660 DATA" SPIELREGEL"
26670 DATA" =========="
26680 DATA"DAS ZIEL DIESES SPIELES IST UM MIT "
26690 DATA"EINER MINIMAL ANZAHL TORPEDOS DIE"
26700 DATA"GANZE KRIEGSFLOTTE, WELCHER AUS 5"
26710 DATA"KRIEGSSCHIFFE BESTEHT, ZU VERSENKEN."
26720 DATA"AUSFUHRLICHE INFORMATIONEN IN BEZUG AUF"
26730 DATA"DIE RESULTATEN WERDEN AUF DEM BILDSCHIRMGEZEIGT"
26740 DATA" AUF WIEDERSEHEN!"
30000 REM
30010 REM
30020 REM *ZEESLAG*
30030 REM
30040 REM DATA VOOR 25 SPELLETJES
30050 REM
30060 REM GEMAAKT OP BBC-MICRO
30070 REM
30080 REM BENODIGD GEHEUGEN
30090 REM INCLUSIEF STANDAARD-
30100 REM ROUTINES: CA. 11K
30110 REM
30120 REM DATE: 14-09-1983
30130 REM
30140 REM FRED BLUME
30150 REM KON. JULIANASTR. 28
30160 REM 6271 CC GULPEN
30170 REM TEL.: 04450-3010
30190 REM COPYRIGHT NOS HILVERSUM