The Best of Creative Computing Volume 1 (published 1976)

Page 277 << PREVIOUS >> NEXT Jump to page:
Go to contents Go to thumbnails

Super Star Trek (BASIC program listing)

graphic of page

0010 REM INSTRUCTIONS FOR "STREK" GAME
0020 REM VERSION "STRINST2" 12/8/74
0030 DIM A$(5)
0040 FOR I=1 TO 0
0050 ON I THEN GOSUB 0240,0360,0540,0640,0720,0780,0860,0910,0960
0060 PRINT 
0070 PRINT "(TO CONTINUE, HIT 'RETURN')"

0080 PRINT 
0090 INPUT A$
0100 NEXT I
0110 PRINT " 1. WHEN YOU SEE 'COMMAND ?' PRINTED, ENTER ONE OF THE LEGAL"

0120 PRINT " COMMANDS (NAV,SRS,LRS,PHA,TOR,SHE,DAM,COM, OR XXX)."

0130 PRINT " 2. IF YOU SHOULD TYPE IN AN ILLEGAL COMMAND, YOU'LL GET A SHORT"

0140 PRINT " LIST OF THE LEGAL COMMANDS PRINTED OUT."

0150 PRINT " 3. SOME COMMANDS REQUIRE YOU TO ENTER DATA. (FOR EXAMPLE, THE"

0160 PRINT " 'NAV' COMMAND COMES BACK WITH 'COURSE (1-9)?'.) IF YOU"

0170 PRINT " TYPE IN ILLEGAL DATA (LIKE NEGATIVE NUMBERS), THAT COMMAND"

0180 PRINT " WILL BE ABORTED."

0190 PRINT 
0200 PRINT " HIT (CAR RET) TO CONTINUE "

0210 INPUT A$
0220 CHAIN "STREK" THEN GOTO 0250
0230 REM *** EXIT HERE ***
0240 PRINT 
0250 PRINT " INSTRUCTIONS FOR ** STAR TREK ** "

0260 PRINT
0270 PRINT " THE GALAXY IS DIVIDED INTO AN 8 X 8 QUADRANT GRID,"

0280 PRINT " AND EACH QUADRANT IS FURTHER DIVIDED INTO AN 8 X 8 SECTOR GRID."

0290 PRINT  
0300 PRINT " YOU WILL BE ASSIGNED A STARTING POINT SOMEWHERE IN THE GALAXY"

0310 PRINT " TO BEGIN A TOUR OF DUTY AS COMMANDER OF THE STARSHIP 'ENTERPRISE';"

0320 PRINT " YOUR MISSION: TO SEEK AND DESTROY THE FLEET OF KLINGON WARSHIPS" 
0330 PRINT " WHICH ARE MENACING THE UNITED FEDERATION OF PLANETS."

0340 PRINT 
0350 RETURN
0360 PRINT " YOU HAVE THE FOLLOWING COMMANDS AVAILABLE TO YOU AS"

0370 PRINT " CAPTION OF THE STARSHIP:"

0380 PRINT " 'NAV' COMMAND = WARP ENGINE CONTROL --"

0390 PRINT " COURSE IS IN A CIRCULAR NUMERICAL 4 3 2"

0400 PRINT " VECTOR ARRANGEMENT AS SHOWN . . ."

0410 PRINT " INTEGER AND REAL VALUES MAY BE ..."

0420 PRINT " USED. (THUS, COURSE 1.5 IS HALF- 5 ----- 1"

0430 PRINT " WAY BETWEEN 1 AND 2.) ..."

0440 PRINT "  . . . "

0450 PRINT " VALUES MAY APPROACH 9.0, WHICH 6 7 8"

0460 PRINT " ITSELF IS EQUIVALENT TO 1.0." 
0470 PRINT " COURSE"

0480 PRINT " ONE WARP FACTOR IS THE SIZE OF"

0490 PRINT " ONE QUADRANT. THEREFORE, TO GET"

