1000 REM *** BEASTI *** PAPER-TAPE BASIC VERSION 1010 REM ORIGINAL BEASTI.D600 MODIFIED FOR TSB-E W/ MOD HP2100 SIM 1020 REM EXTENSIVE MODS MADE TO FLOW TO MAKE IT SHOW FINAL CONFIG 1030 REM RESULTING IN MUCH SPAGETTI..WHATEVER TO MAKE IT WORK 1040 REM FURTHER MODIFIED FOR HP PAPER-TAPE BASIC (2008) 1050 REM STRING INPUT REPLACED BY NUMERIC INPUT, REP'D B$ W/ Z[] 1060 REM TERMINAL CODES REMOVED, DID OTHER STUFF 1070 REM T9=NUMBER OF TURNS 1080 LET T9=50 1100 PRINT "ENTER 1 FOR INSTRUCTIONS OR SEED NUMBER "; 1110 INPUT Z9 1120 IF Z9=1 THEN 2860 1149 REM SEED RNG (ADDED) 1150 FOR I=0 TO Z9 1160 LET J=RND(0) 1170 NEXT I 1250 DIM B[10,10],O[20,20],M[9,2],Z[7] 1260 REM "EWSNRTJ" ---> 6428510 IN Z ARRAY INSTEAD OF B$ 1261 REM IF USING A NUMERIC KEYPAD THIS MAKES SENSE 1262 DATA 6,4,2,8,5,1,0 1263 FOR I=1 TO 7 1264 READ Z[I] 1265 NEXT I 1270 DATA 0,1,0,-1,1,0,-1,0,0,0,-1,-1,1,1,-1,1,1,-1 1280 LET F=0 1290 FOR I=1 TO 9 1300 FOR K=1 TO 2 1310 READ M[I,K] 1320 NEXT K 1330 NEXT I 1340 REM INITIALIZE BOARD 1350 MAT B=ZER 1360 LET Z=RND(0) 1370 LET O=10 1380 FOR I=1 TO 10 1390 LET X=INT(RND(0)*10)+1 1400 LET Y=INT(RND(0)*10)+1 1410 IF B[X,Y]#0 THEN 1390 1420 LET O[I,1]=X 1430 LET O[I,2]=Y 1440 LET B[X,Y]=10 1450 NEXT I 1460 LET O=10 1470 REM PUT BEASTI ON BOARD 1480 LET X=INT(RND(0)*10)+1 1490 LET Y=INT(RND(0)*10)+1 1500 IF B[X,Y]#0 THEN 1480 1510 LET B[X,Y]=-1 1520 REM PUT ORGANISM EATER ON BOARD 1530 LET X0=INT(RND(0)*10)+1 1540 LET Y0=INT(RND(0)*10)+1 1550 IF B[X0,Y0]#0 THEN 1530 1560 LET B[X0,Y0]=100 1570 REM INITIALIZE FOR GAME:V0 IS AGGRESSIVENESS OF BEASTI 1579 REM WAS V0=1.E-35 1580 LET V0=1.00000E-35 1590 FOR I0=1 TO T9 1600 PRINT 1610 PRINT "TIME =";I0 1620 REM PRINT OUT THE BOARD 1622 REM DID STUFF HERE 1625 PRINT ".---------------------." 1630 FOR X1=1 TO 10 1635 PRINT ":"; 1640 FOR Y1=1 TO 10 1650 IF B[X1,Y1] >= 0 THEN 1680 1660 PRINT " +"; 1670 GOTO 1750 1680 IF B[X1,Y1]>0 THEN 1710 1689 REM WAS " .";... 1690 PRINT " "; 1700 GOTO 1750 1710 IF B[X1,Y1]=100 THEN 1740 1720 PRINT " 0"; 1730 GOTO 1750 1740 PRINT " *"; 1750 NEXT Y1 1760 PRINT " :" 1770 NEXT X1 1775 PRINT "`---------------------'" 1776 REM FLOW CHANGE... 1777 IF O=0 THEN 2240 1778 IF B[X0,Y0]=-1 THEN 2660 1779 IF I0>T9 THEN 2820 1780 PRINT "MOVE "; 1790 INPUT A9 1800 REM GOTTA FIX THIS.. JUMPING OUT OF A NEXT 1802 REM JUST AIN'T RIGHT, SOME BASICS MAY OBJECT 1803 LET J9=0 1810 FOR J=1 TO 7 1820 IF A9#Z[J] THEN 1830 1825 LET J9=J 1830 NEXT J 1835 LET J=J9 1840 IF J#0 THEN 1850 1841 PRINT "ENTER DIGIT: 6,4,2,8,5,1,0" 1842 PRINT "TO REPRESENT E W S N R T J" 1843 PRINT "(NUMERICAL KEYPAD)" 1844 GOTO 1780 1850 IF J<6 THEN 1990 1860 IF J=6 THEN 1960 1870 LET X1=INT(RND(0)*10)+1 1880 LET Y1=INT(RND(0)*10)+1 1890 IF X1#X0 THEN 1910 1900 IF Y1=Y0 THEN 1870 1910 IF B[X1,Y1] >= 0 THEN 2130 1920 PRINT "*** SPLAT ***" 1930 PRINT "YOU JUST SMASHED THE BEASTI!!!!" 1940 LET F=1 1950 GOTO 2300 1960 LET X1=Y0 1970 LET Y1=X0 1980 GOTO 2100 1990 LET X1=X0+M[J,1] 2000 LET Y1=Y0+M[J,2] 2010 IF J=5 THEN 2300 2020 IF X1#11 THEN 2040 2030 LET X1=X1-10 2040 IF X1#0 THEN 2060 2050 LET X1=X1+10 2060 IF Y1#11 THEN 2080 2070 LET Y1=Y1-10 2080 IF Y1#0 THEN 2100 2090 LET Y1=Y1+10 2100 IF B[X1,Y1] >= 0 THEN 2130 2110 PRINT "NO NO NO..MUSNT EAT THE BEASTI" 2120 GOTO 1780 2130 IF B[X1,Y1]=0 THEN 2300 2140 IF B[X1,Y1]=100 THEN 2300 2150 FOR I=1 TO O 2160 IF X1#O[I,1] THEN 2180 2165 REM MODS HERE TO FIX 2170 IF Y1#O[I,2] THEN 2180 2171 LET O[I,1]=O[O,1] 2172 LET O[I,2]=O[O,2] 2180 NEXT I 2210 LET O=O-1 2220 PRINT "***** GULP *****" 2229 REM WAS IF O>0 THEN 2300 2230 GOTO 2300 2240 PRINT "CONGRATULATIONS!... YOU HAVE SURVIVED THROUGH ANOTHER DAY" 2250 PRINT "ENTER 1 TO CONTINUE "; 2270 INPUT Z9 2280 IF Z9=1 THEN 1350 2290 STOP 2300 LET B[X0,Y0]=0 2310 LET B[X1,Y1]=100 2320 LET X0=X1 2330 LET Y0=Y1 2340 REM MOVE THE ORGANISM 2344 REM FLOW CHANGE... 2345 IF O=0 THEN 2810 2350 FOR I=1 TO O 2360 LET R=INT(RND(0)*4)+1 2370 LET X1=O[I,1]+M[R,1] 2380 LET Y1=O[I,2]+M[R,2] 2390 IF X1>10 THEN 2500 2400 IF X1<1 THEN 2500 2410 IF Y1>10 THEN 2500 2420 IF Y1<1 THEN 2500 2430 IF B[X1,Y1]#0 THEN 2500 2440 LET Z0=O[I,1] 2450 LET Z1=O[I,2] 2460 LET B[Z0,Z1]=0 2470 LET O[I,1]=X1 2480 LET O[I,2]=Y1 2490 LET B[X1,Y1]=10 2500 NEXT I 2510 REM MOVE THE BEASTI 2520 IF F=1 THEN 2810 2530 REM IF O>5 THEN 1440 2540 REM V0=O 2550 LET M=1.00000E+20 2560 FOR I=1 TO 9 2570 LET X1=X+M[I,1] 2580 LET Y1=Y+M[I,2] 2590 IF X1>10 THEN 2760 2600 IF X1<1 THEN 2760 2610 IF Y1>10 THEN 2760 2620 IF Y1<1 THEN 2760 2630 IF B[X1,Y1]=10 THEN 2760 2640 IF B[X1,Y1]#100 THEN 2680 2650 PRINT "*** GULP! ***" 2652 REM FLOW CHANGE TO SHOW END CONFIG 2653 LET B[X,Y]=0 2654 LET B[X1,Y1]=-1 2655 GOTO 2810 2660 PRINT "THE BEASTI THANKS YOU FOR YOUR COOPERATION" 2670 GOTO 2250 2680 LET S=0 2690 FOR J=1 TO O 2700 LET S=S+(O[J,1]-X1)^2+(O[J,2]-Y1)^2 2710 NEXT J 2720 LET S=S+V0*((X1-X0)^2+(Y1-Y0)^2) 2730 IF S>M THEN 2760 2740 LET M=S 2750 LET B=I 2760 NEXT I 2770 LET B[X,Y]=0 2780 LET X=X+M[B,1] 2790 LET Y=Y+M[B,2] 2800 LET B[X,Y]=-1 2810 NEXT I0 2812 REM FLOW CHANGE... 2813 GOTO 1600 2820 PRINT "YOU HAVE NOT EATEN YOUR MINIMUM DAILY REQUIREMENTS"; 2821 PRINT " OF ORGANISMS" 2830 PRINT "*** STARVATION ***" 2840 GOTO 2250 2850 PRINT 2860 PRINT 2870 PRINT "THE OBJECT OF THE GAME IS TO EAT ALL OF THE ORGANISMS" 2880 PRINT 2890 PRINT "EACH MOVE TAKES UP ONE HOUR." 2900 PRINT "THERE IS A BEASTI WHICH HAS ONLY ONE OBJECTIVE:" 2910 PRINT " TO EAT YOU!" 2920 PRINT 2930 PRINT "THE BEASTI EATS YOU BY MOVING TO OCCUPY YOUR SPACE" 2940 PRINT "THE SAME APPLYS WITH YOU EATING THE ORGANISIMS." 2950 PRINT "YOU HAVE THE FOLLOWING MOVES: 6 4 2 8 5 1 (FOR EWSNRT)" 2960 PRINT 3000 PRINT " 0 (J) JUMP (RANDOM)" 3010 PRINT " NOTE: IF YOU LAND ON THE BEASTI," 3020 PRINT " IT IS CRUSHED. ***HOWEVER***" 3030 PRINT " YOU MAY LAND RIGHT BESIDE THE" 3040 PRINT " BEASTI, IN WHICH CASE IT'S" 3050 PRINT " *** LUNCHTIME ***" 3060 PRINT 3070 PRINT "THE BEASTI CAN MOVE HORIZONTALLY, VERTICALLY, OR"; 3071 PRINT " DIAGONALLY ONE" 3080 PRINT "SPACE EACH HOUR. IF YOU MOVE OFF THE BOARD, YOU WILL"; 3081 PRINT " REAPPEAR" 3090 PRINT "ON THE OPPOSITE SIDE." 3100 PRINT " * = YOU" 3110 PRINT " + = *BEASTI*" 3120 PRINT " O = ORGANISMS" 3129 REM REM ADDED PAUSE... 3130 PRINT "THE BEASTI IS INTELLIGENT, SO BE CAREFULL !!"; 3131 PRINT " ENTER SEED NUMBER "; 3135 INPUT Z9 3138 PRINT 3140 GOTO 1150 3150 END