-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathLINGO.BAS
More file actions
609 lines (609 loc) · 21.1 KB
/
Copy pathLINGO.BAS
File metadata and controls
609 lines (609 loc) · 21.1 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
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
10 GOTO 1000:REM Basicode-2 subroutines
20 CLEAR:IN$=" ":SR=0:SR$="":CT=0:CN=0:OHT%=80:OVT%=24
22 KEY OFF:SCREEN 0:WIDTH OHT%:COLOR 7,0,0:CLS:RANDOMIZE TIMER*100
29 GOTO 1010
100 CLS:RETURN
110 GOSUB 111:LOCATE OVE%+1,OHO%+1:RETURN
111 OVE%=INT(VE):OHO%=INT(HO)
112 IF OVE%<0 THEN OVE%=0 ELSE IF OVE%>=OVT% THEN OVE%=OVT%-1
113 IF OHO%<0 THEN OHO%=0 ELSE IF OHO%>=OHT% THEN OHO%=OHT%-1
114 RETURN
120 HO=POS(0)-1:VE=CSRLIN-1:RETURN
200 IN$=INKEY$:RETURN
210 IN$=INPUT$(1):RETURN
250 BEEP:RETURN
260 RV=RND:RETURN
270 FR=FRE(""):RETURN
300 SR$=MID$(STR$(ABS(SR)),2):IF LEFT$(SR$,1)="." THEN SR$="0"+SR$
301 IF SR<0 THEN SR$="-"+SR$
302 RETURN
310 O#=ABS(SR)+.5*10^-CN:O!=INT(O#):O#=1+O#-O!:O$=""
311 IF CN THEN O$="."+STRING$(CN,48):IF O#>1 THEN MID$(O$,1)=MID$(STR$(O#),3)
312 O$=MID$(STR$(O!),2)+O$:IF VAL(O$)>0 AND SR<0 THEN O$="-"+O$
313 IF LEN(O$)<=CT THEN SR$=SPACE$(CT-LEN(O$))+O$:RETURN
314 SR$=STRING$(CT,42):RETURN
350 LPRINT SR$;:RETURN
360 LPRINT:RETURN
1000 A=400:GOTO 20:REM LINGO
1010 GOSUB 20000:REM SCHERM METEN
1020 DIM L$(5),C(5),LK(2,25),B$(5),N$(2),SC(2)
1030 A1=ASC("a"):Z1=ASC("z"):A2=ASC("A"):Z2=ASC("Z")
1040 W$="":FOR W=1 TO HP:W$=W$+" ":NEXT W
1050 SC(1)=0:SC(2)=0:LI$=" L I N G O":BT=300
1060 GOSUB 20400:REM WOORDEN TELLEN
1070 REM SCHRIJF LINGO
1080 S$="2222218655555542225542224551124553212456"
1090 S$=S$+"56542112212456":GOSUB 22340
1100 VE=VP-6
1110 T$="De computer versie":GOSUB 20060
1120 T$="naar het bekende tv-spel"
1130 VE=VE+1:GOSUB 20060
1140 EW=VE-1:S=0:SP=0
1150 GOSUB 21190:GOSUB 20170
1160 T$="Wilt U de uitleg zien?":VE=VP-5:GOSUB 20060
1170 GOSUB 20110
1180 IF(IN$<>"j") AND(IN$<>"n") THEN 1170
1190 IF IN$="j" THEN GOSUB 21300
1200 REM AANTAL SPELERS
1210 T$="(1) of (2) speler(s) ?":VE=VP-5:GOSUB 20060
1220 GOSUB 210:S=VAL(IN$)
1230 IF(S<1) OR(S>2) THEN 1220
1240 REM VRAAG NAMEN
1250 FOR D=1 TO S
1260 GOSUB 100:HO=4:VE=8:GOSUB 110
1270 SR=D:GOSUB 300
1280 PRINT"Naam speler ";SR$;:INPUT N$(D)
1290 IF LEN(N$(D))>10 THEN N$(D)=LEFT$(N$(D),10)
1300 NEXT D:IF S=1 THEN N$(2)="Computer"
1310 REM WIS-TOETS
1320 T$="Druk op de DELETE-toets":VE=12:GOSUB 20060
1330 GOSUB 210:WI=ASC(IN$)
1340 REM LINGO-KAART
1350 GOSUB 21050:REM CLR
1360 FOR H=1 TO 2:SP=H:IF H=2 THEN GOSUB 20220
1370 T$=N$(H):VE=3:GOSUB 20060
1380 T$="Momentje, a.u.b.":VE=17:GOSUB 20060
1390 FOR J=1 TO 25:LK(H,J)=0
1400 GOSUB 260:RN=INT(RV*70)+1
1410 TT=0:FOR V=1 TO J:IF RN=LK(H,V) THEN TT=1:V=J
1420 NEXT V:IF TT=1 THEN 1400
1430 IF(H=1) AND(INT(RN/2)<(RN/2)) THEN 1460
1440 IF(H=2) AND(INT(RN/2)=(RN/2)) THEN 1460
1450 GOTO 1400
1460 LK(H,J)=RN:NEXT J
1470 T$="Hier is de lingo-kaart":VE=17:GOSUB 20060
1480 GOSUB 20940
1490 FOR VT=1 TO 500:NEXT VT
1500 T$="Er worden 8 getallen weggestreept"
1510 VE=17:GOSUB 20060
1520 FOR N=1 TO 8
1530 GOSUB 260:WS=INT(RV*25)+1
1540 IF LK(H,WS)>100 THEN 1530
1550 WY=INT((WS-1)/5):WX=WS-WY*5
1560 WW=0:FOR C1=1 TO 5
1570 IF LK(H,WY*5+C1)>100 THEN WW=WW+1
1580 NEXT C1:IF WW=2 THEN 1530
1590 WW=0:FOR C1=1 TO 5
1600 IF LK(H,WX+(C1-1)*5)>100 THEN WW=WW+1
1610 NEXT C1:IF WW=2 THEN 1530
1620 IF WX=WY+1 THEN 1650
1630 IF WX=5-WY THEN 1690
1640 GOTO 1720
1650 WW=0:FOR C1=1 TO 5
1660 IF LK(H,(C1-1)*5+C1)>100 THEN WW=WW+1
1670 NEXT C1:IF WW=2 THEN 1530
1680 IF WS<>13 THEN 1720
1690 WW=0:FOR C1=1 TO 5
1700 IF LK(H,(C1-1)*5+(6-C1))>100 THEN WW=WW+1
1710 NEXT C1:IF WW=2 THEN 1530
1720 LK(H,WS)=LK(H,WS)+100
1730 HO=HW+(WS-1-INT((WS-1)/5)*5)*3
1740 VE=6+INT((WS-1)/5)*2:GOSUB 110:PRINT"**"
1750 FOR VT=1 TO 100:NEXT VT:NEXT N
1760 GOSUB 21190
1770 NEXT H:SP=1
1780 T$=N$(SP):VE=3:GOSUB 20060
1790 EW=16:GOSUB 20170
1800 GOSUB 20220:GOSUB 22220
1810 GOSUB 20310:REM WOORD ZOEKEN
1820 KA=0:B=1:GOSUB 21190
1830 REM WOORD RADEN
1840 VR=5+(B-1)*2
1850 FOR D=1 TO 5
1860 HO=HW+3*(D-1):VE=VR:GOSUB 110
1870 IF L$(D)="" THEN PRINT".":GOTO 1890
1880 LI=ASC(L$(D)):PRINT CHR$(LI+A2-A1)
1890 NEXT D
1900 IF(S=1) AND(SP=2) THEN GOSUB 20730:GOTO 1960
1910 T$="Tijd loopt, typ woord in..."
1920 VE=17:GOSUB 20060
1930 GOSUB 20520
1940 EW=16:GOSUB 20170
1950 IF TV=1 THEN 2200
1960 BV=0:REM VARIABELE VOOR MINI-SUBR.
1970 FOR CL=1 TO 5:C(CL)=0:NEXT CL
1980 REM WOORD CONTROLEREN
1990 REM OP GOEDE LETTERS
2000 FOR CO=1 TO 5
2010 D$=MID$(WO$,CO,1)
2030 DW$=MID$(I$,CO,1)
2040 IF DW$=D$ THEN C(CO)=2:L$(CO)=D$:GOTO 2100
2050 CM=1
2060 DW$=MID$(I$,CM,1)
2070 IF(DW$=D$) AND(C(CM)=0) THEN C(CM)=1:GOTO 2100
2080 CM=CM+1:IF CM<6 THEN 2060
2100 NEXT CO
2110 FOR CO=1 TO 5
2120 HO=HW+(CO-1)*3:VE=VR+1:GOSUB 110
2130 IF C(CO)=1 THEN PRINT"++"
2140 IF C(CO)=2 THEN PRINT"**"
2150 NEXT CO
2160 IF BV=1 THEN 2340
2170 IF I$=WO$ THEN 2570
2180 B$(B)=I$
2190 B=B+1:IF B<6 THEN 1830
2200 REM BEURT VOORBIJ
2210 T$="Helaas, uw beurt is voorbij"
2220 VE=17:GOSUB 20060:GOSUB 21190
2230 SP=ABS(SP-3)
2240 KA=KA+1:IF KA=3 THEN 2480
2250 IF TV=1 THEN 2360
2260 GOSUB 20220
2270 Q=1
2280 B$(Q)=B$(Q+1)
2290 FOR D=1 TO 5
2300 HO=HW+(D-1)*3:VE=5+(Q-1)*2:GOSUB 110
2310 DP=ASC(MID$(B$(Q),D,1)):PRINT CHR$(DP+A2-A1)
2320 NEXT D:BV=1
2330 I$=B$(Q):VR=VE:GOTO 1970
2340 Q=Q+1:IF Q<5 THEN 2280
2350 BV=0:B$(5)="":B=B-1:VR=13
2360 T$=N$(SP):VE=3:GOSUB 20060
2370 HO=HW:VE=VR:GOSUB 110:PRINT". :. :. :. :. :"
2372 LE=0:FOR L=1 TO 5
2374 IF L$(L)<>"" THEN LE=LE+1
2376 NEXT L:IF LE=4 THEN 1830
2380 T$="BONUS-LETTER":VE=17:GOSUB 20060
2390 U=0:FOR L=1 TO 5:IF L$(L)="" THEN U=L:L=5
2400 NEXT L:IF U=0 THEN U=2
2410 G=ASC(MID$(WO$,U,1)):L$(U)=CHR$(G)
2420 FOR V=1 TO 6
2430 HO=HW+(U-1)*3:VE=5+(B-1)*2:GOSUB 110
2440 IF INT(V/2)<V/2 THEN PRINT"*":GOTO 2460
2450 PRINT CHR$(G+A2-A1)
2460 FOR VT=1 TO 200:NEXT VT:NEXT V
2470 GOTO 1830
2480 REM TOON WOORD
2490 IF S=1 THEN GOSUB 21190
2500 FOR D=0 TO 4
2510 WG=ASC(MID$(WO$,D+1,1))
2520 HO=HW+D*3:VE=VR:GOSUB 110
2530 PRINT CHR$(WG+A2-A1)
2540 NEXT D
2550 T$="Dit was het woord...":VE=17:GOSUB 20060
2560 T=S:S=0:GOSUB 21190:S=T:GOTO 1780
2570 REM LINGO (WOORD GERADEN)
2580 VE=VR+1:Y=1
2590 FOR A=0 TO 13
2600 HO=HW+A:GOSUB 110:PRINT"-":NEXT A
2610 FOR A=0 TO 13
2620 HO=HW+A:GOSUB 110:PRINT"*":NEXT A
2630 Y=Y+1:IF Y<5 THEN 2590
2640 SC(SP)=SC(SP)+50:GOSUB 22220
2650 IF SC(SP)>=500 THEN 3330
2660 REM TWEE BALLEN KIEZEN
2670 GOSUB 20940
2680 EW=16:GOSUB 20170
2690 T$="Er worden twee ballen gekozen"
2700 VE=16:GOSUB 20060:TM=1
2710 FOR BA=1 TO 10
2720 GOSUB 260:BE=INT(RV*28)+1
2730 IF BE>25 THEN T$="RODE BAL":GOTO 2770
2740 IF LK(SP,BE)>100 THEN 2720
2750 SR=LK(SP,BE):GOSUB 300
2760 T$="BAL NUMMER "+SR$
2770 VE=18:GOSUB 20060
2780 NEXT BA
2790 IF BE>25 THEN SP=ABS(SP-3):GOTO 3080
2800 LK(SP,BE)=LK(SP,BE)+100:BE=BE-1
2810 HO=HW+(BE-INT(BE/5)*5)*3
2820 VE=6+INT(BE/5)*2:GOSUB 110:PRINT"**"
2830 FOR VT=1 TO 750:NEXT VT
2840 REM VIJF OP EEN RIJ?
2850 RI=1:VF=0
2860 VV=1
2870 IF LK(SP,VF*5+VV)<100 THEN 2900
2880 VV=VV+1:IF VV<6 THEN 2870
2890 VR=VF:GOTO 3100
2900 VF=VF+1:IF VF<5 THEN 2860
2910 RI=2:VF=1
2920 VV=0
2930 IF LK(SP,VF+VV*5)<100 THEN 2960
2940 VV=VV+1:IF VV<5 THEN 2930
2950 VR=VF-1:GOTO 3100
2960 VF=VF+1:IF VF<6 THEN 2920
2970 RI=3:VF=0
2980 IF LK(SP,VF*6+1)<100 THEN 3010
2990 VF=VF+1:IF VF<5 THEN 2980
3000 GOTO 3100
3010 RI=4:VF=0
3020 IF LK(SP,VF*4+5)<100 THEN 3050
3030 VF=VF+1:IF VF<5 THEN 3020
3040 GOTO 3100
3050 TM=TM+1:IF TM<3 THEN 2710
3060 EW=16:GOSUB 20170
3070 GOTO 1780
3080 T$="Helaas, Uw beurt is voorbij":VE=16:GOSUB 20060
3090 FOR VT=1 TO 1000:NEXT VT:GOTO 3060
3100 REM LINGO AANWIJZEN
3110 FOR Y=1 TO 6
3120 FOR VT=1 TO 250:NEXT VT
3130 FOR X=0 TO 4
3140 ON RI GOSUB 3250,3270,3290,3310
3150 GOSUB 110
3160 IF INT(Y/2)<Y/2 THEN PRINT"**":GOTO 3180
3170 PRINT MID$(LI$,X*2+1,2)
3180 NEXT X:NEXT Y
3190 SC(SP)=SC(SP)+100:GOSUB 22220
3195 IF SC(SP)>=500 THEN 3330
3200 EW=16:GOSUB 20170
3210 T$="Er worden weer nieuwe":VE=17:GOSUB 20060
3220 T$="Lingo-kaarten gemaakt":VE=18:GOSUB 20060
3230 FOR VT=1 TO 1000:NEXT VT
3240 GOTO 1350
3250 REM HORIZONTAAL LINGO
3260 HO=HW+X*3:VE=5+VR*2:RETURN
3270 REM VERTICAAL LINGO
3280 HO=HW+VR*3:VE=5+X*2:RETURN
3290 REM SCHUIN 1 LINGO
3300 HO=HW+X*3:VE=5+X*2:RETURN
3310 REM SCHUIN 2 LINGO
3320 HO=HW+X*3:VE=5+(4-X)*2:RETURN
3330 REM EINDE VAN HET SPEL
3340 GOSUB 21190
3350 S$="22333187655433222155542221555511224555"
3360 S$=S$+"3231123311155555557733322333187655433"
3370 GOSUB 22340
3380 IF(S=1) AND(SP=2) THEN 3510
3390 T$=N$(SP)+" heeft gewonnen!!"
3400 VE=INT((VP-E)/2)+6:GOSUB 20060
3410 SR=SC(SP):GOSUB 300
3420 T$="Met "+SR$+" punten!":VE=VE+1:GOSUB 20060
3430 T$="Nog een spel ? (J/N)":VE=VE+2:GOSUB 20060
3440 GOSUB 20110:IF(IN$<>"j") AND(IN$<>"n") THEN 3440
3450 IF IN$="n" THEN GOSUB 100:END
3460 EW=1:GOSUB 20170:SC(1)=0:SC(2)=0
3470 T$="Dezelfde spelers ? (J/N)":VE=5:GOSUB 20060
3480 GOSUB 20110:IF(IN$<>"j") AND(IN$<>"n") THEN 3480
3490 IF IN$="n" THEN 1070
3500 GOTO 1340
3510 T$="Ik heb gewonnen!!":GOTO 3400
20000 GOSUB 100
20010 I=0:J=I:VE=I:IP=64:JP=IP:FOR A=1 TO 7
20020 I=I+IP:HO=I:GOSUB 110:GOSUB 120:IF HO<>I THEN I=I-IP
20030 J=J+JP:VE=J:GOSUB 110:GOSUB 120:IF VE<>J THEN J=J-JP
20040 IP=IP/2:JP=JP/2:NEXT A:HP=I+1:VP=J+1
20050 RETURN
20060 REM CENTREREN
20070 M=INT((HP-LEN(T$))/2)-2
20080 HO=2:GOSUB 110
20090 T$=LEFT$(W$,M)+T$+LEFT$(W$,M)
20100 PRINT T$:RETURN
20110 REM WACHT OP TOETS
20120 GOSUB 210
20130 IN=ASC(IN$)
20140 IF(IN<A2) OR(IN>Z2) THEN RETURN
20150 IN$=CHR$(IN-A2+A1)
20160 RETURN
20170 REM SCHOONMAKEN LINGO-SCHERM
20180 FOR W=EW TO VP-3
20190 HO=1:VE=W:GOSUB 110:PRINT LEFT$(W$,HP-3)
20200 NEXT W
20210 RETURN
20220 REM SPEELKAART OPBOUWEN
20230 VE=4:FOR K=1 TO 5
20240 HO=INT((HP-16)/2):GOSUB 110
20250 PRINT"----------------"
20260 VE=VE+1:GOSUB 110:PRINT": : : : : :"
20270 VE=VE+1:NEXT K
20280 GOSUB 110:PRINT"----------------"
20290 HW=HO+1
20300 RETURN
20310 REM WOORD ZOEKEN
20320 RESTORE
20330 GOSUB 260
20340 WN=INT(RV*AW)+1
20350 IF WN>1 THEN FOR R=1 TO WN-1:READ A$:NEXT R
20360 READ WO$
20370 FOR D=1 TO 5:L$(D)="":NEXT D:REM CLR
20380 L$(1)=LEFT$(WO$,1)
20390 RETURN
20400 REM AANTAL WOORDEN TELLEN
20410 RESTORE
20420 T$="Moment":VE=3:GOSUB 20060
20430 T$="Ik tel het aantal woorden":VE=5:GOSUB 20060
20440 AW=0
20450 READ A$:IF LEN(A$)<>5 THEN 20480
20460 IF A$="$$$$$" THEN RETURN
20470 AW=AW+1:GOTO 20450
20480 GOSUB 100
20490 HO=0:VE=2:GOSUB 110
20500 PRINT"Woord van onjuiste lengte in data!"
20510 END
20520 REM TIJD OP 0 + INPUT WOORD
20530 TV=0:TD=0:AL=0:I$=""
20540 GOSUB 200:IF LEN(IN$)>0 THEN 20570
20550 TD=TD+1:IF TD>BT THEN TV=1:RETURN
20560 GOTO 20540
20570 GOSUB 20130
20580 IF IN$=CHR$(WI) THEN 20670
20590 IF IN$=CHR$(13) THEN 20710
20600 IF(IN$<"a") OR(IN$>"z") THEN 20660
20610 IF(AL=0) AND(IN$<>L$(1)) THEN 20660
20620 AL=AL+1:IF AL>5 THEN AL=5:GOTO 20660
20630 I$=I$+IN$
20640 HO=HW+(AL-1)*3:VE=VR:GOSUB 110
20650 IN=ASC(IN$):PRINT CHR$(IN+A2-A1)
20660 TD=TD+10:GOTO 20540
20670 AL=AL-1:IF AL<1 THEN AL=0:I$="":GOTO 20690
20680 I$=LEFT$(I$,AL)
20690 HO=HW+AL*3:VE=VR:GOSUB 110:PRINT"."
20700 GOTO 20660
20710 IF AL<5 THEN 20660
20720 RETURN
20730 REM COMPUTER
20740 T$="Computer":VE=3:GOSUB 20060
20750 TV=0:T$="Even denken...":VE=17:GOSUB 20060
20760 RESTORE
20770 READ A$
20780 IF LEFT$(A$,1)=L$(1) THEN 20800
20790 GOTO 20770
20800 G=0:FOR F=1 TO B:IF A$=B$(F) THEN G=1:F=B
20810 NEXT F:IF G=1 THEN 20770
20820 G=0:FOR F=2 TO 5
20830 IF L$(F)="" THEN 20850
20840 IF MID$(A$,F,1)<>L$(F) THEN F=5:G=1
20850 NEXT F:IF G=1 THEN 20770
20860 I$=A$:EW=16:GOSUB 20170
20870 FOR A=1 TO 5
20880 HO=HW+(A-1)*3:VE=VR:GOSUB 110
20890 I=ASC(MID$(I$,A,1))
20900 FOR VT=1 TO 100:NEXT VT
20910 PRINT CHR$(I+A2-A1)
20920 NEXT A
20930 RETURN
20940 REM TOON LINGO-KAART SPELER SP
20950 GOSUB 20220
20960 FOR Y=1 TO 5:FOR X=1 TO 5
20970 HO=HW+(X-1)*3:VE=5+(Y-1)*2:GOSUB 110
20980 SR=LK(SP,(Y-1)*5+X)
20990 AK=0:IF SR>100 THEN SR=SR-100:AK=1
21000 GOSUB 300:IF LEN(SR$)=1 THEN SR$=" "+SR$
21010 PRINT SR$
21020 IF AK=1 THEN VE=VE+1:GOSUB 110:PRINT"**"
21030 NEXT X:NEXT Y
21040 RETURN
21050 REM CLR SCREEN + KADERS
21060 GOSUB 100
21070 HO=0:VE=0:GOSUB 110
21080 FOR A=0 TO HP-1:PRINT"*";:NEXT A
21090 FOR A=0 TO VP-2
21100 HO=HP-1:VE=A:GOSUB 110:PRINT"*";
21110 NEXT A
21120 FOR A=HP-1 TO 0 STEP-1
21130 HO=A:VE=VP-2:GOSUB 110
21140 PRINT"*";:NEXT A
21150 FOR A=VP-2 TO 0 STEP-1
21160 HO=0:VE=A:GOSUB 110
21170 PRINT"*":NEXT A
21180 RETURN
21190 REM WACHT OP TOETS
21200 FOR VT=1 TO 100:NEXT VT
21210 HO=HP-10:VE=VP-3:GOSUB 110
21220 PRINT"toets ->";
21230 GOSUB 200
21240 FOR VT=1 TO 250:NEXT VT
21250 HO=HP-10:VE=VP-3:GOSUB 110
21260 PRINT" ";
21270 IF(S=1) AND(SP=2) THEN 21290
21280 IF IN$="" THEN 21200
21290 RETURN
21300 REM UITLEG
21310 GOSUB 100
21320 T$="LINGO":VE=1:GOSUB 20060:PRINT
21330 PRINT"Dit spelletje kent u wellicht van de"
21340 PRINT"t.v., indien dit niet het geval is"
21350 PRINT"volgt hier een beknopte uitleg."
21360 PRINT
21370 PRINT"U krijgt een lingo-kaart, hierop"
21380 PRINT"staan getallen die zijn gekozen van"
21390 PRINT"1 tot en met 70. In het begin van"
21400 PRINT"dit spel worden er alvast 8 getallen"
21410 PRINT"doorgestreept, d.w.z. er komt onder"
21420 PRINT"de getallen '**' te staan. In de"
21430 PRINT"loop van het spel worden er steeds"
21440 PRINT"getallen weggestreept, wanneer u een"
21450 PRINT"woord heeft geraden."
21460 PRINT"Als er 5 getallen op een rij zijn"
21470 PRINT"weggestreept heeft u LINGO!"
21480 GOSUB 21190:GOSUB 100
21490 T$="WOORD RADEN":VE=1:GOSUB 20060
21500 GOSUB 20220
21510 HO=HW+1:VE=5:GOSUB 110
21520 PRINT"G: .: .: .: .:"
21530 HO=0:VE=16:GOSUB 110
21540 PRINT" De 1e letter van het woord is een"
21550 PRINT" 'G'. U denkt dat het woord GENOT is"
21560 PRINT" en u tikt dit in...."
21570 GOSUB 21190
21580 HO=HW:VE=5:GOSUB 110
21590 PRINT"G :E :N :O :T :"
21600 VE=VE+1:GOSUB 110:PRINT"**-**--------"
21610 VE=VE+1:GOSUB 110:PRINT"G :E :. :. :."
21620 EW=16:GOSUB 20170
21630 HO=0:VE=16:GOSUB 110
21640 PRINT" '**' onder de G en de E betekent"
21650 PRINT" dat deze letters in het woord EN"
21660 PRINT" op de goede plaats staan..."
21670 GOSUB 21190:EW=16:GOSUB 20170
21680 HO=0:VE=16:GOSUB 110
21690 PRINT" U probeert het woord 'GEVAL'..."
21700 GOSUB 21190
21710 HO=HW:VE=7:GOSUB 110
21720 PRINT"G :E :V :A :L :"
21730 VE=VE+1:GOSUB 110:PRINT"**-**-------++"
21740 VE=VE+1:GOSUB 110:PRINT"G :E :. :. :. :"
21750 EW=16:GOSUB 20170
21760 HO=0:VE=16:GOSUB 110
21770 PRINT" '++' onder de L betekent dat de"
21780 PRINT" L wel in het woord staat maar niet"
21790 PRINT" op de juiste plaats..."
21800 GOSUB 21190:EW=16:GOSUB 20170
21810 HO=0:VE=16:GOSUB 110
21820 PRINT" U probeert het nog eens met 'GELUK'"
21830 GOSUB 21190:EW=16:GOSUB 20170
21840 HO=HW:VE=9:GOSUB 110
21850 PRINT"G :E :L :U :K :"
21860 VE=VE+1:GOSUB 110:PRINT"**-**-**-**-**"
21870 HO=0:VE=16:GOSUB 110
21880 PRINT" Dit blijkt het juiste woord te zijn."
21890 GOSUB 21190:GOSUB 100
21900 T$="WOORD NIET GERADEN":VE=2:GOSUB 20060
21910 HO=0:VE=4:GOSUB 110
21920 PRINT"Wanneer een woord niet wordt geraden"
21930 PRINT"krijgt de andere speler nog een kans."
21940 PRINT"Er komt dan ook een BONUS-letter bij."
21950 PRINT"Als het woord dan nog niet wordt"
21960 PRINT"geraden, gaat de beurt weer terug"
21970 PRINT"naar de vorige speler, die de laatste"
21980 PRINT"kans krijgt om het woord te raden."
21990 GOSUB 21190:GOSUB 100
22000 T$="COMPUTER":VE=2:GOSUB 20060
22010 HO=0:VE=4:GOSUB 110
22020 PRINT"Indien U alleen speelt, speelt U tegen"
22030 PRINT"de computer. De computer zoekt bij"
22040 PRINT"het raden van een woord, die woorden"
22050 PRINT"in de data-regels op, waarvan de"
22060 PRINT"letters overeenkomen met de gegeven"
22070 PRINT"letters. Hierdoor is de computer soms"
22080 PRINT"sneller, en soms langzamer dan U."
22090 GOSUB 21190:GOSUB 100
22100 T$="BEDENKTIJD":VE=2:GOSUB 20060
22110 HO=0:VE=5:GOSUB 110
22120 PRINT"De variabele voor de bedenktijd staat"
22130 PRINT"in regel 1050 (BT). U kunt deze"
22140 PRINT"dus zelf instellen. Wanneer de"
22150 PRINT"computer aan de beurt is geldt er"
22160 PRINT"geen bedenktijd."
22170 T$="WINNAAR":VE=11:GOSUB 20060
22180 HO=0:VE=13:GOSUB 110
22190 PRINT"Dit is degene die het eerst 500 punten"
22200 PRINT"weet te behalen..."
22210 GOSUB 21190:RETURN
22220 REM TOON SCORES TEAMS
22230 FOR Z=0 TO 1
22240 HO=INT((HP-16)/2)-6+22*Z:VE=10:GOSUB 110
22250 PRINT":----:":SR=Z+1:GOSUB 300
22260 VE=VE+1:GOSUB 110:PRINT":TEAM:"
22270 VE=VE+1:GOSUB 110:PRINT": ";SR$;" :"
22280 SR=SC(Z+1):GOSUB 300
22290 VE=VE+1:GOSUB 110
22300 PRINT":";LEFT$(W$,4-LEN(SR$));SR$;":"
22310 VE=VE+1:GOSUB 110:PRINT":----:"
22320 NEXT Z
22330 RETURN
22340 REM SCHRIJF S$
22350 GOSUB 21050:REM CLR + KADERS
22360 T$="Moment...":VE=VP-3:GOSUB 20060
22370 LS=1:C=1:E=1
22380 R=VAL(MID$(S$,LS,1))
22390 IF(R=2) OR(R=3) OR(R=4) THEN C=C+1
22400 IF(R=6) OR(R=7) OR(R=8) THEN C=C-1
22410 IF R=1 THEN E=E-1
22420 IF R=5 THEN E=E+1
22430 LS=LS+1:IF LS<=LEN(S$) THEN 22380
22440 T$=" ":VE=VP-3:GOSUB 20060
22450 HO=INT((HP-C)/2):VE=INT((VP-E)/2)+4:GOSUB 110
22460 PRINT"*"
22470 FOR A=1 TO LEN(S$)
22480 R=VAL(MID$(S$,A,1))
22490 IF(R=8) OR(R=1) OR(R=2) THEN VE=VE-1
22500 IF(R>1) AND(R<5) THEN HO=HO+1
22510 IF(R>3) AND(R<7) THEN VE=VE+1
22520 IF(R>5) AND(R<=8) THEN HO=HO-1
22530 GOSUB 110:PRINT"*";
22540 NEXT A
22550 RETURN
25000 DATA"strop","stoel","plaat","label","snoer","strip"
25010 DATA"cacao","filet","firma","zicht","zegel","uitje"
25020 DATA"album","fiets","motor","stuur","licht","trein"
25030 DATA"flits","brood","lepel","kaars","slang","hamer"
25040 DATA"boter","schip","laken","deken","broek","shirt"
25050 DATA"water","video","vloek","onder","boven","kopie"
25060 DATA"pinda","appel","kamer","wagen","tafel","schol"
25070 DATA"panne","onwel","poker","hoofd","kajak","jarig"
25080 DATA"schop","emmer","asbak","bizar","bingo","vraag"
25090 DATA"stier","kramp","toets","agent","kabel","poort"
25100 DATA"modem","meter","krant","raket","koets","prins"
25110 DATA"tante","einde","begin","maart","april","zeven"
25120 DATA"negen","dwerg","paard","blauw","groen","paars"
25130 DATA"bruin","latyn","hallo","humor","atlas","vogel"
25140 DATA"droom","brief","viool","koper","kubus","kwark"
25150 DATA"snoep","tiran","flauw","rugby","lopen","eerst"
25160 DATA"dwaas","kleed","braaf","vrede","grens","fluit"
25170 DATA"snuit","breed","extra","plens","plant","graaf"
25180 DATA"inval","vloer","animo","bezig","afgod","anker"
25190 DATA"leven","humor","thuis","piano","zoals","vader"
25200 DATA"ernst","groot","sfeer","eland","zucht","geval"
25210 DATA"lingo","geluk","vrouw","reeks","zeven","fruit"
25220 DATA"naast","paard","ouder","viool","eerst","later"
25230 DATA"album","thema","zodat","serie","eigen","jeugd"
25240 DATA"plank","woord","niets","soort","glimp","forel"
25250 DATA"ander","meeuw","zeker","sinds","opzet","order"
25260 DATA"groep","vorig","staan","staat","tekst","vroeg"
25270 DATA"avery","maand","nogal","typen","vraag","alles"
25280 DATA"omdat","kwart","angel","klaar","prima","truuk"
25290 DATA"kabel","blank","beker","offer","alarm","demon"
25300 DATA"breuk","brein","optie","maagd","markt","noord"
25310 DATA"naald","otter","ophef","tempo","spons","orgel"
25320 DATA"uniek","asbak","claim","brand","bloes","cider"
25330 DATA"spaan","haver","draad","aarde","aroma","eiwit"
25340 DATA"feest","clown","dweil","flink","fluor","genre"
25350 DATA"sauna","porto","knoop","pruik","opera","inleg"
25360 DATA"sloep","radar","koers","kerel","enorm","paars"
25370 DATA"peper","alias","adres","beleg","woerd","vrees"
25380 DATA"steeg","oksel","steun","lakei","korst","motie"
25390 DATA"nevel","marge","arena","imker","pater","chaos"
25400 DATA"weven","omweg","beeld","basis","avery","staar"
25410 DATA"steun","trots","ivoor","titel","tabel","grint"
25420 DATA"prent","oever","opdat","prooi","gruis","roest"
25430 DATA"saldo","raket","fraai","hagel","ronde","slank"
25440 DATA"harem","trans","trema","laars","leeuw","nagel"
25450 DATA"alibi","aktie","poema","ovaal","plein","mythe"
25460 DATA"nodig","menig","moker","loket","ketel","kanon"
25470 DATA"godin","geest","graat","loods","getal","benul"
25480 DATA"bende","kater","speld","traan","villa","vlerk"
25490 DATA"stoot","lever","gazon","garen","kliek","knots"
25500 DATA"hinde","jager","bybel","fakir","gnoom","tsaar"
25510 DATA"cyfer","kassa","ether","fabel","dwars","degen"
25520 DATA"sabel","loupe","juist","kraag","geeuw","havik"
25530 DATA"merel","manie","fusie","wagon","woede","zweep"
25540 DATA"zowel","zenuw","wodka","vlaai","zwerm","vuist"
25550 DATA"fauna","coupe","cobra","galei","zwaai","weten"
25560 DATA"anjer","boord","banjo","cocon","index","divan"
25570 DATA"folio","egaal","gewas","galop","fonds","frame"
25580 DATA"$$$$$"
30000 REM*************************
30010 REM* *
30020 REM* -- LINGO -- *
30030 REM* *
30040 REM* IN BASICODE-2 *
30050 REM* *
30060 REM* P.J. VAN DER MESPEL *
30070 REM* ROSSINILAAN 491 *
30080 REM* 2551 MZ DEN HAAG *
30090 REM* *
30100 REM* 18 JUNI 1989 *
30110 REM* *
30120 REM*************************
30130 REM COPYRIGHT NOS HILVERSUM