0500 PRINT " FROM QUADRANT 6,5 TO 5,5, YOU WOULD"

0510 PRINT " USE COURSE 3, WARP FACTOR 1."

0520 RETURN
0530 PRINT " 'SRS' COMMAND = SHORT RANGE SENSOR SCAN"

0540 PRINT " SHOWS YOU A SCAN OF YOUR PRESENT QUADRANT."

0550 PRINT " SYMBOLOGY ON YOUR SENSOR SCREEN IS AS FOLLOWS:"

0560 PRINT " (*) = YOUR STARSHIP'S POSITION"

0570 PRINT " +++ = KLINGON BATTLE CRUISER"

0580 PRINT " >!< = FEDERATION STARBASE (REFUEL/REPAIR/RE-ARM HERE!)"

0590 PRINT " * = STAR"

0600 PRINT 
0610 RETURN
0620 PRINT " 'LRS' COMMAND = LONG RANGE SENSOR SCAN"

0630 PRINT " SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE"

0640 PRINT " OF THE ENTERPRISE (WHICH IS IN THE MIDDLE OF THE SCAN)"

0650 PRINT " THE SCAN IS CODED IN THE FORM '***'. WHERE THE UNITS DIGIT"

0660 PRINT " IS THE NUMBER OF STARS, TENS DIGIT IS THE NUMBER OF STARBASES,"

0670 PRINT " AND HUNDREDS DIGIT IS THE NUMBER OF KLINGONS."

0680 PRINT " EXAMPLE -- 207 = 2 KLINGONS, NO STARBASES, 7 STARS."

0690 RETURN
0700 PRINT "'PHA' COMMAND = PHASER CONTROL"

0710 PRINT " ALLOWS YOU TO DESTROY THE KLINGON BATTLE CRUISERS BY"

0720 PRINT " ZAPPING THEM WITH SUITABLY LARGE UNITS OF ENERGY TO"

0730 PRINT " DEPLETE THEIR SHIELD POWER. (REMEMBER, KLINGONS HAVE"

0740 PRINT " PHASERS, TOO!)"

0750 RETURN
0760 PRINT "'TOR' COMMAND = PHOTON TORPEDO CONTROL"

0780 PRINT " TORPEDO COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL."

0790 PRINT " IF YOU HIT THE KLINGON VESSEL, HE IS DESTROVED AND"

0800 PRINT " CANNOT FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO"

0810 PRINT " HIS PHASER FIRE."

0820 PRINT " NOTE: THE LIBRARY-COMPUTER ('COM' COMMAND) HAS AN"

0830 PRINT " OPTION TO COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2)."

0840 RETURN
0850 PRINT "'SHE' COMMAND = SHIELD CONTROL"

0860 PRINT " DEFINES NUMBER OF ENERGY UNITS TO BE ASSIGNED TO SHIELDS."

0870 PRINT " ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY. NOTE THAT THE"

0880 PRINT " TOTAL ENERGY INCLUDES SHIELD ENERGY."

0890 RETURN
0900 PRINT "'DAM' COMMAND = DAMAGE CONTROL REPORT"

0910 PRINT " GIVES STATE OF REPAIR OF ALL DEVICES, WHERE A NEGATIVE"

0920 PRINT " 'STATE OF REPAIR' SHOWS THAT THE DEVICE IS TEMPORARILY"

0930 PRINT " DAMAGED."

0940 RETURN
0950 PRINT "'COM' COMMAND = LIBRARY-COMPUTER"

0960 PRINT " THE LIBRARY-COMPUTER CONTAINS SIX OPTIONS:"

0970 PRINT " OPTION 0 = CUMULATIVE GALACTIC RECORD"

0980 PRINT " WHICH SHOWS COMPUTER MEMORY OF THE RESULTS OF ALL PREVIOUS"

0990 PRINT " LONG RANGE SENSOR SCANS"

1000 PRINT " OPTION 1 = STATUS REPORT"

1010 PRINT " WHICH SHOWS THE NUMBER OF KLINGONS, STARDATES, AND STARBASES"

