Compucolor.org – Virtual Media

Listing of file='NICHE.BAS;01' on disk='vmedia/chip_8-sector.ccvf'

10 REM NICHE--AN ECOLOGICAL GAME
20 REM  JAMES D. LEHMAN, DEPT. OF BIOLOGICAL SCIENCES
60 PLOT 12,10,10:PRINT ">>>>>>>>>>  NICHE  <<<<<<<<<<"
70 PLOT 10:PRINT TAB( 5)"AN ECOLOGICAL GAME"
80 PLOT 10:PRINT "WELCOME TO THE GAME OF NICHE!
82 PLOT 10:PRINT "EXCUSE ME WHILE I SET THIS UP."
83 PLOT 10:PRINT "HIT ANY KEY TO GET MY ATTENTION WHEN YOU'RE READY"
84 I= RND (1):IF PEEK (33279)= 0GOTO 84
90 PLOT 10:INPUT "DO YOU NEED INSTRUCTIONS (Y/N)? ";I$
100 I$= LEFT$ (I$,1)
110 IF I$= "N"THEN 520
120 IF I$< > "Y"THEN 90
130 PLOT 10,10:PRINT "INSTRUCTIONS FOR NICHE---":PLOT 10
140 PRINT TAB( 5)"NICHE REFERS TO ALL OF THE ECOLOGICAL VARIABLES WHICH"
150 PRINT "RELATE TO A GIVEN ORGANISM--ITS HABITAT, LIVING SPACE,"
160 PRINT "AND ROLE IN THE ECOSYSTEM.  IN THE GAME OF NICHE, YOUR JOB"
170 PRINT "IS TO FIT A SELECTED ORGANISM INTO ITS NICHE.  YOU SELECT"
180 PRINT "ONE OF 5 ORGANISMS AND RECEIVE A SMALL POPULATION (100"
190 PRINT "INDIVIDUALS)  OF THE ORGANISMS.  YOUR GOAL IN NICHE IS TO
200 PRINT "MAXIMIZE THE SIZE OF YOUR POPULATION BY PROVIDING IDEAL
210 PRINT "CONDITIONS FOR GROWTH.  AT THE BEGINNING OF THE GAME (TURN 1)
220 PRINT "AND AT EACH SUBSEQUENT TURN YOU WILL INPUT THE
230 PRINT "ENVIRONMENT, RANGE, AND COMPETITOR FOR YOUR POPULATION.
240 PRINT "ONCE DURING THE GAME, YOU MAY INPUT THE PREDATOR KILL OPTION.
250 PRINT "THIS WILL REDUCE BUT NOT ELIMINATE THE EFFECTS OF PREDATION
260 PRINT "ON YOUR POPULATION FOR THAT TURN ONLY.  AT THE END OF EACH TURN
270 PRINT "THE FOLLOWING INFORMATION WILL BE OUTPUT:  THE AMOUNT OF
280 PRINT "FOOD PRESENT IN THE RANGE, THE AMOUNT OF FOOD TAKEN BY
290 PRINT "COMPETITORS, THE AMOUNT OF FOOD AVAILABLE TO YOUR POPULATION,
300 PRINT "DEATHS DUE TO PREDATION, DEATHS DUE TO STARVATION AND OTHER
310 PRINT "CAUSES, BIRTHS, AND THE NEW TOTAL POPULATION.  OF COURSE,
320 PRINT "WHAT YOU INPUT WILL AFFECT THE RESULTS WHICH ARE OUTPUT.
330 PLOT 10:INPUT "TO CONTINUE INSTRUCTIONS, TYPE 'GO' ";I$
360 IF I$< > "GO"THEN 90
370 PLOT 10,10:PRINT TAB( 5)"FOR INSTANCE, IF THE INPUT RANGE IS TOO SMALL FOR YOUR
380 PRINT "POPULATION,  THERE WILL BE INSUFFICIENT FOOD (100 UNITS PER
390 PRINT "ORGANISM IS OPTIMUM) AND SOME STARVATION WILL RESULT.
400 PRINT "IF THE INPUT RANGE IS TOO LARGE, THERE WILL BE MANY PREDATORS
410 PRINT "AND DEATHS DUE TO PREDATION WILL BE HIGH.  THE GAME LASTS
420 PRINT "FOR 5 TURNS, EACH OF WHICH CORRESPONDS TO ABOUT 1 TO 2
430 PRINT "GENERATIONS OF YOUR ORGANISM.  YOU SHOULD RESPOND TO INPUT
440 PRINT "BY TYPING WHAT IS IN THE PARENTHESES FOLLOWING YOUR
450 PRINT "CHOICE.  YOU MAY INITIATE EACH NEW TURN BY TYPING GO.
460 PRINT TAB( 5)"GOOD LUCK!!  AND, MAY THE BEST ECOLOGIST WIN!!
480 PLOT 10,10:INPUT "TO BEGIN THE GAME TYPE 'GO' ";I$
510 IF I$< > "GO"THEN 90
520 PLOT 12:CLEAR 1000:T= 0:K= 0:P= 100:PRINT "HERE WE GO!"
530 REM **** SELECTION OF THE ORGANISM
540 PLOT 10:PRINT "WHAT ORGANISM---
550 PRINT TAB( 5)"PARAMECIUM CAUDATUM (1)
560 PRINT TAB( 5)"RAINBOW TROUT (2)
570 PRINT TAB( 5)"ANTEATER (3)
580 PRINT TAB( 5)"GRAY SQUIRREL (4)
590 PRINT TAB( 5)"KANGAROO RAT (5)
600 PRINT TAB( 20)" ";:INPUT O
610 IF O< 1OR O> 5THEN PRINT "INVALID--REENTER":GOTO 540
650 REM  **** SET UP TURN COUNTER AND PRINT TURN
670 T= T+ 1:PLOT 10,10:PRINT "TURN";T:PLOT 10
680 PLOT 10:PRINT "WHAT ENVIRONMENT---
690 PRINT TAB( 5)"FRESH WATER POND (P)
700 PRINT TAB( 5)"FRESH WATER LAKE (L)
710 PRINT TAB( 5)"TROPICAL RAIN FOREST (R)
720 PRINT TAB( 5)"BOREAL CONIFEROUS FOREST (C)
730 PRINT TAB( 5)"TEMPERATE DECIDUOUS FOREST (T)
740 PRINT TAB( 5)"NORTH AMERICAN DESERT (D)
750 PRINT TAB( 5)"TEMPERATE GRASSLAND (G)
760 PRINT TAB( 30)" ";:INPUT E$
790 IF E$= "P"OR E$= "L"OR E$= "R"OR E$= "C"OR E$= "T"OR E$= "D"OR E$= "G"THEN 820
800 PRINT "INVALID--REENTER":GOTO 680
810 REM  **** GOSUB TO SET VALUES OF E, E1, AND U$
820 GOSUB 3000
830 REM **** SELECTION OF RANGE SIZE
840 PLOT 10,10:PRINT "WHAT RANGE FOR THE WHOLE POPULATION IN ";U$;"---
844 IF U$= "HECTARES"THEN PRINT "(1 HECTARE = 10000 SQUARE METERS)
846 IF U$= "DEKASTERES"THEN PRINT "(1 DEKASTERE = 10 CUBIC METERS)
850 PRINT TAB( 30)" ";:INPUT R
890 IF R< = 0THEN PRINT "INVALID--REENTER":GOTO 840
900 REM **** SELECTION OF COMPETITOR (ORGANISM DEPENDENT)
910 REM **** AND SETTING OF TRUE OPTIMUM RANGE
920 PLOT 10,10:PRINT "WHAT COMPETITOR---
930 ON OGOTO 4000,4100,4200,4300,4400
980 REM **** GOSUB TO SET VALUES OF R1 AND R2
990 GOSUB 5000
1000 REM **** SET C1 VALUE
1010 IF C$= "B"OR C$= "D"OR C$= "L"OR C$= "N"THEN C1= .2:GOTO 1060
1020 IF C$= "F"OR C$= "J"THEN C1= .4:GOTO 1060
1030 IF C$= "A"OR C$= "H"OR C$= "O"THEN C1= .6:GOTO 1060
1040 C1= 0
1050 REM **** CHECK FOR PREVIOUS USE OF PREDATOR KILL
1060 IF K= 1THEN 1140
1070 PLOT 10,10:INPUT "PREDATOR KILL? (Y/N)---";K$
1090 K$= LEFT$ (K$,1):IF K$= "Y"THEN 1120
1100 IF K$= "N"THEN 1140
1110 PRINT "INVALID--REENTER":GOTO 1070
1120 REM **** SET COUNTER K AND SET D1 AT A LOW VALUE
1130 K= 1:D1= INT (.02* P):GOTO 1160
1140 REM **** SET D1 AT A NORMAL LEVEL
1150 D1= INT ((.25* RND (1)+ .1)* P)+ INT (R2* P)
1160 REM **** SET VARIABLE VALUES
1170 R1= R/ R3:F1= INT (100* R1* P):F2= INT (C1* F1)
1180 F3= F1- F2:F4= F3/ (100* P)
1184 IF F4> 1THEN F4= 1
1186 D2= INT ((1- F4+ E1)* P)
1190 REM **** GOSUB TO SET F5 VALUE
1200 GOSUB 6000
1210 REM **** SET BIRTHS
1220 B= INT (F5* P)
1230 IF E1= 1THEN 1250
1240 GOTO 1260
1250 B= 0:D1= 0:D2= P
1260 REM **** SET POPULATION
1270 P1= P:P= P+ B- D1- D2
1280 IF P< 0THEN 1300
1290 GOTO 1340
1300 X= RND (1):Y= RND (1)
1310 IF P1+ B= INT (D1* X)+ INT (D2* Y)THEN 1330
1320 GOTO 1300
1330 D1= INT (D1* X):D2= INT (D2* Y):P= P1+ B- D1- D2
1340 REM **** PRINT RESULTS OF TURN
1350 PLOT 10,10,10:PRINT "RESULTS OF TURN";T;"---":PLOT 10
1360 PRINT TAB( 5)"AMOUNT OF FOOD PRESENT IN RANGE---";F1;" UNITS"
1370 PRINT TAB( 5)"AMOUNT OF FOOD TAKEN BY COMPETITORS---";F2;" UNITS"
1380 PRINT TAB( 5)"AMOUNT OF FOOD FOR THE POPULATION---";F3;" UNITS"
1390 PRINT TAB( 5)"DEATHS DUE TO PREDATION---";D1
1400 PRINT TAB( 5)"DEATHS DUE TO STARVATION OR OTHER CAUSES---";D2
1410 PRINT TAB( 5)"BIRTHS---";B
1420 PLOT 10:PRINT TAB( 10)"CURRENT POPULATION---";P:PLOT 10,10
1430 REM **** CHECK FOR END OF GAME
1440 FOR N0= 1TO 5000:NEXT :IF T= 5GOTO 1660
1450 REM **** CHECK FOR LOSS OR GREAT REDUCTION OF THE POPULATION
1460 PLOT 10:IF P> 50THEN 1580
1470 IF P> 10THEN 1560
1480 IF P> 0THEN 1530
1500 PRINT TAB( 5)"HEY TURKEY, YOU MANAGED TO LET YOUR POPULATION GO TO ZERO!!
1510 PRINT "AND YOU DID IT AFTER ONLY TURN";T;"!!!
1520 GOTO 1670
1530 PRINT TAB( 5)"LOOK OUT TURKEY!  YOUR POPULATION IS DOWN TO A MERE
1540 PRINT P;" INDIVIDUALS!  THAT IS EXTREMELY RISKY!!!
1550 GOTO 1580
1560 PRINT TAB( 5)"YOU HAD BETTER WATCH OUT!  YOUR POPULATION IS DOWN TO
1570 PRINT P;" INDIVIDUALS!  TROUBLE IS JUST AROUND THE CORNER.
1580 PLOT 10,10:PRINT "TO BEGIN TURN";T+ 1;:INPUT " TYPE 'GO' ";G$
1590 IF G$= "GO"THEN PLOT 12:GOTO 670
1620 PRINT "INVALID--REENTER":GOTO 1580
1660 REM **** FINAL PERFORMANCE EVALUATION
1670 PLOT 10,10:PRINT TAB( 20)"END OF GAME":PLOT 10,10
1680 IF P> 10000THEN 1900
1690 IF P> 5000THEN 1880
1700 IF P> 1000THEN 1870
1710 IF P> 500THEN 1850
1720 IF P> 250THEN 1840
1730 IF P> 100THEN 1830
1740 IF P> 25THEN 1820
1750 IF P> 0THEN 1800
1770 PRINT TAB( 5)"YOU ARE A DISGRACE!  YOU ARE HEREBY DRUMMED OUT OF THE
1780 PRINT "AMERICAN COLLEGE OF ECOLOGISTS (ACE) AND MADE A MEMBER
1790 PRINT "OF THE AMERICAN SOCIETY OF STUPIDOS (YOU KNOW)!!!":GOTO 1920
1800 PRINT TAB( 5)"THAT'S AWFUL!  THE WILDLIFE MANAGERS OF THE WORLD HAVE
1810 PRINT "NOTHING BUT SPITE FOR YOU!":GOTO 1920
1820 PRINT TAB( 5)"THAT'S VERY POOR!  I HOPE YOU DON'T OWN PETS!":GOTO 1920
1830 PRINT TAB( 5)"THAT'S BARELY PASSABLE!  AT LEAST YOU DIDN'T LOSE ANY!":GOTO 1920
1840 PRINT TAB( 5)"NOT BAD!  YOU ARE APPOINTED A JUNIOR ECOLOGIST!"GOTO 1920
1850 PRINT TAB( 5)"PRETTY GOOD JOB!  I GUESS WE'LL HAVE TO LET
1860 PRINT "YOU JOIN THE ECOLOGIST'S CLUB":GOTO 1920
1870 PRINT TAB( 5)"GOOD JOB!!  YOU'RE A TRUE BLUE ECOLOGIST!":GOTO 1920
1880 PRINT TAB( 5)"WOW!!!  TREMENDOUS JOB!  YOU CAN TAKE MARLIN PERKINS' PLACE"
1890 PRINT "ON WILD KINGDOM WHEN HE RETIRES!!":GOTO 1920
1900 PRINT TAB( 5)"SUPER!!!!  SUPERB!!!!  FANTASTIC!!!!  MOTHER NATURE HERSELF
1910 PRINT "MUST BE ENVIOUS!!
1920 PLOT 10,10:INPUT "DO YOU WANT TO PLAY ANOTHER GAME OF NICHE? (Y/N) ";G$
1930 G$= LEFT$ (G$,1)
1940 IF G$= "Y"THEN 520
1950 IF G$= "N"THEN 9999
1960 PRINT "INVALID--REENTER
1970 GOTO 1920
3000 IF E$= "P"THEN E= 1:GOTO 3050
3010 IF E$= "L"THEN E= 2:GOTO 3050
3020 IF E$= "R"THEN E= 3:GOTO 3050
3030 IF E$= "C"OR E$= "T"THEN E= 4:GOTO 3050
3040 E= 5
3050 IF O= 1AND O+ E< 4THEN E1= 0:GOTO 3220
3060 IF O= 1THEN E1= 1:GOTO 3220
3070 IF O= 2AND O+ E= 4THEN E1= 0:GOTO 3210
3080 IF O= 2AND O+ E= 3THEN E1= .33:GOTO 3210
3090 IF O= 2THEN E1= 1:GOTO 3210
3100 IF O= 3AND O+ E= 6THEN E1= 0:GOTO 3200
3110 IF O= 3THEN E1= 1:GOTO 3200
3120 IF O= 4AND O+ E= 8THEN E1= 0:GOTO 3200
3130 IF O= 4AND O+ E= 7THEN E1= .33:GOTO 3200
3140 IF O= 4THEN E1= 1:GOTO 3200
3160 IF O+ E< 8THEN E1= 1:GOTO 3200
3170 IF O+ E> 9THEN E1= 0:GOTO 3200
3180 E1= .5
3200 U$= "HECTARES":RETURN
3210 U$= "DEKASTERES":RETURN
3220 U$= "CUBIC CENTIMETERS
3230 RETURN
4000 PRINT TAB( 5)"PARAMECIUM AURELIA (A)
4010 PRINT TAB( 5)"AMOEBA (B)
4020 PRINT TAB( 5)"PARAMECIUM BURSARIA (C)
4030 PRINT TAB( 20):INPUT C$
4040 C$= LEFT$ (C$,1)
4050 IF C$= "A"OR C$= "B"OR C$= "C"THEN R3= P:GOTO 980
4060 PRINT "INVALID--REENTER
4070 GOTO 4000
4100 PRINT TAB( 5)"SNAPPING TURTLE (D)
4110 PRINT TAB( 5)"CATFISH (E)
4120 PRINT TAB( 5)"SOCKEYE SALMON (F)
4130 PRINT TAB( 20):INPUT C$
4140 C$= LEFT$ (C$,1)
4150 IF C$= "D"OR C$= "E"OR C$= "F"THEN R3= 2000:GOTO 980
4160 PRINT "INVALID--REENTER
4170 GOTO 4100
4200 PRINT TAB( 5)"PACA (G)
4210 PRINT TAB( 5)"ARMADILLO (H)
4220 PRINT TAB( 5)"TAPIR (I)
4230 PRINT TAB( 20):INPUT C$
4240 C$= LEFT$ (C$,1)
4250 IF C$= "G"OR C$= "H"OR C$= "I"THEN R3= .6* P:GOTO 980
4260 PRINT "INVALID--REENTER
4270 GOTO 4200
4300 PRINT TAB( 5)"CHIPMUNK (J)
4310 PRINT TAB( 5)"TURKEY (K)
4320 PRINT TAB( 5)"MOUSE (L)
4330 PRINT TAB( 20):INPUT C$
4340 C$= LEFT$ (C$,1)
4350 IF C$= "J"OR C$= "K"OR C$= "L"THEN R3= .05* P:GOTO 980
4360 PRINT "INVALID--REENTER"
4370 GOTO 4300
4400 PRINT TAB( 5)"PECCARY (M)
4410 PRINT TAB( 5)"JACKRABBIT (N)
4420 PRINT TAB( 5)"POCKET MOUSE (O)
4430 PRINT TAB( 20):INPUT C$
4440 C$= LEFT$ (C$,1)
4450 IF C$= "M"OR C$= "N"OR C$= "O"THEN R3= .1* P:GOTO 980
4460 PRINT "INVALID--REENTER
4470 GOTO 4400
5000 R1= R/ R3
5010 IF R1> 25THEN R2= .4:RETURN
5020 IF R1> 10THEN R2= .3:RETURN
5030 IF R1> 5THEN R2= .2:RETURN
5040 IF R1> 2THEN R2= .1:RETURN
5050 IF R1> 1.67THEN R2= .075:RETURN
5060 IF R1> 1.33THEN R2= .05:RETURN
5070 R2= 0
5080 RETURN
6000 IF F4> 1THEN F4= 1
6010 IF F4> .9THEN F5= 2:RETURN
6020 IF F4> .7THEN F5= 1:RETURN
6030 IF F4> .5THEN F5= .67:RETURN
6040 IF F4> .25THEN F5= .33:RETURN
6050 IF F4> 0THEN F5= .1:RETURN
6060 F5= 0
6070 RETURN
9999 LOAD "MENU":RUN