-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathDELERS.bc2
337 lines (337 loc) · 10.2 KB
/
DELERS.bc2
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
1000 A=100:GOTO 20
1010 GOTO 10000:REM INITIALISEER
1020 :
1030 :REM START VAN HET HOOFDPROGRAMMA
1040 :
1050 GOSUB 100:PRINT"Goed, dan gaan we beginnen."
1060 PRINT:PRINT
1070 PRINT"Jullie moeten afspreken wie A en B is,"
1080 PRINT
1090 PRINT"en ik wil graag weten welk het hoogste"
1100 PRINT"getal in het schema is waarmee jullie"
1110 PRINT"willen spelen.":PRINT
1120 PRINT"Kies dat getal, maximaal 91.";
1130 INPUT GI
1140 IF GI<92 AND GI>2 THEN 1220
1150 PRINT:PRINT"Je keuze was ";GI;" en dat ligt toch niet"
1160 PRINT"tussen 2 en 92 ?"
1170 PRINT:PRINT
1180 PRINT"K i e s o p n i e u w "
1190 FOR I=1 TO 20*TF:NEXT I
1200 GOTO 1050
1210 :
1220 BE=0:GOSUB 8020
1230 GOSUB 3020:REM VUL IN TOT GI
1240 FOR GW=2 TO GI:GT(GW)=1:NEXT GW:IF GI=91 THEN 1270
1250 FOR GW=GI+1 TO 91:GT(GW)=0
1260 NEXT GW
1270 SA=0:SB=0:REM SCORES
1280 GOSUB 9020:GOSUB 6020:REM PRINT DE STAND
1290 FOR I=1 TO 30*TF:NEXT I
1300 :
1320 VE=21:HO=0:GOSUB 110:PRINT SP$:PRINT SP$:PRINT SP$;
1330 VE=21:HO=0:GOSUB 110
1340 PRINT"Speler "CHR$(65+BE)" kiest: ";
1350 GOSUB 4020
1360 HG=16:GI=0:TE=30:TP=0:CS=1:GOTO 1470
1370 GOSUB 5020:REM GET KR
1380 IF IN$=""THEN 1440
1390 IF KR=13 THEN 1500
1400 KR=KR-48:IF KR<0 OR KR>9 THEN 1440
1410 GI=10*GI+KR
1420 VE=21:HO=16:GOSUB 110:SR=GI:GOSUB 300:PRINT SR$
1430 HG=HG+1
1440 TE=TE+1:IF TE+TE<TF THEN 1370
1450 TE=0:HO=HG:VE=21:GOSUB 110
1460 PRINT MID$("ox",CS,1):CS=3-CS
1470 TP=TP+CS-1
1480 VE=10:HO=30:GOSUB 110:PRINT"Tyd: ";:SR=TP
1490 GOSUB 300:PRINT SR$;" ":GOTO 1370
1500 REM GETAL IS BINNEN
1510 HO=HG:VE=21:GOSUB 110:PRINT" ";
1520 IF GI>91 THEN 1550
1530 IF GT(GI)=1 THEN 1600
1540 :
1550 VE=22:HO=0:GOSUB 110
1560 PRINT"Jammer "CHR$(65+BE)", maar dat getal is al weg."
1570 PRINT" K i e s o p n i e u w ! ! ! ";
1580 FOR I=1 TO 40*TF:NEXT I
1590 GOTO 1320
1600 PRINT"en krijgt ";
1610 SR=GI:GOSUB 300
1620 PRINT SR$;" pt."
1630 GW=GI:GOSUB 7020
1640 PRINT" "
1650 :
1660 FOR I=1 TO 15*TF:NEXT I
1670 :
1680 VE=23:HO=0:GOSUB 110:PRINT"Speler "CHR$(66-BE);
1690 SR=TP:GOSUB 300:PRINT" krijgt ";SR$;" pt";
1700 FOR I=1 TO 20*TF:NEXT I
1710 BR=9
1720 FOR GW=2 TO GI-1
1730 :IF GT(GW)=0 THEN 1870
1740 :IF GI<>GW*INT(GI/GW)THEN 1870
1750 :CT=2:CN=0:SR=GW:GOSUB 310
1760 :GOSUB 7020:REM POSITIONEER
1770 :GOSUB 250:FOR I=1 TO 20
1780 ::GOSUB 110:IF 2*INT(I/2)=I THEN 1800
1790 ::PRINT SR$;:GOTO 1810
1800 ::PRINT" ";
1810 ::FOR II=1 TO 5:NEXT II
1820 :NEXT I
1830 :TP=TP+GW
1840 :VE=23:HO=16:GOSUB 110
1850 :SR=TP:GOSUB 300
1860 :PRINT SR$;" pt.";
1870 NEXT GW
1880 GW=GI:GOSUB 7020:PRINT" ";
1890 IF BE=0 THEN SA=SA+GI:SB=SB+TP
1900 IF BE=1 THEN SB=SB+GI:SA=SA+TP
1910 BE=1-BE
1920 FOR J=2 TO 91:IF GT(J)=1 THEN J=101:GOTO 1280
1930 NEXT J
1940 :
1950 :GOSUB 100:PRINT" * * * E I N D S T A N D * * * "
1960 :PRINT" ******************************* "
1970 PRINT:PRINT
1980 PRINT"Speler A heeft "SA" punten,"
1990 PRINT:PRINT
2000 PRINT"Speler B heeft "SB" punten."
2010 W$="":IF SA>SB THEN W$="a"
2020 IF SA<SB THEN W$="b"
2030 IF W$=""THEN 2070
2040 PRINT:PRINT:PRINT
2050 PRINT"Dus "W$" heeft gewonnen !"
2060 GOTO 2090
2070 PRINT:PRINT:PRINT
2080 PRINT" G e l i j k s p e l !"
2090 FOR I=1 TO 120*TF:NEXT I
2100 VE=20:HO=0:GOSUB 110:PRINT"Nog een spelletje ?"
2110 GOSUB 4020
2120 PRINT:PRINT"tik J of N"
2130 GOSUB 5020:IF IN$=""THEN 2130
2140 IN$=CHR$(KR)
2150 IF IN$="j"OR IN$="J"THEN 1050
2160 PRINT"Jammer, d a a a a g....
2170 END
2180 :
3000 :REM SUBROUTINE VUL IN TOT GI
3010 :
3020 CT=2:CN=0
3030 FOR SR=2 TO GI:GW=SR
3040 :GOSUB 7020:GOSUB 310:PRINT SR$
3050 NEXT SR
3060 RETURN
3070 :
4000 :REM SR LEDIG INPUTBUFFER
4010 :
4020 GOSUB 200:IF IN$<>""THEN 4020
4030 RETURN
4040 :
5000 :REM SR GET ASCII CHR KR
5010 :
5020 GOSUB 200:IF IN$=""THEN RETURN
5030 KR=ASC(IN$)
5040 IF KR>95 THEN KR=KR-32:GOTO 5040
5050 RETURN
5060 :
6000 :REM SR PRINT DE STAND
6010 :
6020 VE=6:HO=32:GOSUB 110:SR=SA:GOSUB 300:PRINT SR$
6030 VE=17:GOSUB 110:SR=SB:GOSUB 300:PRINT SR$
6040 GOSUB 250
6050 FOR I=1 TO 3*TF:NEXT I
6060 RETURN
6070 :
7000 :REM SR POSITIONEER VOOR GW
7010 :
7020 RE=INT((GW-2)/9):REM REGEL
7030 KO=GW-9*RE:REM KOLOM
7040 VE=RE+RE+1:HO=3*KO-5:GOSUB 110
7050 GT(GW)=0
7060 RETURN
7070 :
8000 :REM SR ZET NIEUWE TEKENING
8010 :
8020 GOSUB 100
8030 BO$="+--------------------------+"
8040 TR$="!--+--+--+--+--+--+--+--+--!"
8050 CR$="! ! ! ! ! ! ! ! ! !"
8060 PRINT BO$:PRINT CR$
8070 FOR I=1 TO 9:PRINT TR$:PRINT CR$:NEXT I
8080 PRINT BO$
8090 RETURN
8100 :
9000 REM SUBROUTINE STANDVENSTERS
9010 :
9020 FOR I=0 TO 1
9030 HO=30:VE=1+11*I:GOSUB 110:PRINT"+--------+"
9040 VE=VE+1:GOSUB 110
9050 PRINT"!Speler ";CHR$(65+I);"!"
9060 VE=VE+1:GOSUB 110:PRINT"! !"
9070 VE=VE+1:GOSUB 110:PRINT"! Stand: !"
9080 FOR II=1 TO 3
9090 VE=VE+1:GOSUB 110:PRINT"! !"
9100 NEXT II
9110 VE=VE+1:GOSUB 110:PRINT"+--------+"
9120 NEXT I
9130 RETURN
9140 :
10000 SP$=" "
10010 DIM GT(91)
10020 TF=30:REM TIJDFACTOR, KIES
10030 :REM MEER BIJ SNELLE-
10040 :REM MINDER BIJ LANGZAME-
10050 :REM COMPUTERS
10060 GOSUB 100
10070 PRINT" D E L E R S"
10080 GOSUB 11020
10090 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
10100 PRINT" Een leerzaam spel voor twee personen"
10110 GOSUB 11020
10120 PRINT:PRINT:PRINT:PRINT
10130 PRINT" Wil je uitleg ?"
10140 PRINT:PRINT" (antwoord met J of N )"
10150 GOSUB 4020:REM FLUSH BUFFER
10160 GOSUB 5020:IF IN$=""THEN 10160
10170 IN$=CHR$(KR)
10180 IF IN$="n"OR IN$="N"THEN 1050
10190 IF IN$<>"j"AND IN$<>"J"THEN 10160
10200 GOSUB 100:GOSUB 20020:GOSUB 100:GI=25:GOTO 1220
10210 GOTO 1050:REM PROGRAMMASTART
10220 :
11000 :REM SR WACHT TOT IN$
11010 :
11020 FOR I=1 TO 100
11030 GOSUB 200:IF IN$<>""THEN I=100
11040 NEXT I
11050 RETURN
11060 :
20000 :REM SR UITLEG
20010 :
20020 RESTORE:CO=1
20030 GOSUB 4020:REM FLUSH BUFFER
20040 READ P$
20050 IF P$="*"THEN FOR I=1 TO 1000:NEXT I:GOSUB 100:GOTO 20040
20060 GOSUB 200:IF IN$=""THEN 20080
20070 RETURN
20080 IF P$<>"$"THEN 20140
20090 FOR I=1 TO 800:NEXT I
20100 GOSUB 8020:REM PRINT SCHEMA
20110 GI=91:GOSUB 3000:REM VUL HET
20120 FOR I=1 TO 2000:NEXT I
20130 GOTO 20040
20140 IF P$="#"THEN RETURN
20150 FOR I=1 TO LEN(P$)
20160 T$=MID$(P$,I,1)
20170 IF T$="&"THEN PRINT:GOTO 20210
20180 IF T$="*"THEN GOSUB 120:GOTO 20210
20190 IF T$="="THEN GOSUB 110:GOTO 20210
20200 :PRINT T$;
20210 :FOR II=1 TO TF:NEXT II
20220 NEXT I
20230 FOR II=1 TO 200:NEXT II:PRINT:GOTO 20040
20240 :
30000 DATA" D E L E R S "
30010 DATA"&&Een spel voor twee personen."
30020 DATA"&De speler die aan de beurt is mag een"
30030 DATA"getal kiezen uit het schema."
30040 DATA"&&Maar je hebt het spel nog niet gespeeld"
30050 DATA"dus ik kan je beter het schema eens"
30060 DATA"laten zien ..."
30070 DATA"&&Een ogenblikje,"
30080 DATA"$" :REM SCHEMA
30090 DATA"*"
30100 DATA"&&Gezien ?"
30110 DATA"&Je zag in het schema dus alle getallen"
30120 DATA"van 2 tot 91."
30130 DATA"&De speler die aan de beurt is mag een"
30140 DATA"getal kiezen uit het schema."
30150 DATA"&En krijgt dan net zoveel punten als dat"
30160 DATA"getal is,"
30170 DATA"&&&&&Dus als hij 60 kiest krijgt hij ook 60"
30180 DATA"punten."
30190 DATA"&&Maar....."
30200 DATA"*"
30210 DATA"Het is nog wat ingewikkelder."
30220 DATA"&Als je bijvoorbeeld het getal 60 kiest,"
30230 DATA"&dan heb ik al snel uitgezocht dat 60"
30240 DATA"een aantal delers heeft,"
30250 DATA"&Namelijk: 2, 3, 4, 5, 6, 10, 12, 15,"
30260 DATA"20 en 30"
30270 DATA"&Opgeteld is dat 107."
30280 DATA"&Dat betekent dan dat de andere speler"
30290 DATA"107 punten er bij krijgt."
30300 DATA"*"
30310 DATA"Dan is er nog iets...."
30320 DATA"&&Terwijl je aan het denken bent welk"
30330 DATA"getal je zult kiezen, "
30340 DATA"tikt de tijd verder. "
30350 DATA"Elke seconde een seconde erbij..... "
30360 DATA"& *1"," =2"," =3"," =4"
30370 DATA" =5"," =6"," =7"," =8"
30380 DATA" = "
30390 DATA"&&Je ziet de tijd dus in het beeld."
30400 DATA"Elke seconde denktijd levert eveneens "
30410 DATA"een punt voor de ander op."
30420 DATA" "
30430 DATA"*"
30440 DATA"Samengevat:"
30450 DATA"&Wie aan de beurt is krijgt als punten"
30460 DATA"het gekozen getal, "
30470 DATA"&&de ander krijgt als punten het aantal"
30480 DATA"seconden bedenktijd, "
30490 DATA"&plus de som van alle delers in het"
30500 DATA"gekozen getal. "
30510 DATA"&Maar dat geldt alleen voor de delers"
30520 DATA"die nog in het schema staan :"
30521 REM 10020-10050 EVEN AAN ?
30522 REM MIJNE, PAST U DAN REGELS
30523 REM OF LANGZAMER LOOPT DAN DE
30524 REM ALS UW COMPUTER SNELLER
30525 REM
30526 REM AANGEPAST VOOR BASICODE-2
30527 REM DEZE VERSIE DD. 821227
30528 REM
30529 REM EINDHOVEN
30530 REM J. HAUBRICH
30531 REM
30532 REM EEN PROGRAMMA VAN:
30533 REM
30534 REM D E L E R S
30535 REM
30536 REM ORIGINELE VERSIE DD 820127
30540 DATA"&zodra een getal is gekozen of als deler"
30550 DATA"is weggegeven, verdwijnt het. "
30560 DATA"*"
30570 DATA"Ja, en dan nog iets."
30580 DATA" "
30590 DATA"&Af en toe moet je een getal aan mij","opgeven,"
30600 DATA"dat doe je door de cijfers een voor een"
30610 DATA"aan te tikken,"
30620 DATA" "
30630 DATA"en na het laatste cijfer op de <RETURN>"
30640 DATA"toets te drukken."
30650 DATA" "
30660 DATA"Als je wat moet intikken, dan geef ik"
30670 DATA"dat aan als volgt:"
30680 DATA"& *x"
30690 DATA"=o","=x","=o","=x","=o","=x"
30700 DATA"=o","=x","=o","=x","=o","=x"
30710 DATA" =x"
30720 DATA"= "
30730 DATA"Gesnapt ? "
30740 DATA"&als het teken knippert dan wacht ik"
30750 DATA"totdat je een toets aanraakt."
30760 DATA"&&Vergeet niet, als laatste op de"
30770 DATA" <RETURN> toets te drukken."
30780 DATA"*"
30790 DATA"Waarschijnlijk is het nog niet allemaal"
30800 DATA"helemaal duidelijk, maar dat geeft niet."
30810 DATA"&&&&Als dat nodig is help ik je wel."
30820 DATA"&&&We zullen maar gewoon beginnen."
30830 DATA" "
30840 DATA"#" :REM EINDE DATA
30850 DATA"%"
30860 :