1020 PRINT " REMAINING IN THE GAME."

1030 PRINT " OPTION 2 = PHOTON TORPEDO DATA"

1040 PRINT " WHICH GIVES DIRECTIONS AND DISTANCE FROM THE ENTERPRISE"

1050 PRINT " TO ALL KLINGONS IN YOUR QUADRANT"

1060 PRINT " OPTION 3 = STARBASE NAV DATA"

1070 PRINT " WHICH GIVES DIRECTIONS AND DISTANCE TO ANY STARBASE"

1080 PRINT " WITHIN YOUR QUADRANT"

1090 PRINT " OPTION 4 = DIRECTION/DISTANCE CALCULATOR"

1100 PRINT " WHICH ALLOWS YOU TO ENTER COORDINATES FOR"

1110 PRINT " DIRECTION/DISTANCE CALCULATIONS."

1120 PRINT " OPTION 5 = GALACTIC 'REGION NAME' MAP"

1130 PRINT " WHICH PRINTS THE NAMES OF THE SIXTEEN MAJOR GALACTIC
1150 PRINT " REGIONS REFERRED TO IN THE GAME."

1160 RETURN 
1170 END 
0010 REM (VERSION "STREK7", 1/12/75 RCL)
0020 REM 
0030 REM 
0040 REM ***  *** STAR TREK *** ***
0050 REM *** SIMULATION OF A MISSION OF THE STARSHIP ENTERPRISE.

0060 REM *** AS SEEN ON THE STAR TREK TV SHOW.

0070 REM *** ORIGINAL PROGRAM BY MIKE MAYFIELD, MODIFIED VERSION
0080 REM *** PUBLISHED IN DEC'S "101 BASIC GAMES", BY DAVE AHL.

0090 REM *** MODIFICATIONS TO THE LATTER (PLUS DEBUGGING) BY
0100 REM *** BOB LEEDOM -- APRIL & DECEMBER 1974,
0110 REM *** WITH A LITTLE HELP FROM HIS FRIENDS . . .

0120 REM *** COMMENTS, EPITHETS, AND SUGGESTIONS SOLICITED -0130 REM *** ADDRESS
TO: R.C.LEEDOM
0140 REM *** WESTINGHOUSE DEFENSE & ELECTRONIC SYSTEMS CNTR.

0150 REM *** BOX 745, M.S. 338 BALTIMORE, MD 21203
0160 RANDOMIZE
0170 PRINT TAB(15); "* * * STAR TREK * * *"

0180 PRINT
0190 PRINT " DO YOU NEED INSTRUCTIONS (YES/NO)";
0200 DIM A$[20]
0210 INPUT A$
0220 IF A$<>"YES" THEN GOTO 0240
0230 CHAIN "STINST"

0240 REM PROGRAM BEGINS HERE . . . . .

