forked from robhagemans/basicode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path07_Zoek_t_woord.bc2
254 lines (253 loc) · 7.05 KB
/
07_Zoek_t_woord.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
1000 A=500:GOTO20:REM ZOEK HET WOORD
1010 S=1:P=0:KR=0:RR=0
1020 T$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
1030 HT$="abcdefghijklmnopqsrtuvwxyz"
1040 HK=ASC(LEFT$(T$,1))-ASC(LEFT$(HT$,1))
1050 DIMR$(8,8)
1060 GOSUB100
1070 PRINT"Z O E K H E T W O O R D"
1080 PRINT
1090 PRINT"Wilt U instrukties";
1100 INPUTA$:A$=LEFT$(A$,1)
1110 IF(A$="J") OR(A$="j") THENGOSUB2810
1120 GOSUB1230:REM ?MOEILIJKH.
1130 GOSUB1380:REM ZOEK WOORD
1140 GOSUB1480:REM ZOEK PATROON
1150 GOSUB1940:REM DRUK MATRIX
1160 GOSUB2080:REM VRAAG OPLOSS.
1170 IFXO=0 THEN1150
1180 GOSUB2540:REM SCORES
1190 IFXO=0 THEN2700
1200 GOSUB2510:REM SETUP NEXT
1210 GOTO1120:REM NEW GAME
1220 REM VRAAG MOEILIJKHEID EN WOORDLENGTE
1230 PRINT
1240 PRINT"Hoe moeilijk mag het worden"
1250 PRINT"(1 is eenvoudig en 2 moeilijker)";
1260 INPUTM
1270 IFM<1 THEN1230
1280 IFM>2 THEN1230
1290 PRINT
1300 PRINT"Hoe lang mag het woord zijn"
1310 PRINT"(tussen 3 en 7 letters !)";
1320 INPUTL
1330 IFL<3 THEN1290
1340 IFL>7 THEN1290
1350 N=L+1
1360 RETURN
1370 REM ZOEK EEN WOORD V/D JUISTE LENGTE
1380 RESTORE
1390 READA$
1400 IFLEN(A$)<>L THEN1390
1410 GOSUB260:Q=15*RV+1
1420 FORX=1 TOQ:READW$:NEXTX
1430 HW$="":FORI=1 TOL
1440 HW$=HW$+CHR$(HK+ASC(MID$(W$,I,1)))
1450 NEXTI
1460 RETURN
1470 REM EEN 'WOORDPAD' BIJ DE MOEILIJKHEIDSGRAAD
1480 X=0
1490 GOSUB260:R=INT(RV*N+1)
1500 GOSUB260:K=INT(RV*N+1)
1510 IF(R<3) OR(R>N-2) THEN1570
1520 IF(K<3) OR(K>N-2) THEN1570
1530 X=X+1
1540 IFX=20 THENSTOP
1550 REM NA 20 KEER HOUDT HET PROGR. ERMEE OP
1560 GOTO1490
1570 FORX=1 TON
1580 FORY=1 TON
1590 GOSUB260:Q=INT(RV*26+1)
1600 R$(X,Y)=MID$(HT$,Q,1)
1610 NEXTY
1620 NEXTX
1630 REM VUL HET WOORD IN
1640 IFM=2 THEN1820
1650 REM MOEILIJKHEIDSGRAAD 1, HORIZ. OF VERT.
1660 IF(R<3) OR(R>N-2) THEN1750
1670 REM HORIZONTAAL WOORD DUS
1680 IFK<3 THENKR=1
1690 IFK>N-2 THENKR=-1
1700 FORX=1 TOLEN(W$)
1710 R$(K,R)=MID$(W$,X,1)
1720 K=K+KR
1730 NEXTX
1740 RETURN
1750 IFR<3 THENRR=1
1760 IFR>N-2 THENRR=-1
1770 FORX=1 TOLEN(W$)
1780 R$(K,R)=MID$(W$,X,1)
1790 R=R+RR
1800 NEXTX
1810 RETURN
1820 REM MOEILIJKHEIDSGRAAD 2, DIAGONAAL
1830 IFR<3 THENRR=1
1840 IFR>N-2 THENRR=-1
1850 IFK<3 THENKR=1
1860 IFK>N-2 THENKR=-1
1870 FORX=1 TOLEN(W$)
1880 R$(K,R)=MID$(W$,X,1)
1890 K=K+KR
1900 R=R+RR
1910 NEXTX
1920 RETURN
1930 REM AFDRUKGEDEELTE
1940 GOSUB100
1950 PRINT"====================";
1960 PRINT" MOEILH= ";M
1970 FORX=1 TON
1980 PRINT
1990 PRINT" ";
2000 FORY=1 TON:PRINTR$(X,Y);" ";:NEXTY
2010 PRINT
2020 NEXTX
2030 PRINT
2040 PRINT"====================";
2050 PRINT" LENGTE= ";L
2060 RETURN
2070 REM VRAAG DE OPLOSSING
2080 PRINT
2090 PRINT"Wat is het woord";
2100 INPUTA$
2110 P=P+1
2120 IF(A$=W$) OR(A$=HW$) THEN2410
2130 PRINT
2140 PRINT"Dat is NIET het goede woord"
2150 IF(P-2)=L THEN2320
2160 IFP>2 THEN2200
2170 PRINT
2180 PRINT"Nog een keer proberen"
2190 GOTO2270
2200 REM ER IS AL >2 MAAL MISGERADEN
2210 H$=LEFT$(W$,P-2)
2220 PRINT
2230 PRINT"Ik zal wat helpen.":PRINT
2240 IFP>3 THEN2290
2250 PRINT"De eerste letter is ";H$
2260 REM XO=0 BETEKENT FOUTE OPLOSSING
2270 XO=0:FORI=1 TO3000:NEXTI
2280 RETURN
2290 REM MEER DAN 1 LETTER GEVEN
2300 PRINT"De eerste ";P-2;" letters zijn ";H$
2310 GOTO2270
2320 REM NIET OP TIJD GERADEN
2330 PRINT:PRINT"JAMMER, maar het woord is NIET"
2340 PRINT:PRINT"geraden in ";P;" beurten"
2350 FORI=1 TO3000:NEXTI:GOSUB1930
2360 PRINT:PRINT"Het was ";W$
2370 PRINT:PRINT"Verdergaan ";
2380 INPUTA$
2390 XO=-1
2400 RETURN
2410 REM JUISTE OPLOSSING
2420 GOSUB100
2430 PRINT"DAT IS HET GOEDE WOORD !!!"
2440 PRINT
2450 PRINT"en dat met ";P;" poging";
2460 IFP>1 THENPRINT"en."
2470 PRINT
2480 XO=1
2490 RETURN
2500 REM MAAK ALLES KLAAR VOOR VOLGEND SPEL
2510 S=S+1:RR=0:KR=0:P=0
2520 RETURN
2530 REM REL.SCORE, GEM.SCORE EN VOLGEND SPEL?
2540 PRINT
2550 T=T+(L/P)*(L/P)*M
2560 PRINT"De score van dit spel ";(L/P)*(L/P)*M
2570 PRINT"(Maximaal mogelijk was ";L*L*M;")"
2580 PRINT
2590 PRINT"De gemiddelde score tot nu toe over"
2600 PRINT"ALLE spelletjes ";T/S
2610 PRINT
2620 PRINT
2630 PRINT"Nog een spelletje ";
2640 INPUTA$:A$=LEFT$(A$,1)
2650 PRINT
2660 IF(A$="J") OR(A$="j") THENXO=1:RETURN
2670 IF(A$="N") OR(A$="n") THENXO=0:RETURN
2680 PRINT"Type a.u.b. 'JA' of 'NEE'"
2690 GOTO2620
2700 REM AFSCHEID
2710 GOSUB100
2720 PRINT"De EINDSCORE is ";T
2730 PRINT"Het aantal spelletjes ";S
2740 PRINT"De GEMIDDELDE score ";T/S
2750 PRINT
2760 PRINT
2770 PRINT"Ik hoop dat het leuk was"
2780 PRINT
2790 PRINT"EINDE van 'ZOEK HET WOORD'"
2800 END
2810 REM UITLEG
2820 GOSUB100
2830 PRINT"Probeer een woord te vinden in een"
2840 PRINT"vierkant blok met letters."
2850 PRINT"Dat woord kan op verschillende manieren"
2860 PRINT"in dat blok zijn verstopt :"
2870 PRINT
2880 PRINT"HORIZONTAAL of VERTIKAAL"
2890 PRINT" .......... .........."
2900 PRINT" .......... ...w......"
2910 PRINT" .......... ...o......"
2920 PRINT" ..woord... ...o......"
2930 PRINT" .......... ...r......"
2940 PRINT" .......... ...d......"
2950 PRINT
2960 PRINT"of DIAGONAAL (schuin)"
2970 PRINT" ......."
2980 PRINT" .w....."
2990 PRINT" ..o...."
3000 PRINT" ...o..."
3010 PRINT" ....r.."
3020 PRINT" .....d."
3030 PRINT" ......."
3040 PRINT
3050 PRINT"Verdergaan ";
3060 GOSUB210
3070 GOSUB100
3080 PRINT"Door bij de vraag hoe moeilijk"
3090 PRINT"het mag worden, een 1 in te typen,"
3100 PRINT"worden de woorden alleen horizontaal"
3110 PRINT"of vertikaal verstopt."
3120 PRINT"Door een 2 in te toetsen moet soms"
3130 PRINT"een diagonaal (schuin lopend) woord"
3140 PRINT"worden gezocht."
3150 PRINT
3160 PRINT"Als na twee keer raden nog niet het"
3170 PRINT"juiste woord is geraden, gaat de"
3180 PRINT"computer eerst de eerste, daarna de"
3190 PRINT"tweede letter en tenslotte het hele"
3200 PRINT"woord geven."
3210 PRINT"Daarmee gaat natuurlijk wel het totaal"
3220 PRINT"aantal punten naar beneden."
3230 PRINT
3240 PRINT"Verdergaan";
3250 GOSUB210
3260 RETURN
25000 REM DE WOORDEN
25010 DATA "333","een","pop","gok","aal","kas"
25020 DATA "fit","vol","put"
25030 DATA "wit","nog","rit","het","dus","ook","bad"
25040 DATA "4444","vier","loop","kooi","maak","hooi","poes"
25050 DATA "fijn","klap","fris","goed","voor","vaat","hond"
25060 DATA "glas","lamp","deur"
25070 DATA "55555","fries","graat","klaar","tegel","maker"
25080 DATA "spoed","sloep","beest","paard","tafel","stoel"
25090 DATA "slaap","plant","kamer","radio","water"
25100 DATA "666666","yskast","gitaar","minuut","middag"
25110 DATA "kracht","kleren","keuken","kermis","honger"
25120 DATA "haring","gewoon","gevaar","geluid","domkop"
25130 DATA "dertig"
25140 DATA "7777777","noorden","groente","gezicht"
25150 DATA "gesprek","drempel","dochter","zeepsop"
25160 DATA "wanneer","vergiet","stengel","station"
25170 DATA "plezier","optocht","misdaad","meteoor"
30000 REM Z O E K H E T W O O R D
30010 REM
30020 REM IN DE HOBBYSCOOP-BASICODE
30030 REM GEMAAKT DOOR JOS BURGHOUTS
30040 REM OP EEN
30050 REM O.S.I. SUPERBOARD.
30060 REM
30070 REM NU AANGEPAST VOOR BASICODE-2