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