0250 DIM Z$[72],Q$[72],R$[72],S$[72[
0260 DIM G1$[150],G2$[16],G3$[3],G4$[3]
0270 FOR I=1 TO 72
0280 LET Z$[I,1]=" "

0290 LET Q$[I,1]=" "

0300 LET R$[I,1]=" "

0310 LET S$[I,1]=" "

0320 NEXT I
0330 DIM 0[8,8],C[9,2],K[3,3],N[3],Z[8,]
0340 DIM 01$[40],C$[10]
0350 DIM A1$[20],T$[6]
0360 DIM D$[96],03$[60]
0370 LET T=INT(RND(1)+20+20)*100
0380 LET T0=T
0390 LET T9=30
0400 LET D0=0
0410 LET E0=3000
0420 LET E=E0
0430 LET P=10
0440 LET P0=P
0450 LET S9=200
0460 LET S=0
0470 DEF FND(D)=SQR((K[I,1]-S1)^2+(K[I,2]-S2)^2)
0480 REM INITIALIZE ENTERPRISE'S POSITION
0490 LET Q1=INT(RND(1)*8+1)
0500 LET Q2=INT(RND(1)*8+1)
0510 LET S1=INT(RND(1)*8+1)
0520 LET S2=INT(RND(1)*8+1)
0530 MAT C=ZER
0540 LET C[3,1]=-1
0550 LET C[2,1]=-1
0560 LET C[4,1]=-1
0570 LET C[4,2]=-1
0580 LET C[5,2]=-1
0590 LET C[6,2]=-1
0600 LET C[1,2]=1
0610 LET C[2,2]=1
0620 LET C[6,1]=1
0630 LET C[7,1]=1
0640 LET C[8,1]=1
0650 LET C[8,2]=1
0660 LET C[9,2]=1
0670 DIM D(8)
0680 FOR I=1 TO 8
0690 LET D[1]=0
0700 NEXT I 
0710 LET A1$="NSLPTSDCX"

0720 LET D$="WARP ENGINESS R. SENSORSL T SENSORSPHASER CNTRL"

0730 LET D$=D$,"PHOTON TUBESDAMAGE CNTRLSHIELD CNTRLCOMPUTER"

0740 LET G4$="III"

0750 LET G1$="ANTARES. SIRIUS.RIGEL.DENEB.PROCYON.CAPELLA.VEGA."

0760 LET G1$=G1$, "BETELGEUSE.CANOPUS.ALDEBARAN.ALTAIR.REGULUS."

0770 LET G1$=G1$,"SAGITTARIUS.ARCTURUS.POLLUX.SPICA."

0780 LET B9=0
0790 LET K9=0
0800 LET A1$="NSLPTSDCX"

0810 REM SET UP WHAT EXISTS IN GALAXY ...

0820 FOR I=1 TO 8
0830 FOR J=1 TO 8
0840 LET R1=RND(1)
0850 IF R1>. 98 THEN GOTO 0900
0860 IF R1>. 95 THEN GOTO 0930
0870 IF R1>. 8 THEN GOTO 0960 
0880 LET K3=0
0890 GOTO 0980
0900 LET K3=3
0910 LET K9=K9+3
0920 GOTO 0980
0930 LET K3=2
0940 LET K9=K9+2
0950 GOTO 0980
0960 LET K3=1
0970 LET K9=K9+1
0980 LET R1=RND(1)
0990 OF R1>. 96 THEN GOTO 1020
1000 LET B3=0
1010 GOTO 1040 
1020 LET B3=1
1030 LET B9=B9+1
1040 LET S3=INT(RND(1)*8+1)
1050 LET G[I,J]=K3*100+B3*10+S3
1060 REM K3=#KLINGONS B3=#STARBASES S3=#STARS
1070 LET Z[I,J]=0
1080 NEXT J
1090 NEXT I
1100 LET K7=K9
1110 DIM X$[2],X0$[5]
1120 LET X$=""

1130 LET X0$=" IS"

1140 IF B9<>0 THEN GOTO 1200
1150 LET B9=1
1160 IF G[6,3]>200 THEN GOTO 1190
1170 LET G[6,3]=G[6,3]+100
1180 LET K9=K9+1
1190 LET G[6,3]=G[6,3]+10
1200 IF B9=1 THEN GOTO 1230
1210 LET X$="S"

1220 LET X0$="ARE"

1230 PRINT "YOUR ORDERS ARE AS FOLLOWS:"

1240 PRINT " DESTROY THE "K9" KLINGON WARSHIPS WHICH HAVE INVADED"

1250 PRINT " THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS"

1260 PRINT " ON STARDATE"T0+T9"; THIS GIVES YOU"T9" DAYS. THERE"X0$
1270 PRINT " "B9" STARBASE";X$" IN THE GALAXY FOR RESUPPLYING YOUR SHIP."

1280 PRINT 
1290 PRINT "HIT 'RETURN' WHEN READY TO ASSUME COMMAND ---"

Page 277 << PREVIOUS >> NEXT Jump to page:
Go to contents Go to thumbnails