-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy path29L_Gaia.bc2
More file actions
384 lines (383 loc) · 11.4 KB
/
29L_Gaia.bc2
File metadata and controls
384 lines (383 loc) · 11.4 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
1000 A=100:GOTO20:REM "GAIA"
1010 GOSUB100
1020 HO=10:VE=12:GOSUB110
1030 PRINT"--- EVEN GEDULD ---";
1040 REM
1050 REM
1060 REM *** INITIALISATIE ***
1070 REM
1080 REM
1090 DIMA(19,19),C(19,19)
1100 DIMLT(19,19),B(2),E(2),K$(2),BL(2)
1110 T=20:TA=20:TZ=20
1120 BE=17:BO=21
1130 VG=1
1140 FORI=0 TO2
1150 READB(I),E(I),K$(I):BL(I)=0
1160 NEXTI
1170 FORI=0 TO19
1180 FORJ=0 TO19
1190 A(I,J)=0:C(I,J)=0
1200 LT(I,J)=0
1210 NEXTJ:NEXTI
1220 REM
1230 REM ** NAAR HOOFDMENU **
1240 REM
1250 GOTO2340
1260 REM
1270 REM
1280 REM *** HOOFDPROGRAMMA ***
1290 REM
1300 REM
1310 GOSUB100
1320 HO=23:VE=1:GOSUB110
1330 PRINT" - TOESTAND -"
1340 HO=23:VE=18:GOSUB110
1350 PRINT"DRUK OP 'Q' VOOR"
1360 VE=19:GOSUB110
1370 PRINT"HOOFDMENU"
1380 HO=0:VE=1:GOSUB110:PRINT"+--------------------+"
1390 HO=0:VE=22:GOSUB110:PRINT"+--------------------+"
1400 FORI=2 TO21
1410 HO=0:VE=I:GOSUB110:PRINT"!"
1420 HO=21:VE=I:GOSUB110:PRINT"!"
1430 NEXTI
1440 HO=1:VE=2:GOSUB110
1450 FORI=0 TO19
1460 FORJ=0 TO19
1470 A(I,J)=C(I,J):PRINTK$(A(I,J)+1);
1480 NEXTJ
1490 PRINT
1500 HO=1:VE=I+3:GOSUB110
1510 NEXTI
1520 HO=36:FORI=2 TO12
1530 VE=I:GOSUB110:PRINT" "
1540 NEXTI
1550 SR=VG:GOSUB300
1560 HO=23:VE=3:GOSUB110:PRINT"VEGETATIE :";SR$;
1570 SR=BL(2):GOSUB300
1580 VE=5:GOSUB110:PRINT"AANTAL GEEL :";SR$;
1590 SR=BL(0):GOSUB300
1600 VE=7:GOSUB110:PRINT"AANTAL BLAUW:";SR$;
1610 SR=TZ:CT=4:CN=1:GOSUB310
1620 VE=9:GOSUB110:PRINT"TEMP. ZONDER:";SR$;
1630 SR=TA:CT=4:CN=1:GOSUB310
1640 VE=10:GOSUB110:PRINT" MET BLOEMEN:";SR$;
1650 IF((BL(0)=0) AND(BL(2)=0)) THEN1880
1660 BL(0)=0:BL(1)=0:BL(2)=0
1670 HO=23:VE=14:GOSUB110:PRINT"VEGETATIE BEREKE-"
1680 HO=23:VE=15:GOSUB110:PRINT"NING LOOPT";
1690 HO=32:VE=18:GOSUB110
1700 I=0:J=0
1710 REM
1720 REM ** VEGETATIE BEREKENING **
1730 REM
1740 S=A(I,J):PT=T:TB=0
1750 FORK=-1 TO1
1760 FORL=-1 TO1
1770 R=I+K:C=J+L
1780 IF((I>0) AND(I<19) AND(J>0) AND(J<19)) THEN1830
1790 IFR<0 THENR=19
1800 IFR>19 THENR=0
1810 IFC<0 THENC=19
1820 IFC>19 THENC=0
1830 PT=PT-A(R,C)
1840 TB=TB+ABS(A(R,C))
1850 NEXTL
1860 NEXTK
1870 GOSUB200:GOSUB3940:IFIN$<>"Q" THEN1890
1880 I=19:J=19:GOTO1990
1890 D=0
1900 IF(LT(I,J)=10) OR(TB>5) OR(TB<1) THEN1960
1910 IF(PT>B(S+1)) AND(PT<E(S+1)) THEND=1
1920 IFS<>0 THEN1960
1930 IF(PT>BE) AND(PT<BO) THEND=0
1940 IFD=0 THEN1960
1950 S=1:IFPT<BE THENS=-1
1960 C(I,J)=D*S
1970 LT(I,J)=D*(LT(I,J)+1)
1980 BL(D*S+1)=BL(D*S+1)+1
1990 J=J+1:IFJ<>20 THEN1740
2000 J=0:I=I+1
2010 IFI=20 THEN2060
2020 HO=INT(I/4)+33:VE=15:GOSUB110
2030 PRINT"."
2040 HO=32:VE=18:GOSUB110
2050 GOTO1740
2060 IFIN$="Q" THEN2130
2070 IF((BL(0)<>0) OR(BL(2)<>0)) THEN2220
2080 HO=23:VE=18:GOSUB110:PRINT" "
2090 VE=19:GOSUB110:PRINT"UITGESTORVEN !"
2100 GOSUB250
2110 VE=21:GOSUB110:PRINT"DRUK OP TOETS";
2120 GOSUB210
2130 HO=23:VE=14:GOSUB110:PRINT" "
2140 HO=23:VE=15:GOSUB110:PRINT" "
2150 GOSUB3260
2160 FORI=0 TO19
2170 FORJ=0 TO19
2180 C(I,J)=A(I,J)
2190 NEXTJ
2200 NEXTI
2210 RETURN
2220 HO=23:VE=14:GOSUB110:PRINT" "
2230 HO=23:VE=15:GOSUB110:PRINT" "
2240 T=T+.2+(BL(0)-BL(2))/400
2250 TA=INT(T*10+.5)/10
2260 TZ=INT((TZ+.2)*10+.5)/10
2270 VG=VG+1
2280 GOTO1440
2290 REM
2300 REM
2310 REM *** HOOFDMENU ***
2320 REM
2330 REM
2340 GOSUB100
2350 HO=0:VE=6:GOSUB110
2360 PRINT"*************** - GAIA - **************"
2370 PRINT:PRINT
2380 PRINT"(1) UITLEG"
2390 PRINT
2400 PRINT"(2) EDIT BLOEMETJESVELD"
2410 PRINT
2420 PRINT"(3) START SIMULATIE"
2430 PRINT
2440 PRINT"(4) STOP"
2450 PRINT:PRINT
2460 PRINT"KEUZE:"
2470 HO=6:VE=18:GOSUB110:PRINT" ":GOSUB110
2480 GOSUB210
2490 PRINTIN$
2500 IF((IN$<"1") OR(IN$>"4")) THEN2470
2510 IFIN$="1" THENGOSUB3390:GOTO2310
2520 IFIN$="2" THENGOSUB2630:GOTO2310
2530 IFIN$="3" THENGOSUB1310:GOTO2310
2540 HO=0:VE=18:GOSUB110
2550 PRINT"EINDE PROGRAMMA"
2560 PRINT:PRINT"TOT ZIENS":PRINT
2570 END
2580 REM
2590 REM
2600 REM *** BEGIN VEGETATIE OPZETTEN ***
2610 REM
2620 REM
2630 GOSUB100
2640 RESTORE
2650 FORI=1 TO3
2660 READDU,DU,DU$
2670 NEXTI
2680 FORI=1 TO13
2690 READHO,VE,T$
2700 GOSUB110:PRINTT$
2710 NEXTI
2720 FORI=1 TO20
2730 HO=21:VE=I+1:GOSUB110:PRINT"!"
2740 HO=0:VE=I+1:GOSUB110:PRINT"!"
2750 NEXTI
2760 HO=0:VE=22:GOSUB110:PRINT"+--------------------+"
2770 HO=4:VE=21:GOSUB110:PRINT"-EVEN GEDULD-"
2780 HO=0:VE=1:GOSUB110:PRINT"+--------------------+";
2790 FORI=1 TO20
2800 FORJ=1 TO20
2810 HO=J:VE=I+1:GOSUB110
2820 PRINTK$(C(I-1,J-1)+1)
2830 NEXTJ
2840 NEXTI
2850 GOSUB250
2860 FORI=0 TO2
2870 BL(I)=0
2880 NEXTI
2890 HO=10:VE=11
2900 GOSUB110:GOSUB210:GOSUB3940
2910 IFIN$=CHR$(13) THEN3260
2920 IFIN$="G" THENPRINTK$(2):C(VE-2,HO-1)=1
2930 IFIN$="B" THENPRINTK$(0):C(VE-2,HO-1)=-1
2940 IFIN$="P" THENPRINTK$(1):C(VE-2,HO-1)=0
2950 IFIN$="I" THENVE=VE-1
2960 IFIN$="M" THENVE=VE+1
2970 IFIN$="J" THENHO=HO-1
2980 IFIN$="K" THENHO=HO+1
2990 IFIN$<>"A" THEN3080
3000 FORI=0 TO19
3010 FORJ=0 TO19
3020 C(I,J)=0
3030 NEXTJ
3040 NEXTI
3050 FORI=0 TO2:BL(I)=0:NEXTI
3060 T=20:TA=20:TZ=20:VG=1
3070 GOTO2790
3080 IFIN$<>"Z" THEN3210
3090 VE=22:HO=23:GOSUB110
3100 PRINT"-EVEN GEDULD-";
3110 FORI=0 TO19
3120 FORJ=0 TO19
3130 GOSUB260:RV=INT(RV*10)+1
3140 S=0:IFRV<3 THENS=2*RV-3
3150 C(I,J)=S
3160 NEXTJ
3170 NEXTI
3180 GOSUB110:PRINT" "
3190 T=20:TA=20:TZ=20:VG=1
3200 GOTO2790
3210 IFVE<2 THENVE=21
3220 IFVE>21 THENVE=2
3230 IFHO<1 THENHO=20
3240 IFHO>20 THENHO=1
3250 GOTO2900
3260 VE=22:HO=23:GOSUB110
3270 PRINT"-EVEN GEDULD-";
3280 FORI=0 TO19
3290 FORJ=0 TO19
3300 BL(C(I,J)+1)=BL(C(I,J)+1)+1
3310 NEXTJ
3320 NEXTI
3330 RETURN
3340 REM
3350 REM
3360 REM *** UITLEG ***
3370 REM
3380 REM
3390 GOSUB100
3400 PRINT" ************** - GAIA - *************"
3410 PRINT
3420 PRINT"DIT PROGRAMMA VOERT EEN VEREENVOUDIGDE"
3430 PRINT"SIMULATIE UIT VAN DE GAIA-THEORIE VAN"
3440 PRINT"JAMES LOVELOCK. DEZE HOUDT IN DAT DE"
3450 PRINT"OPPERVLAKTE VAN ONZE AARDE IN DE LOOP"
3460 PRINT"VAN DE TIJD DE TEMPERATUURSVERHOGING"
3470 PRINT"VAN DE ZON TENIET HEEFT GEDAAN DOOR DE"
3480 PRINT"INVLOED VAN LEVEN OP HET KLIMAAT."
3490 PRINT"LOVELOCK HEEFT EEN VERSIE BEDACHT OM"
3500 PRINT"HET IDEE TE ILLUSTREREN. HIJ KOOS DAAR-"
3510 PRINT"VOOR EEN DENKBEELDIGE PLANEET WAAROP"
3520 PRINT"ALLEEN TWEE SOORTEN BLOEMEN VOORKOMEN."
3530 PRINT"LICHTGEKLEURDE GELE DIE HET ZONLICHT"
3540 PRINT"WEERKAATSEN EN ZO DE TEMPERATUUR VAN"
3550 PRINT"HET OPPERVLAK DOEN DALEN, EN DONKER-"
3560 PRINT"GEKLEURDE BLAUWE DIE DE ZONNEWARMTE"
3570 PRINT"ABSORBEREN. ALS LICHTE BLOEMEN BIJ EEN"
3580 PRINT"HOGE TEMPERATUUR BETER GROEIEN DAN"
3590 PRINT"DONKERE EN ANDERSOM ZAL HET OPPERVLAK"
3600 PRINT"ZO EEN MIN OF MEER CONSTANTE TEMP-"
3610 PRINT"ERATUUR BEHOUDEN."
3620 HO=11:VE=23:GOSUB110
3630 PRINT"TOETS VOOR VERDER";:GOSUB210
3640 GOSUB100
3650 PRINT" ************** - GAIA - *************"
3660 PRINT
3670 PRINT"DE PLANEET WORDT WEERGEGEVEN DOOR EEN"
3680 PRINT"OPPERVLAK VAN 20 X 20 PLAATSEN WAAR EEN"
3690 PRINT"BLOEMETJE KAN STAAN. DE TEMPERATUUR VAN"
3700 PRINT"DE ZON IN DIT PROGRAMMA STIJGT MET EEN"
3710 PRINT"CONSTANTE WAARDE VAN 0.2 GRADEN PER"
3720 PRINT"TIJDSINTERVAL. DE BODEM KAN DOOR DE"
3730 PRINT"GEBRUIKER MET BLOEMEN WORDEN BEDEKT,"
3740 PRINT"WAARNA HET PROGRAMMA VOLGENDE VEGETA-"
3750 PRINT"TIES BEREKENT. BLOEMEN GROEIEN BINNEN"
3760 PRINT"DE VOLGENDE GRENZEN:"
3770 PRINT
3780 PRINT" TEMPERATUUR"
3790 PRINT"000000000111111111122222222223333333333"
3800 PRINT"123456789012345678901234567890123456789"
3810 PRINT" <-----++++-----> BLAUWE BLOEMEN"
3820 PRINT"GELE BLOEMEN <-----++++----->"
3830 PRINT
3840 PRINT"<-----++++-----> = OVERLEVINGSGEBIED"
3850 PRINT" ++++ = ONTSTAANSGEBIED"
3860 HO=11:VE=23:GOSUB110
3870 PRINT"TOETS VOOR VERDER";:GOSUB210
3880 RETURN
3890 REM
3900 REM
3910 REM *** TOETS-CONVERSIE ***
3920 REM
3930 REM
3940 IF(IN$<"a") OR(IN$>"z") THENRETURN
3950 IN$=CHR$(ASC(IN$)-ASC("a")+ASC("A"))
3960 RETURN
25000 REM
25010 REM
25020 REM *** DATA ***
25030 REM
25040 REM
25050 DATA8,23,".",14,24," ",15,30,"#"
25060 DATA23,2,"G = GELE BLOEM"
25070 DATA23,4,"B = BLAUWE BLOEM"
25080 DATA23,6,"P = PLUK BLOEM"
25090 DATA23,12,"RETURN =NAAR MENU"
25100 DATA23,8,"A = PLUK ALLES"
25110 DATA23,10,"Z = ZAAI MAAR WAT"
25120 DATA31,14,"I",31,15,"^",31,16,"!"
25130 DATA27,17,"J <-+-> K"
25140 DATA31,18,"!",31,19,"V",31,20,"M"
30000 REM
30010 REM
30020 REM *** GEBRUIKTE VARIABELEN: ***
30030 REM
30040 REM
30050 REM ** REALS **
30060 REM
30070 REM BE = BOVENGRENS VAN HET TEMP. GEBIED WAARIN
30080 REM BLAUWE BLOEMEN KUNNEN ONTSTAAN
30090 REM BO = BENEDENGRENS VAN HET TEMP. GEBIED WAARIN
30100 REM GELE BLOEMEN KUNNEN ONTSTAAN
30110 REM C = HOR. KOORDINAAT V.E. OMRINGENDE BLOEM
30120 REM DU = DUMMY VARIABELE
30130 REM D = BOOLEAN GEEN BLOEM VERSUS WEL BLOEM
30140 REM VG = VEGETATIE VOLGNUMMER
30150 REM PT = TEMPERATUUR OMRINGEND GEBIEDJE
30160 REM R = VERT. KOORDINAAT V.E. OMRINGENDE BLOEM
30170 REM S = TOESTAND VAN EEN PLAATS -1=BLAUWE BLOEM
30180 REM 1=GELE BLOEM
30190 REM 0=KALE GROND
30200 REM T = TEMPERATUUR VAN HET PLANEETOPPERVLAK
30210 REM TA = OP EEN DEC. AFGERONDE TEMPERATUUR
30220 REM TZ = OP EEN DEC. AFGERONDE ONGECORR. TEMP.
30230 REM TB = TOTAAL AANTAL OMRINGENDE BLOEMEN
30240 REM
30250 REM ** STRINGS **
30260 REM
30270 REM DU$ = DUMMY STRING
30280 REM T$ = TEKST VOOR OPBOUW SCHERM
30290 REM
30300 REM ** ARRAYS **
30310 REM
30320 REM A(19,19) = TOESTAND VAN HET GEHELE VELD
30330 REM B(0) = BENEDENGRENS VAN HET TEMP. GEBIED
30340 REM WAARIN BLAUWE BLOEMEN OVERLEVEN
30350 REM B(1) = BENEDENGRENS VAN HET TEMP. GEBIED
30360 REM WAARIN BLAUWE BLOEMEN KUNNEN ONSTAAN
30370 REM B(2) = BENEDENGRENS VAN HET TEMP. GEBIED
30380 REM WAARIN GELE BLOEMEN OVERLEVEN
30390 REM BL(0) = AANTAL BLAUWE BLOEMEN OP GEHELE VELD
30400 REM BL(2) = AANTAL GELE BLOEMEN OP GEHELE VELD
30410 REM C(19,19) = TOESTAND VAN GEHELE VELD GEDURENDE
30420 REM DE BEREKENING
30430 REM E(0) = BOVENGRENS VAN HET TEMP. GEBIED
30440 REM WAARIN BLAUWE BLOEMEN OVERLEVEN
30450 REM E(1) = BOVENGRENS VAN HET TEMP. GEBIED
30460 REM WAARIN GELE BLOEMEN KUNNEN ONTSTAAN
30470 REM E(2) = BOVENGRENS VAN HET TEMP. GEBIED
30480 REM WAARIN GELE BLOEMEN OVERLEVEN
30490 REM K$(0) = KARAKTER REPRES. BLAUWE BLOEMEN
30500 REM K$(1) = KARAKTER REPRES. KALE GROND
30510 REM K$(2) = KARAKTER REPRES. GELE BLOEMEN
30520 REM LT(19,19) = LEEFTIJD GEHELE VELD
30530 REM
30540 REM
30550 REM
30560 REM ***************************
30570 REM * BASICODE-2 PROGRAMMEER- *
30580 REM * WEDSTRIJD FEBRUARI 1987 *
30590 REM * *
30600 REM * PIETER GOSSELINK *
30610 REM * WITBREUKSWEG 381-107 *
30620 REM * 7522 ZA ENSCHEDE *
30630 REM * *
30640 REM * GEPROGRAMMEERD OP EEN *
30650 REM * BBC MODEL B COMPUTER *
30660 REM * *
30670 REM * LITERATUUR *
30680 REM * KIJK OKTOBER 1985 *
30690 REM ***************************
30700 REM COPYRIGHT NOS HILVERSUM