Haie und Heringe: Fressen und gefressen werden
Es ist sehr schwierig, ein biologisches Gleichgewicht zu erhalten. Wie schwierig, können Sie mit diesem Simulationsprogramm leicht feststellen. Haie und Heringe kämpfen ums Überleben.
Fressen und gefressen werden. Dieses Sprichwort findet seine Anwendung in diesem biologischen Simulationsprogramm, bei dem Sie versuchen müssen in einem torusförmigen See namens »Wator« zwischen Haien und Heringen ein biologisches Gleichgewicht zu schaffen.
Jeder Fisch kann sich innerhalb des ganzen Sees frei bewegen. Es gibt keinen Platz, an dem sich die kleinen Heringe vor den großen Haien verstecken können. Deshalb auch der torusförmige See. Will ein Fisch den »Spielfeldrand« verlassen, wird er einfach auf die gegenüberliegende Seite versetzt. Dadurch werden Randeffekte, wie beispielsweise an einer Meeresküste, vermieden. Futter ist für die Heringe, unabhängig von ihrer Zahl, immer genügend vorhanden. Die Haie allerdings können sich nur von den Heringen ernähren. Erwischt ein Hai innerhalb einer zu bestimmenden Zeit keinen Hering, verhungert er. Aber nicht nur dieser Faktor kann eingestellt werden, sondern auch nach wievielen Jahren sich ein Hai oder ein Hering im Durchschnitt vermehren soll, und mit wievielen Haien und Heringen die Simulation beginnen soll.
Das Problem besteht nun darin, eine Kombination aus den fünf Faktoren zu finden, die jede Art möglichst lange erhält.
Das Programm zeigt Ihnen dabei ständig die Entwicklung der ganzen Sache. Die Haie als rote Kreise (Groß/Grafikmodus) und die Heringe als schwarze Punkte. Außerdem wird angezeigt, wieviele Fische von jeder Sorte momentan existieren und wieviele Jahre das System schon läuft.
Sie werden schnell feststellen, daß das Gleichgewicht ständigen Schwankungen unterliegt. Häufig wird Wator von regelrechten Katastrophen heimgesucht: Haie vermehren sich so schnell, daß alle Heringe schnell gefressen sind und die Haie verhungern müssen. Oft aber schaffen es die Haie nicht, alle Heringe zu fangen und das Haisterben beginnt schon, bevor alle Heringe gefressen sind. Nach einer Krise kommt es meist zu einer Phase relativer Ruhe, in der der Bestand nahezu konstant bleibt.
Lokale Katastrophen sind unvermeidbar
Das interessanteste an der Simulation sind eben genau solche Katastrophen. Da stürzt sich eine Meute von Haien auf ein paar Heringe und man meint, deren letzte Stunde hätte geschlagen. Aber irgendwo am Rande der Schlacht überleben doch einige Heringe, die sich wieder vermehren, während die Haie wegen eigener Überbevölkerung und zu wenig Nahrung verhungern.
Alle Erfolgskombinationen haben einige Tatsachen gemeinsam: Die Heringe vermehren sich etwa 2-5mal schneller als die Haie und die Haie verhungern sehr schnell. Bei dem einfachen Regelkreis gibt der Parameter »Hunger« an, wie schnell die Haie auf das Heringsangebot reagieren. Reagieren sie zu langsam, kann dies das Ende der Haie bedeuten. Reagieren sie zu schnell, kann es passieren, daß alle Haie aussterben, obwohl noch vielleicht 200 Heringe da sind. Ein weiteres Merkmal sind lokale Katastrophen. Während in einem Bereich ein Haisterben stattfindet, leben in einem anderen Bereich die Haie in »Saus und Braus«. Dadurch wird eine theoretisch errechnete Sinusschwingung des Systems aus einer Vielzahl von gekoppelten Vorgängen zusammengesetzt, was eine mathematische Erfassung sehr kompliziert.
Tips zur Eingabe
»Wator« besteht aus einem Basic-Programm zur Variableneingabe und einem etwa 1500 Byte langen Maschinenprogramm »WATOR-MSP«, das vom Basic-Programm »Wator« geladen wird. Das Maschinenprogramm sollten Sie mit dem MSE eingeben, das Basic-Programm mit dem neuen Checksummer. Nachdem Sie jedes Programm auf Diskette (!) gespeichert haben, laden Sie »Wator« und geben RUN ein. Das Maschinenprogramm wird geladen und die Simulation beginnt.
(Siegmar Kutschker / hm)10 rem ********************************
11 rem * *
12 rem * wator version 1.0 *
13 rem * 8.4.1985 *
14 rem * *
15 rem * copyright by *
16 rem * *
17 rem * siegmar kutschker *
18 rem * sachsenheimer weg 5 *
19 rem * 7122 besigheim *
20 rem * *
21 rem * nach einer idee aus *
22 rem * *
23 rem * spektrum der wissenschaft *
24 rem * *
25 rem * 2/85 *
26 rem * *
30 rem ********************************
40 poke 56,112:poke 55,0:rem basic bereich einschraenken
45 :
50 if peek(2) = 0 then poke 2,1: load "wator msp",8,1
60 rem definitionen der adressen
70 hp = 34816 :rem programm-start
75 zp = 36608 :rem ersatzzeropage
80 fa = zp + 116:rem fische anzahl
85 ha = zp + 118:rem haie anzahl
90 vf = zp + 120:rem vermehrungsalter fisch
95 vh = zp + 121:rem vermehrungsalter haie
100 hu = zp + 122:rem alter in dem haie verhungern
105 zu = zp + 6:rem zufallsgenerator
115 hu%=1:vh%=1:vf%=1:rem anfangswerte setzen
120 poke 53280,0:poke 53281,0 :poke 646,1:rem farbe setzen
130 print chr$(147):rem bildschirm loeschen
140 print:print:print:print:print:print:print
150 print" O{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}P "
160 print" {CBM-H} {CBM-N} "
170 print" {CBM-H} w a t o r {CBM-N} "
180 print" {CBM-H} {CBM-N} "
190 print" L{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{SHIFT-@} "
200 print:print:print:print:print tab(3) "wollen sie eine anleitung lesen?"
210 print:print tab(3) "(j/n)"
220 get t$:if t$ = "" then 220
230 if t$ = "j" then gosub 16000:goto250
240 if t$ <> "n" then 220
250 gosub 10200
300 rem menue
301 poke 53280,0:poke 53281,0 :poke 646,8:rem farbe setzen
305 printchr$(147);:print tab(11)"zyklenanzahl: " az:poke 646,1:print
310 print"fische vermehren sich nach jahr(en)"
315 print:poke 646,7
320 print" haie vermehren sich nach jahr(en)
325 print:print:poke 646,1
330 print" wir haben derzeit fisch(e)
335 poke 646,7
340 print" und hai(e)
345 print:poke 646,7
350 print" die haie verhungern nach jahr(en)
355 print:poke 646,5
360 print" bitte waehlen sie:
365 print:print: poke 646,14
370 print" <1> anleitung
375 print:poke 646,3
380 print" <2> aendern der parameter
385 print:poke 646,4
390 print" <3> fortfahren im programm
400 printchr$(19):print:poke 646,10
410 print tab(26) vf%
420 print:printtab(26) vh%
430 print:print:printtab(26) fa%
440 printtab(26) ha%
450 print:printtab(26) hu%
460 poke 646,1
500 get t$:if t$ = "" then 500
510 if t$ = "1" then gosub 16000:goto300
520 if t$ = "2" then gosub 10000:goto300
530 if t$ = "h" then gosub 18650:goto300
540 if t$<> "3"then 500
1000 poke zu,256*rnd(1)
1010 poke zu+1,256*rnd(1)
1020 if az=0 then sys hp
1030 sys hp+3
1040 if peek(zp+128)=0 then az=az+65536:goto 1030
1050 az = az + peek(zp+129) + peek(zp+130)*256+1
1060 fa% = peek(fa)+peek(fa+1)*256
1070 ha% = peek(ha)+peek(ha+1)*256
1100 goto 300
9000 stop
10000 printchr$(147):poke 646,1:ug =0:og=512:i=fa%:
10005 print"ohne eingabe bleiben die alten werte erhalten":print:print:print
10010 print"bisher hatten wir "i "fische":print
10020 print"wieviele in zukunft":gosub15000
10030 print:fa% = i
10040 ug = 0:og = 512 -fa%:i = ha%
10050 print"bisher hatten wir "i "haie":print
10060 print"wieviele in zukunft":gosub15000
10070 print:ha% = i
10080 ug = 1:og = 255
10090 print:print:print"bisher vermehrten sich fische nach"
10100 print"dem "vf%" ten jahr"
10110 print"nach wievielen jahren in zukunft"
10120 i = vf%:gosub 15000:vf%=i
10130 print:print:print"bisher vermehrten sich haie nach"
10140 print"dem "vh%" ten jahr"
10150 print"nach wievielen jahren in zukunft"
10160 i = vh%:gosub 15000:vh%=i
10170 print:print:print"bisher verhungerten haie nach"
10180 print"dem "hu%" ten jahr"
10190 print"nach wievielen jahren in zukunft":i=hu%:gosub15000:hu%=i
10200 poke vh,vh%-1:w = vh%-1:gosub 11000:poke vh+3,w1
10210 poke vf,vf%-1:w = vf%-1:gosub 11000:poke vf+3,w1
10220 poke hu,hu%-1:w = hu%-1:gosub 11000:poke hu+3,w1
10240 poke ha+1,int(ha%/256)
10250 poke ha,ha%-int(ha%/256)*256
10260 poke fa+1,int(fa%/256)
10270 poke fa,fa%-int(fa%/256)*256
10280 az = 0
10300 return
11000 w1=0
11010 if w1<w then w1 = w1+w1+1:goto11010
11020 return
14500 stop
15000 input i
15100 i=int(i)
15200 if ug <= i and og >=i then return
15300 print:print"wert zwischen " ug" und "og "eingeben!":goto 15000
16000 rem anleitung
16050 print chr$ (147):print:print:print
16100 print tab(12) "*********"
16150 print tab(12) "* wator *"
16200 print tab(12) "*********"
16250 print:print
16300 print tab(5) "ist ein sehr interessantes":print
16350 print tab(5) "simulationsprogramm.":print
16400 printtab(5)"simuliert wird ein oekosystem, in":print
16450 printtab(5)"dem sich zwei verschiedene arten":print
16500 printtab(10)"von tieren tummeln:":print
16550 printtab(11)"haie und fische.":print:print:print
16600 gosub 21000:print
16650 printtab(5)"jedes tier kann sich bewegen und":print
16700 printtab(5)"sich vermehren, wobei die":print
16750 printtab(5)"haie versuchen, die fische zu":print
16800 printtab(5)"fressen. nahrung fuer die fische":print
16850 printtab(5)"gibt es im ueberfluss.":print
16900 printtab(5)"findet ein hai eine zeit lang":print
16950 printtab(5)"keinen fisch, so verhungert er.":print
17000 printtab(5)"lebensraum ist ein see, der in":print
17050 printtab(5)"der form eines torusses gekruemmt":print
17100 printtab(5)"ist. daher der name 'wator'.":print
17110 print:print:gosub 21000
17120 fori=0to10:print:next
17200 printtab(5)"mehr zu diesem thema finden sie":print
17230 printtab(5)"im spektrum der wissenschaft":print
17260 printtab(15)"2/85.":fori=0to10:print:next:gosub 21000:
17265 for i=1to 20:print:next
17270 printtab(5)"von ihnen koennen 5 verschiedene":print
17300 printtab(5)"parameter eingestellt werden.":print
17310 printtab(10)"und zwar:":fori=0to10:print:next:gosub 21000
17320 for i=0to 30:print:next
17330 printtab(5)"die variable":print
17350 printtab(5)"'anzahl der fische'.":print
17370 printtab(5)"diese variable wird am anfang":print
17400 printtab(5)"eines durchlaufs gesetzt und":print
17420 printtab(5)"waehrend des durchlaufs staendig":print
17450 printtab(5)"aktualisiert.":print
17470 printtab(5)"man findet ihren wert am bild-":print
17500 printtab(5)"schirm unten links."
17530 print:print:print:print:gosub 21000
17550 fori=1to30:print:next
17570 printtab(5)"'anzahl der haie' ist die":print
17600 printtab(5)"entsprechende variable fuer die":print
17630 printtab(5)"haie.":print
17650 printtab(5)"man findet sie unten rechts.":print
17670 printtab(5)"ist die anzahl der haie = 0, so":print
17680 printtab(5)"kehrt das programm in das grund-":print
17690 printtab(5)"menue zurueck, ebenso, wenn":print
17693 printtab(5)"waehrend des programmlaufs die":print
17695 printtab(5)"restore-taste gedrueckt wird."
17700 print:print:print:print:print:gosub 21000:fori=0to30:print:next
17720 printtab(5)"die variable":print
17730 printtab(5)"'vermehrung fische' gibt an,nach":print
17750 printtab(5)"wievielen jahren sich die fische":print
17770 printtab(5)"vermehren;":print
17800 printtab(5)"ob nach dem ersten, zweiten":print
17830 printtab(5)"dritten.....":print:print:print:print:print:print
17850 gosub 21000:fori=0to30:print:next
17870 printtab(5)"'vermehrung haie' erfuellt densel-":print
17900 printtab(5)"ben zweck bei den haien.":print
17920 for i=0to 10:print:next:gosub 21000
17950 print:print:print:print:print:print
17970 printtab(5)"die variable 'hunger' gibt an,":print
18000 printtab(5)"nach wievielen jahren ein hai":print
18030 printtab(5)"stirbt, wenn er in dieser zeit":print
18050 printtab(5)"keinen fisch zum fressen findet.":print
18070 printtab(5)"ob nach ein, zwei, drei.....":print
18100 printtab(5)"jahren."
18130 print:print:print:print:print:print:print
18150 gosub21000
18170 fori=1to20:print:next
18200 printtab(5)"zusaetzlich finden sie in der ":print
18230 printtab(5)"mitte oben die anzahl der zyklen,":print
18250 printtab(5)"die seit dem start dieser":print
18270 printtab(5)"kombination vergangen sind."
18300 print:print:print:print:print:print:print:print
18330 gosub 21000:fori=1to15:print:next
18350 printtab(5)"dies klingt jetzt alles":print
18370 printtab(5)"furchtbar kompliziert, und sie ":print
18400 printtab(5)"werden am anfang schwierigkeiten":print
18430 printtab(5)"haben, ein oekosystem zu entwer-":print
18450 printtab(5)"fen, das nicht schon nach wenigen":print
18470 printtab(5)"hundert jahren zusammenbricht. ":print:print
18500 printtab(5)"druecken sie 'h' und der computer":print
18530 printtab(5)"stellt ihnen eine kombination ein,":print
18550 printtab(5)"die sicher laueft!":print
18600 gett$:ift$=""then 18600
18630 ift$<>"h"then return
18650 vh%=15:vf%=3:hu%=2:fa%=400:ha%=20:goto 10200
21000 printtab(7)"weiter mit {rvon}return{rvof}"
21020 gett$:if t$ <> chr$(13) then 21020
21030 gett$:return
10 REM ******************************** 11 REM * * 12 REM * WATOR VERSION 1.0 * 13 REM * 8.4.1985 * 14 REM * * 15 REM * COPYRIGHT BY * 16 REM * * 17 REM * SIEGMAR KUTSCHKER * 18 REM * SACHSENHEIMER WEG 5 * 19 REM * 7122 BESIGHEIM * 20 REM * * 21 REM * NACH EINER IDEE AUS * 22 REM * * 23 REM * SPEKTRUM DER WISSENSCHAFT * 24 REM * * 25 REM * 2/85 * 26 REM * * 30 REM ******************************** 40 POKE 56,112:POKE 55,0:REM BASIC BEREICH EINSCHRAENKEN 45 : 50 IF PEEK (2) = 0 THEN POKE 2,1: LOAD "WATOR MSP",8,1 60 REM DEFINITIONEN DER ADRESSEN 70 HP = 34816 :REM PROGRAMM-START 75 ZP = 36608 :REM ERSATZZEROPAGE 80 FA = ZP + 116:REM FISCHE ANZAHL 85 HA = ZP + 118:REM HAIE ANZAHL 90 VF = ZP + 120:REM VERMEHRUNGSALTER FISCH 95 VH = ZP + 121:REM VERMEHRUNGSALTER HAIE 100 HU = ZP + 122:REM ALTER IN DEM HAIE VERHUNGERN 105 ZU = ZP + 6:REM ZUFALLSGENERATOR 115 HU%=1:VH%=1:VF%=1:REM ANFANGSWERTE SETZEN 120 POKE 53280,0:POKE 53281,0 :POKE 646,1:REM FARBE SETZEN 130 PRINT CHR$ (147):REM BILDSCHIRM LOESCHEN 140 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 150 PRINT"{11SPACE}OYYYYYYYYYYYYYYYYYYP " 160 PRINT"{11SPACE}H{18SPACE}N " 170 PRINT"{11SPACE}H{4SPACE}W A T O R{5SPACE}N " 180 PRINT"{11SPACE}H{18SPACE}N " 190 PRINT"{11SPACE}LPPPPPPPPPPPPPPPPPP@ " 200 PRINT:PRINT:PRINT:PRINT:PRINT TAB( 3) "WOLLEN SIE EINE ANLEITUNG LESEN?" 210 PRINT:PRINT TAB( 3) "(J/N)" 220 GET T$:IF T$ = "" THEN 220 230 IF T$ = "J" THEN GOSUB 16000:GOTO 250 240 IF T$ <> "N" THEN 220 250 GOSUB 10200 300 REM MENUE 301 POKE 53280,0:POKE 53281,0 :POKE 646,8:REM FARBE SETZEN 305 PRINTCHR$ (147);:PRINT TAB( 11)"ZYKLENANZAHL:{2SPACE}" AZ:POKE 646,1:PRINT 310 PRINT"FISCHE VERMEHREN SICH NACH{6SPACE}JAHR(EN)" 315 PRINT:POKE 646,7 320 PRINT" HAIE{2SPACE}VERMEHREN SICH NACH{6SPACE}JAHR(EN) 325 PRINT:PRINT:POKE 646,1 330 PRINT"{6SPACE}WIR HABEN DERZEIT{9SPACE}FISCH(E) 335 POKE 646,7 340 PRINT"{20SPACE}UND{9SPACE}HAI(E) 345 PRINT:POKE 646,7 350 PRINT"{2SPACE}DIE HAIE VERHUNGERN NACH{6SPACE}JAHR(EN) 355 PRINT:POKE 646,5 360 PRINT"{10SPACE}BITTE WAEHLEN SIE: 365 PRINT:PRINT: POKE 646,14 370 PRINT"{4SPACE}<1> ANLEITUNG 375 PRINT:POKE 646,3 380 PRINT"{4SPACE}<2> AENDERN DER PARAMETER 385 PRINT:POKE 646,4 390 PRINT"{4SPACE}<3> FORTFAHREN IM PROGRAMM 400 PRINTCHR$ (19):PRINT:POKE 646,10 410 PRINT TAB( 26) VF% 420 PRINT:PRINTTAB( 26) VH% 430 PRINT:PRINT:PRINTTAB( 26) FA% 440 PRINTTAB( 26) HA% 450 PRINT:PRINTTAB( 26) HU% 460 POKE 646,1 500 GET T$:IF T$ = "" THEN 500 510 IF T$ = "1" THEN GOSUB 16000:GOTO 300 520 IF T$ = "2" THEN GOSUB 10000:GOTO 300 530 IF T$ = "H" THEN GOSUB 18650:GOTO 300 540 IF T$<> "3" THEN 500 1000 POKE ZU,256*RND (1) 1010 POKE ZU+1,256*RND (1) 1020 IF AZ=0 THEN SYS HP 1030 SYS HP+3 1040 IF PEEK (ZP+128)=0 THEN AZ=AZ+65536:GOTO 1030 1050 AZ = AZ + PEEK (ZP+129) + PEEK (ZP+130)*256+1 1060 FA% = PEEK (FA)+PEEK (FA+1)*256 1070 HA% = PEEK (HA)+PEEK (HA+1)*256 1100 GOTO 300 9000 STOP 10000 PRINTCHR$ (147):POKE 646,1:UG =0:OG=512:I=FA%: 10005 PRINT"OHNE EINGABE BLEIBEN DIE ALTEN WERTE{4SPACE}ERHALTEN":PRINT:PRINT:PRINT 10010 PRINT"BISHER HATTEN WIR "I "FISCHE":PRINT 10020 PRINT"WIEVIELE IN ZUKUNFT":GOSUB 15000 10030 PRINT:FA% = I 10040 UG = 0:OG = 512 -FA%:I = HA% 10050 PRINT"BISHER HATTEN WIR "I "HAIE":PRINT 10060 PRINT"WIEVIELE IN ZUKUNFT":GOSUB 15000 10070 PRINT:HA% = I 10080 UG = 1:OG = 255 10090 PRINT:PRINT:PRINT"BISHER VERMEHRTEN SICH FISCHE NACH" 10100 PRINT"DEM "VF%" TEN JAHR" 10110 PRINT"NACH WIEVIELEN JAHREN IN ZUKUNFT" 10120 I = VF%:GOSUB 15000:VF%=I 10130 PRINT:PRINT:PRINT"BISHER VERMEHRTEN SICH HAIE NACH" 10140 PRINT"DEM "VH%" TEN JAHR" 10150 PRINT"NACH WIEVIELEN JAHREN IN ZUKUNFT" 10160 I = VH%:GOSUB 15000:VH%=I 10170 PRINT:PRINT:PRINT"BISHER VERHUNGERTEN{2SPACE}HAIE NACH" 10180 PRINT"DEM "HU%" TEN JAHR" 10190 PRINT"NACH WIEVIELEN JAHREN IN ZUKUNFT":I=HU%:GOSUB 15000:HU%=I 10200 POKE VH,VH%-1:W = VH%-1:GOSUB 11000:POKE VH+3,W1 10210 POKE VF,VF%-1:W = VF%-1:GOSUB 11000:POKE VF+3,W1 10220 POKE HU,HU%-1:W = HU%-1:GOSUB 11000:POKE HU+3,W1 10240 POKE HA+1,INT (HA%/256) 10250 POKE HA,HA%-INT (HA%/256)*256 10260 POKE FA+1,INT (FA%/256) 10270 POKE FA,FA%-INT (FA%/256)*256 10280 AZ = 0 10300 RETURN 11000 W1=0 11010 IF W1<W THEN W1 = W1+W1+1:GOTO 11010 11020 RETURN 14500 STOP 15000 INPUT I 15100 I=INT (I) 15200 IF UG <= I AND OG >=I THEN RETURN 15300 PRINT:PRINT"WERT ZWISCHEN " UG" UND "OG "EINGEBEN!":GOTO 15000 16000 REM ANLEITUNG 16050 PRINT CHR$ (147):PRINT:PRINT:PRINT 16100 PRINT TAB( 12) "*********" 16150 PRINT TAB( 12) "* WATOR *" 16200 PRINT TAB( 12) "*********" 16250 PRINT:PRINT 16300 PRINT TAB( 5) "IST EIN SEHR INTERESSANTES":PRINT 16350 PRINT TAB( 5) "SIMULATIONSPROGRAMM.":PRINT 16400 PRINTTAB( 5)"SIMULIERT WIRD EIN OEKOSYSTEM, IN":PRINT 16450 PRINTTAB( 5)"DEM SICH ZWEI VERSCHIEDENE ARTEN":PRINT 16500 PRINTTAB( 10)"VON TIEREN TUMMELN:":PRINT 16550 PRINTTAB( 11)"HAIE UND FISCHE.":PRINT:PRINT:PRINT 16600 GOSUB 21000:PRINT 16650 PRINTTAB( 5)"JEDES TIER KANN SICH BEWEGEN UND":PRINT 16700 PRINTTAB( 5)"SICH VERMEHREN, WOBEI DIE":PRINT 16750 PRINTTAB( 5)"HAIE VERSUCHEN, DIE FISCHE ZU":PRINT 16800 PRINTTAB( 5)"FRESSEN. NAHRUNG FUER DIE FISCHE":PRINT 16850 PRINTTAB( 5)"GIBT ES IM UEBERFLUSS.":PRINT 16900 PRINTTAB( 5)"FINDET EIN HAI EINE ZEIT LANG":PRINT 16950 PRINTTAB( 5)"KEINEN FISCH, SO VERHUNGERT ER.":PRINT 17000 PRINTTAB( 5)"LEBENSRAUM IST EIN SEE, DER IN":PRINT 17050 PRINTTAB( 5)"DER FORM EINES TORUSSES GEKRUEMMT":PRINT 17100 PRINTTAB( 5)"IST. DAHER DER NAME 'WATOR'.":PRINT 17110 PRINT:PRINT:GOSUB 21000 17120 FOR I=0 TO10:PRINT:NEXT 17200 PRINTTAB( 5)"MEHR ZU DIESEM THEMA FINDEN SIE":PRINT 17230 PRINTTAB( 5)"IM SPEKTRUM DER WISSENSCHAFT":PRINT 17260 PRINTTAB( 15)"2/85.":FOR I=0 TO10:PRINT:NEXT :GOSUB 21000: 17265 FOR I=1 TO 20:PRINT:NEXT 17270 PRINTTAB( 5)"VON IHNEN KOENNEN 5 VERSCHIEDENE":PRINT 17300 PRINTTAB( 5)"PARAMETER EINGESTELLT WERDEN.":PRINT 17310 PRINTTAB( 10)"UND ZWAR:":FOR I=0 TO10:PRINT:NEXT :GOSUB 21000 17320 FOR I=0 TO 30:PRINT:NEXT 17330 PRINTTAB( 5)"DIE VARIABLE":PRINT 17350 PRINTTAB( 5)"'ANZAHL DER FISCHE'.":PRINT 17370 PRINTTAB( 5)"DIESE VARIABLE WIRD AM ANFANG":PRINT 17400 PRINTTAB( 5)"EINES DURCHLAUFS GESETZT UND":PRINT 17420 PRINTTAB( 5)"WAEHREND DES DURCHLAUFS STAENDIG":PRINT 17450 PRINTTAB( 5)"AKTUALISIERT.":PRINT 17470 PRINTTAB( 5)"MAN FINDET IHREN WERT AM BILD-":PRINT 17500 PRINTTAB( 5)"SCHIRM UNTEN LINKS." 17530 PRINT:PRINT:PRINT:PRINT:GOSUB 21000 17550 FOR I=1 TO30:PRINT:NEXT 17570 PRINTTAB( 5)"'ANZAHL DER HAIE' IST DIE":PRINT 17600 PRINTTAB( 5)"ENTSPRECHENDE VARIABLE FUER DIE":PRINT 17630 PRINTTAB( 5)"HAIE.":PRINT 17650 PRINTTAB( 5)"MAN FINDET SIE UNTEN RECHTS.":PRINT 17670 PRINTTAB( 5)"IST DIE ANZAHL DER HAIE = 0, SO":PRINT 17680 PRINTTAB( 5)"KEHRT DAS PROGRAMM IN DAS GRUND-":PRINT 17690 PRINTTAB( 5)"MENUE ZURUECK, EBENSO, WENN":PRINT 17693 PRINTTAB( 5)"WAEHREND DES PROGRAMMLAUFS DIE":PRINT 17695 PRINTTAB( 5)"RESTORE-TASTE GEDRUECKT WIRD." 17700 PRINT:PRINT:PRINT:PRINT:PRINT:GOSUB 21000:FOR I=0 TO30:PRINT:NEXT 17720 PRINTTAB( 5)"DIE VARIABLE":PRINT 17730 PRINTTAB( 5)"'VERMEHRUNG FISCHE' GIBT AN,NACH":PRINT 17750 PRINTTAB( 5)"WIEVIELEN JAHREN SICH DIE FISCHE":PRINT 17770 PRINTTAB( 5)"VERMEHREN;":PRINT 17800 PRINTTAB( 5)"OB NACH DEM ERSTEN, ZWEITEN":PRINT 17830 PRINTTAB( 5)"DRITTEN.....":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 17850 GOSUB 21000:FOR I=0 TO30:PRINT:NEXT 17870 PRINTTAB( 5)"'VERMEHRUNG HAIE' ERFUELLT DENSEL-":PRINT 17900 PRINTTAB( 5)"BEN ZWECK BEI DEN HAIEN.":PRINT 17920 FOR I=0 TO 10:PRINT:NEXT :GOSUB 21000 17950 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 17970 PRINTTAB( 5)"DIE VARIABLE 'HUNGER' GIBT AN,":PRINT 18000 PRINTTAB( 5)"NACH WIEVIELEN JAHREN EIN HAI":PRINT 18030 PRINTTAB( 5)"STIRBT, WENN ER IN DIESER ZEIT":PRINT 18050 PRINTTAB( 5)"KEINEN FISCH ZUM FRESSEN FINDET.":PRINT 18070 PRINTTAB( 5)"OB NACH EIN, ZWEI, DREI.....":PRINT 18100 PRINTTAB( 5)"JAHREN." 18130 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 18150 GOSUB 21000 18170 FOR I=1 TO20:PRINT:NEXT 18200 PRINTTAB( 5)"ZUSAETZLICH FINDEN SIE IN DER ":PRINT 18230 PRINTTAB( 5)"MITTE OBEN DIE ANZAHL DER ZYKLEN,":PRINT 18250 PRINTTAB( 5)"DIE SEIT DEM START DIESER":PRINT 18270 PRINTTAB( 5)"KOMBINATION VERGANGEN SIND." 18300 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 18330 GOSUB 21000:FOR I=1 TO15:PRINT:NEXT 18350 PRINTTAB( 5)"DIES KLINGT JETZT ALLES":PRINT 18370 PRINTTAB( 5)"FURCHTBAR KOMPLIZIERT, UND SIE ":PRINT 18400 PRINTTAB( 5)"WERDEN AM ANFANG SCHWIERIGKEITEN":PRINT 18430 PRINTTAB( 5)"HABEN, EIN OEKOSYSTEM ZU ENTWER-":PRINT 18450 PRINTTAB( 5)"FEN, DAS NICHT SCHON NACH WENIGEN":PRINT 18470 PRINTTAB( 5)"HUNDERT JAHREN ZUSAMMENBRICHT.{3SPACE}":PRINT:PRINT 18500 PRINTTAB( 5)"DRUECKEN SIE 'H' UND DER COMPUTER":PRINT 18530 PRINTTAB( 5)"STELLT IHNEN EINE KOMBINATION EIN,":PRINT 18550 PRINTTAB( 5)"DIE SICHER LAUEFT!":PRINT 18600 GET T$:IF T$="" THEN 18600 18630 IF T$<>"H" THEN RETURN 18650 VH%=15:VF%=3:HU%=2:FA%=400:HA%=20:GOTO 10200 21000 PRINTTAB( 7)"WEITER MIT{SPACE,RVSON}RETURN{RVOFF}" 21020 GET T$:IF T$ <> CHR$ (13) THEN 21020 21030 GET T$:RETURN
PROGRAMM : WATOR MSP 8800 8E29 ----------------------------------- 8800 : 4C A5 89 4C A3 8C 51 02 F3 8808 : 2E 00 00 03 04 20 78 D8 6C 8810 : 20 68 8D 20 79 8D A9 80 77 8818 : A2 07 18 95 11 4A CA 10 A5 8820 : FA A9 49 8D 18 03 A9 8D 4E 8828 : 8D 19 03 AD 0B 88 8D 21 26 8830 : D0 AD 0A 88 8D 20 D0 A9 DB 8838 : 80 8D 8A 02 F8 A9 00 85 4A 8840 : 98 A2 01 86 97 A2 13 95 40 8848 : 98 A5 97 95 99 18 65 97 6A 8850 : 85 97 A5 98 65 98 85 98 80 8858 : CA CA 10 EB D8 60 20 79 0D 8860 : 8D 20 68 8D A9 47 8D 18 04 8868 : 03 A9 FE 8D 19 03 58 60 7D 8870 : A5 06 85 04 A5 07 85 05 AD 8878 : A9 00 85 02 85 03 A2 0F DC 8880 : 18 66 02 66 03 66 04 66 59 8888 : 05 90 0D 18 A5 03 65 07 32 8890 : 85 03 A5 02 65 06 85 02 E1 8898 : CA 10 E6 A5 04 49 B4 85 41 88A0 : 07 A5 03 49 E5 85 06 A2 4C 88A8 : 07 86 10 A9 00 66 03 66 38 88B0 : 04 2A 66 03 66 04 2A 95 1E 88B8 : 08 CA 10 EF 60 A6 10 B4 0C 88C0 : 08 C6 10 30 AB 60 68 8D B0 88C8 : 3E 03 68 8D 3F 03 20 5E 9D 88D0 : 88 4C 66 FE 29 0F 85 19 4B 88D8 : D0 03 20 C6 88 20 BD 88 9C 88E0 : C8 98 29 03 A8 A5 19 39 2E 88E8 : 11 00 F0 F4 C8 98 18 0A 9A 88F0 : 85 1A 60 CC 04 F4 04 1C 64 88F8 : 05 44 05 6C 05 94 05 BC 71 8900 : 05 E4 05 0C 06 34 06 5C 0D 8908 : 06 84 06 AC 06 D4 06 FC 81 8910 : 06 24 07 85 6B 8A 29 1F 89 8918 : 85 6C A9 00 85 6D 98 29 B6 8920 : 0F A8 0A 0A 0A 0A 0A 26 AD 8928 : 6D 65 6C A6 6B 95 25 95 5B 8930 : 39 95 2F 95 43 95 4D A5 14 8938 : 6D 69 70 95 26 69 02 95 09 8940 : 30 69 02 95 3A 69 02 95 7A 8948 : 44 69 02 95 4E 98 0A A8 97 8950 : B9 F3 88 65 6C 95 61 95 F6 8958 : 57 B9 F4 88 69 00 95 62 8C 8960 : 69 D4 95 58 60 A9 FF 81 FA 8968 : 25 81 2F 81 39 81 43 81 FA 8970 : 4D AD 0D 88 81 61 AD 0C DA 8978 : 88 81 57 60 81 25 A9 00 8B 8980 : 81 39 AD 08 88 81 61 AD 80 8988 : 09 88 81 57 60 81 2F 98 21 8990 : 81 4D A9 00 81 43 A9 FF FB 8998 : 81 25 AD 06 88 81 61 AD 4D 89A0 : 07 88 81 57 60 20 0E 88 87 89A8 : A5 78 4A 85 84 A5 79 4A BD 89B0 : 85 86 A9 00 85 83 85 85 78 89B8 : A9 00 85 6E 85 70 85 93 AA 89C0 : 85 94 85 95 85 96 A8 A9 A6 89C8 : 04 85 6F A9 D8 85 71 A2 65 89D0 : 03 A9 A0 91 6E AD 0A 88 90 89D8 : 91 70 88 D0 F4 E6 6F E6 EF 89E0 : 71 CA 30 07 D0 EB A0 E8 64 89E8 : 4C D1 89 A9 A0 8D 00 07 39 89F0 : AD 0A 88 8D 00 DB 20 DF 95 89F8 : 8B A9 00 20 13 89 20 65 25 8A00 : 89 20 E8 8B B0 F3 A9 00 96 8A08 : 85 6E 85 6F A5 74 C5 6E 06 8A10 : D0 09 A5 75 C5 6F D0 03 9E 8A18 : 4C 3A 8A 20 02 8C 20 70 0E 8A20 : 88 A5 06 25 7B C5 78 30 C9 8A28 : 03 38 E5 78 A2 00 20 7C 73 8A30 : 89 E6 6E D0 D7 E6 6F 4C ED 8A38 : 0C 8A A9 00 85 6E 85 6F B4 8A40 : A5 76 C5 6E D0 09 A5 77 3A 8A48 : C5 6F D0 03 4C 7A 8A 20 5C 8A50 : 02 8C 20 70 88 A5 06 25 C7 8A58 : 7D C5 7A 30 03 38 E5 7A DB 8A60 : A8 A5 07 25 7C C5 79 30 7E 8A68 : 03 38 E5 79 A2 00 20 8D F6 8A70 : 89 E6 6E D0 CB E6 6F 4C 6C 8A78 : 40 8A A0 00 A9 FF 99 00 26 8A80 : 74 99 00 75 88 D0 F7 4C F7 8A88 : 5E 88 20 DF 8B A9 00 20 75 8A90 : 13 89 A9 FF 81 43 A1 39 FD 8A98 : F0 58 A1 25 C9 FF F0 52 C6 8AA0 : 20 2E 8C 20 57 8C 20 7D 54 8AA8 : 8C A2 00 A5 7E 25 7F D0 EB 8AB0 : 14 A1 25 C5 78 F0 06 18 EE 8AB8 : 69 01 4C C0 8A 20 4C 8D C3 8AC0 : 81 25 4C F2 8A 20 D4 88 53 8AC8 : A2 00 A1 25 C5 78 D0 15 05 8AD0 : A9 00 81 25 20 4C 8D A6 66 8AD8 : 1A 20 7C 89 E6 74 D0 12 CC 8AE0 : E6 75 4C F2 8A 18 69 01 03 8AE8 : A6 1A 20 7C 89 A2 00 20 21 8AF0 : 65 89 20 E8 8B B0 96 4C 70 8AF8 : FD 8A 4C D6 8B 20 DF 8B 79 8B00 : A9 00 20 13 89 A9 FF 81 FD 8B08 : 39 A1 43 F0 ED A1 2F C9 3D 8B10 : FF F0 E7 20 2E 8C 20 57 FC 8B18 : 8C A5 7E 49 0F F0 44 20 09 8B20 : D4 88 A6 1A 20 65 89 A4 C2 8B28 : 74 88 84 74 C0 FF D0 02 E3 8B30 : C6 75 A2 00 A1 2F C5 79 F7 8B38 : F0 12 48 20 65 89 A6 1A B9 8B40 : A0 00 68 18 69 01 20 8D 38 8B48 : 89 4C D6 8B E6 76 D0 02 88 8B50 : E6 77 A9 00 A8 20 8D 89 31 8B58 : 20 5A 8D A6 1A 20 8D 89 C9 8B60 : 4C D6 8B A2 00 A1 4D C5 1C 8B68 : 7A D0 11 20 65 89 A4 76 B5 8B70 : 88 84 76 C0 FF D0 5F C6 81 8B78 : 77 4C D6 8B 18 69 01 81 10 8B80 : 4D 20 7D 8C A2 00 A1 2F DD 8B88 : C5 79 F0 24 18 69 01 48 2C 8B90 : A5 7F D0 06 68 81 2F 4C D2 8B98 : D6 8B 20 D4 88 A2 00 A1 B7 8BA0 : 4D A8 68 A6 1A 20 8D 89 1C 8BA8 : A2 00 20 65 89 4C D6 8B 6C 8BB0 : A5 7F F0 1D 20 D4 88 A2 05 8BB8 : 00 A1 4D A8 A9 00 81 2F F0 8BC0 : 20 5A 8D A6 1A 20 8D 89 31 8BC8 : E6 76 D0 0A E6 77 4C D6 68 8BD0 : 8B 20 5A 8D 81 2F 20 E8 97 8BD8 : 8B 90 03 4C 00 8B 60 A9 27 8BE0 : 00 AA A8 85 72 85 73 60 F2 8BE8 : A6 72 A4 73 E8 E0 20 D0 17 8BF0 : 0B A2 00 C8 C0 10 D0 04 3D 8BF8 : 18 4C FD 8B 38 86 72 84 B2 8C00 : 73 60 20 70 88 A5 06 29 DA 8C08 : 1F 85 72 A5 07 29 0F 85 3C 8C10 : 73 A6 72 A4 73 A9 00 20 CC 8C18 : 13 89 A1 25 21 2F C9 FF B0 8C20 : F0 0B 20 E8 8B B0 EA 20 E5 8C28 : DF 8B 4C 11 8C 60 A6 72 4D 8C30 : A4 73 E8 A9 02 20 13 89 7E 8C38 : A6 72 A4 73 88 A9 04 20 D5 8C40 : 13 89 A6 72 A4 73 C8 A9 6C 8C48 : 06 20 13 89 A6 72 A4 73 CC 8C50 : CA A9 08 20 13 89 60 A9 47 8C58 : 00 85 7E 18 A2 08 A1 25 F9 8C60 : 69 01 26 7E A2 06 A1 25 CE 8C68 : 69 01 26 7E A2 04 A1 25 C6 8C70 : 69 01 26 7E A2 02 A1 25 BE 8C78 : 69 01 26 7E 60 A9 00 85 1A 8C80 : 7F 18 A2 08 A1 2F 69 01 F0 8C88 : 26 7F A2 06 A1 2F 69 01 12 8C90 : 26 7F A2 04 A1 2F 69 01 DA 8C98 : 26 7F A2 02 A1 2F 69 01 A2 8CA0 : 26 7F 60 20 0E 88 A2 00 52 8CA8 : A0 00 84 80 86 81 84 82 05 8CB0 : 20 8A 8A F8 18 A5 93 69 A7 8CB8 : 01 85 93 85 8C A5 94 69 2C 8CC0 : 00 85 94 85 8D A5 95 69 88 8CC8 : 00 85 95 85 8E A5 96 69 E4 8CD0 : 00 85 96 85 8F A9 06 85 52 8CD8 : 91 A9 35 85 6E 85 70 A9 64 8CE0 : 04 85 6F A9 D8 85 71 A2 7D 8CE8 : 03 20 C5 8D A6 74 A4 75 AA 8CF0 : 20 01 8E AD 09 88 85 91 F8 8CF8 : A9 C3 85 6E 85 70 A9 07 43 8D00 : 85 6F A9 DB 85 71 A2 01 93 8D08 : 20 C5 8D A6 76 A4 77 20 EE 8D10 : 01 8E AD 07 88 85 91 A9 F3 8D18 : E0 85 6E 85 70 A2 01 20 67 8D20 : C5 8D D8 A5 80 D0 1C A5 E1 8D28 : 76 05 77 D0 06 A9 01 85 D5 8D30 : 80 D0 10 A6 81 A4 82 E8 0A 8D38 : D0 01 C8 E0 FF D0 07 C0 FB 8D40 : FF D0 03 4C 5E 88 4C AC A6 8D48 : 8C E6 80 40 A5 83 18 69 19 8D50 : 01 C5 84 30 02 A9 00 85 D3 8D58 : 83 60 A5 85 18 69 01 C5 82 8D60 : 86 30 02 A9 00 85 85 60 B7 8D68 : A0 02 B9 00 00 BE 00 8F 8D 8D70 : 99 00 8F 96 00 C8 D0 F2 2F 8D78 : 60 A0 00 84 6E 84 70 84 8F 8D80 : 87 84 89 A9 03 85 6B A9 3E 8D88 : 04 85 6F A9 D8 85 71 A9 33 8D90 : 7A 85 88 A9 7E 85 8A 88 73 8D98 : B1 6E AA B1 87 91 6E 8A 35 8DA0 : 91 87 B1 70 AA B1 89 91 F1 8DA8 : 70 8A 91 89 88 C0 FF D0 23 8DB0 : E7 E6 6F E6 71 E6 88 E6 01 8DB8 : 8A C6 6B 30 07 D0 D9 A0 26 8DC0 : E8 4C 98 8D 60 A0 00 E6 7F 8DC8 : 92 B5 8C 20 F0 8D CA 10 23 8DD0 : F8 60 F0 0F 48 A9 00 85 F3 8DD8 : 92 68 09 30 91 6E A5 91 2D 8DE0 : 91 70 60 A5 92 F0 F3 A9 4A 8DE8 : 00 91 70 A9 A0 91 6E 60 13 8DF0 : 48 4A 4A 4A 4A 20 D2 8D 45 8DF8 : C8 68 29 0F 20 D2 8D C8 81 8E00 : 60 86 97 84 98 A9 00 85 FC 8E08 : 8C 85 8D A2 13 46 98 66 A1 8E10 : 97 90 0D 18 B5 99 65 8C 0D 8E18 : 85 8C B5 98 65 8D 85 8D 58 8E20 : CA CA 10 E9 60 54 5A 48 33 8E28 : 00 51