├── 1check.bas ├── 23mtch.bas ├── 3dplot.bas ├── NOTES.md ├── README.md ├── aceydu.bas ├── amazin.bas ├── animal.bas ├── awari.bas ├── bagels.bas ├── banner.bas ├── basbal.bas ├── basbl1.bas ├── basket.bas ├── batnum.bas ├── battle.bas ├── bingo.bas ├── blkjac.bas ├── blkjak.bas ├── boat.bas ├── bomber.bas ├── bounce.bas ├── bowl.bas ├── boxing.bas ├── bug.bas ├── buleye.bas ├── bull.bas ├── bullcow.bas ├── buzzwd.bas ├── calndr.bas ├── canam.bas ├── change.bas ├── checkr.bas ├── chemst.bas ├── chief.bas ├── chomp.bas ├── civilw.bas ├── craps.bas ├── cube.bas ├── diamnd.bas ├── dice.bas ├── digits.bas ├── dogs.bas ├── even.bas ├── even1.bas ├── fipfop.bas ├── footbl.bas ├── fotbal.bas ├── furs.bas ├── golf.bas ├── gomoko.bas ├── guess.bas ├── guner1.bas ├── gunner.bas ├── hang.bas ├── hello.bas ├── hex.bas ├── hi-lo.bas ├── hi-q.bas ├── hmrabi.bas ├── hockey.bas ├── horses.bas ├── hurkle.bas ├── kinema.bas ├── king.bas ├── letter.bas ├── life.bas ├── life2.bas ├── litqz.bas ├── mathd.bas ├── mnopfl.bas ├── mnoply.bas ├── mugwump.bas ├── nicoma.bas ├── nim.bas ├── number.bas ├── orbit.bas ├── pizza.bas ├── poet.bas ├── poetry.bas ├── poker.bas ├── qubic.bas ├── queen.bas ├── reverse.bas ├── rocket.bas ├── rocksp.bas ├── rockt1.bas ├── rockt2.bas ├── roulet.bas ├── rusrou.bas ├── salvo.bas ├── salvo1.bas ├── slots.bas ├── spcwar.bas ├── splat.bas ├── stars.bas ├── stock.bas ├── synonm.bas ├── target.bas ├── tictac.bas ├── tower.bas ├── train.bas ├── trap.bas ├── ugly.bas ├── war.bas ├── war2.bas ├── wekday.bas ├── word.bas ├── yahtze.bas └── zoop.bas /1check.bas: -------------------------------------------------------------------------------- 1 | 5 PRINT 2 | 10 PRINT "SOLITAIRE CHECKER PUZZLE BY DAVID AHL" 3 | 15 PRINT 4 | 20 PRINT "48 CHECKERS ARE PLACED ON THE 2 OUTSIDE SPACES OF A" 5 | 25 PRINT "STANDARD 64-SQUARE CHECKERBOARD. THE OBJECT IS TO" 6 | 30 PRINT "REMOVE AS MANY CHECKERS AS POSSIBLE BY DIAGONAL JUMPS" 7 | 35 PRINT "(AS IN STANDARD CHECKERS). USE THE NUMBERED BOARD TO" 8 | 40 PRINT "INDICATE THE SQUARE YOU WISH TO JUMP FROM AND TO. ON" 9 | 45 PRINT "THE BOARD PRINTED OUT ON EACH TURN '1' INDICATES A" 10 | 50 PRINT "CHECKER AND '0' AN EMPTY SQUARE. WHEN YOU HAVE NO" 11 | 55 PRINT "POSSIBLE JUMPS REMAINING, INPUT A '0' IN RESPONSE TO" 12 | 60 PRINT "QUESTION 'JUMP FROM ?'" 13 | 62 PRINT 14 | 65 PRINT "HERE IS THE NUMERICAL BOARD:" 15 | 66 PRINT 16 | 68 DIM A(64) 17 | 70 FOR J=1 TO 57 STEP 8 18 | 72 B$="## ## ## ## ## ## ## ##" 19 | 74 PRINT USING B$;J,J+1,J+2,J+3,J+4,J+5,J+6,J+7 20 | 76 NEXT J 21 | 77 PRINT 22 | 78 PRINT "AND HERE IS THE OPENING POSITION OF THE CHECKERS:" 23 | 79 PRINT 24 | 80 FOR J=1 TO 64 25 | 82 A(J)=1 26 | 84 NEXT J 27 | 86 FOR J=19 TO 43 STEP 8 28 | 88 FOR I=J TO J+3 29 | 90 A(I)=0 30 | 92 NEXT I 31 | 94 NEXT J 32 | 96 M=0 33 | 98 GOTO 340 34 | 100 INPUT "JUMP FROM";F 35 | 105 IF F=0 THEN 500 36 | 110 INPUT "TO";T 37 | 112 PRINT 38 | 118 REM *** CHECK LEGALITY OF MOVE 39 | 120 F1=INT((F-1)/8) 40 | 130 F2=F-8*F1 41 | 140 T1=INT((T-1)/8) 42 | 150 T2=T-8*T1 43 | 160 IF F1>7 THEN 230 44 | 170 IF T1>7 THEN 230 45 | 180 IF F2>8 THEN 230 46 | 190 IF T2>8 THEN 230 47 | 200 IF ABS(F1-T1)<>2 THEN 230 48 | 210 IF ABS(F2-T2)<>2 THEN 230 49 | 212 IF A((T+F)/2)=0 THEN 230 50 | 215 IF A(F)=0 THEN 230 51 | 220 IF A(T)=1 THEN 230 52 | 225 GOTO 250 53 | 230 PRINT "ILLEGAL MOVE. TRY AGAIN..." 54 | 240 GOTO 100 55 | 245 REM *** UPDATE BOARD 56 | 250 A(T)=1 57 | 260 A(F)=0 58 | 270 A((T+F)/2)=0 59 | 290 M=M+1 60 | 310 REM *** PRINT BOARD 61 | 340 FOR J=1 TO 57 STEP 8 62 | 350 FOR I=J TO J+7 63 | 360 PRINT A(I); 64 | 370 NEXT I 65 | 380 PRINT 66 | 390 NEXT J 67 | 400 PRINT 68 | 410 GOTO 100 69 | 490 REM *** END GAME SUMMARY 70 | 500 S=0 71 | 510 FOR I=1 TO 64 72 | 520 S=S+A(I) 73 | 530 NEXT I 74 | 535 PRINT 75 | 540 PRINT "YOU MADE"M"JUMPS AND HAD"S"PIECES" 76 | 550 PRINT "REMAINING ON THE BOARD." 77 | 560 PRINT 78 | 562 INPUT "TRY AGAIN";A$ 79 | 570 IF A$="YES" THEN 70 80 | 575 IF A$="NO" THEN 600 81 | 580 PRINT "PLEASE ANSWER 'YES' OR 'NO'." 82 | 590 GOTO 562 83 | 600 PRINT 84 | 610 PRINT "O.K. HOPE YOU HAD FUN!" 85 | 999 END 86 | 87 | -------------------------------------------------------------------------------- /23mtch.bas: -------------------------------------------------------------------------------- 1 | 100 REM ***23 MATCHES 2 | 110 PRINT "LET'S PLAY 23 MATCHES. WE START WITH 23 MATCHES." 3 | 115 PRINT "YOU MOVE FIRST. YOU MAY TAKE 1, 2 OR 3 MATCHES." 4 | 120 PRINT "THEN I MOVE... I MAY TAKE 1, 2 OR 3 MATCHES." 5 | 125 PRINT "YOU MOVE, I MOVE AND SO ON. THE ONE WHO HAS TO" 6 | 130 PRINT "TAKE THE LAST MATCH LOSES." 7 | 135 PRINT "GOOD LUCK AND MAY THE BEST COMPUTER (HA HA) WIN." 8 | 140 PRINT 9 | 150 LET M=23 10 | 200 REM *** THE HUMAN MOVES 11 | 205 PRINT 12 | 210 PRINT "THERE ARE NOW";M;"MATCHES." 13 | 215 PRINT 14 | 220 PRINT "HOW MANY DO YOU TAKE" 15 | 230 INPUT H 16 | 240 IF H>M THEN 510 17 | 250 IF H<>INT(H) THEN 510 18 | 260 IF H<=0 THEN 510 19 | 270 IF H>=4 THEN 510 20 | 280 LET M=M-H 21 | 290 IF M=0 THEN 410 22 | 300 REM *** THE COMPUTER MOVES 23 | 305 IF M=1 THEN 440 24 | 310 LET R=M-4*INT(M/4) 25 | 320 IF R<>1 THEN 350 26 | 330 LET C=INT(3*RND(0))+1 27 | 340 GO TO 360 28 | 350 LET C=(R+3)-4*INT((R+3)/4) 29 | 360 LET M=M-C 30 | 370 IF M=0 THEN 440 31 | 375 PRINT 32 | 380 PRINT "I TOOK";C;"..." 33 | 390 GO TO 210 34 | 400 REM *** SOMEBODY WON (SEE LINES 290,305,370) 35 | 410 PRINT 36 | 420 PRINT "I WON!! BETTER LUCK NEXT TIME." 37 | 430 GO TO 140 38 | 440 PRINT 39 | 450 PRINT "O.K. SO YOU WON. LET'S PLAY AGAIN." 40 | 460 GO TO 140 41 | 500 REM *** THE HUMAN CHEATED (SEE LINES 240 THRU 270) 42 | 510 PRINT "YOU CHEATED! BUT I'LL GIVE YOU ANOTHER CHANCE." 43 | 520 GO TO 215 44 | 999 END 45 | -------------------------------------------------------------------------------- /3dplot.bas: -------------------------------------------------------------------------------- 1 | 5 DEF FNA(Z)=30*EXP(-Z*Z/100) 2 | 100 PRINT 3 | 110 FOR X=-30 TO 30 STEP 1.5 4 | 120 L=0 5 | 130 Y1=5*INT(SQR(900-X*X)/5) 6 | 140 FOR Y=Y1 TO -Y1 STEP -5 7 | 150 Z=INT(25+FNA(SQR(X*X+Y*Y))-.7*Y) 8 | 160 IF Z<=L THEN 190 9 | 170 L=Z 10 | 180 PRINT TAB(Z)"*"; 11 | 190 NEXT Y 12 | 200 PRINT 13 | 210 NEXT X 14 | 300 END -------------------------------------------------------------------------------- /aceydu.bas: -------------------------------------------------------------------------------- 1 | 10 REM *** GAME OF ACEY-DUCEY WRITTEN BY BILL PALMBY 2 | 20 REM *** ADLAI STEVENSON HIGH SCHOOL PRAIRIE VIEW, ILL 3 | 30 REM *** TRANSLATED TO RSTS/E BY DAVE AHL, DIGITAL 4 | 100 RANDOMIZE 5 | 101 PRINT "ACEY-DUCEY IS PLAYED IN THE FOLLOWING MANNER:" 6 | 102 PRINT "THE DEALER (COMPUTER) DEALS TWO CARDS FACE UP." 7 | 103 PRINT "YOU HAVE THE OPTION TO BET OR NOT TO BET DEPENDING" 8 | 104 PRINT "ON WHETHER OR NOT YOU FEEL THE NEXT CARD WILL HAVE" 9 | 105 PRINT "A VALUE BETWEEN THE FIRST TWO." 10 | 106 PRINT "IF YOU DO NOT WANT TO BET, INPUT A 0." 11 | 110 PRINT 12 | 160 N=100:Q=100 13 | 190 PRINT "YOU NOW HAVE"Q"DOLLARS." 14 | 195 PRINT 15 | 200 GOTO 260 16 | 210 Q=Q+M 17 | 220 GOTO 190 18 | 240 Q=Q-M 19 | 250 GOTO 190 20 | 260 PRINT "HERE ARE YOUR NEXT TWO CARDS..." 21 | 270 A=INT(14*RND)+2 22 | 280 IF A<2 THEN 270 23 | 290 IF A>14 THEN 270 24 | 300 B=INT(14*RND)+2 25 | 310 IF B<2 THEN 300 26 | 320 IF B>14 THEN 300 27 | 330 IF A>=B THEN 270 28 | 350 IF A<11 THEN 400 29 | 360 IF A=11 THEN 420 30 | 370 IF A=12 THEN 440 31 | 380 IF A=13 THEN 460 32 | 390 IF A=14 THEN 480 33 | 400 PRINT A 34 | 410 GOTO 500 35 | 420 PRINT "JACK" 36 | 430 GOTO 500 37 | 440 PRINT "QUEEN" 38 | 450 GOTO 500 39 | 460 PRINT "KING" 40 | 470 GOTO 500 41 | 480 PRINT "ACE" 42 | 500 IF B<11 THEN 550 43 | 510 IF B=11 THEN 570 44 | 520 IF B=12 THEN 590 45 | 530 IF B=13 THEN 610 46 | 540 IF B=14 THEN 630 47 | 550 PRINT B 48 | 560 GOTO 650 49 | 570 PRINT "JACK" 50 | 580 GOTO 650 51 | 590 PRINT "QUEEN" 52 | 600 GOTO 650 53 | 610 PRINT "KING" 54 | 620 GOTO 650 55 | 630 PRINT "ACE" 56 | 650 PRINT 57 | 660 INPUT "WHAT IS YOUR BET";M 58 | 670 IF M<>0 THEN 680 59 | 675 PRINT "CHICKEN!!":PRINT 60 | 677 GOTO 260 61 | 680 IF M<=Q THEN 730 62 | 690 PRINT "SORRY, MY FRIEND, BUT YOU BET TOO MUCH" 63 | 700 PRINT "YOU HAVE ONLY"Q"DOLLARS TO BET." 64 | 710 GOTO 650 65 | 730 C=INT(14*RND)+2 66 | 740 IF C<2 THEN 730 67 | 750 IF C>14 THEN 730 68 | 760 IF C<11 THEN 810 69 | 770 IF C=11 THEN 830 70 | 780 IF C=12 THEN 850 71 | 790 IF C=13 THEN 870 72 | 800 IF C=14 THEN 890 73 | 810 PRINT C 74 | 820 GOTO 910 75 | 830 PRINT "JACK" 76 | 840 GOTO 910 77 | 850 PRINT "QUEEN" 78 | 860 GOTO 910 79 | 870 PRINT "KING" 80 | 880 GOTO 910 81 | 890 PRINT "ACE" 82 | 910 IF C>A THEN 930 83 | 920 GOTO 970 84 | 930 IF C>=B THEN 970 85 | 950 PRINT "YOU WIN!!!" 86 | 960 GOTO 210 87 | 970 PRINT "SORRY, YOU LOSE." 88 | 980 IF M1 THEN 150 7 | 131 IF V<>1 THEN 150 8 | 132 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN" 9 | 140 PRINT 10 | 141 GO TO 120 11 | 150 PRINT 12 | 151 PRINT 13 | 160 LET Q=0 14 | 161 LET Z=0 15 | 162 LET X=INT(RND(0)*H+1) 16 | 163 FOR I=1 TO H 17 | 170 IF I=X THEN 173 18 | 171 PRINT ":--"; 19 | 172 GO TO 180 20 | 173 PRINT ": "; 21 | 180 NEXT I 22 | 190 PRINT ":" 23 | 191 LET C=1 24 | 192 LET W(X,1)=C 25 | 193 LET C=C+1 26 | 200 LET R=X 27 | 201 LET S=1 28 | 202 GO TO 260 29 | 210 IF R<>H THEN 240 30 | 211 IF S<>V THEN 230 31 | 220 LET R=1 32 | 221 LET S=1 33 | 222 GO TO 250 34 | 230 LET R=1 35 | 231 LET S=S+1 36 | 232 GO TO 250 37 | 240 LET R=R+1 38 | 250 IF W(R,S)=0 THEN 210 39 | 260 IF R-1=0 THEN 530 40 | 261 IF W(R-1,S)<>0 THEN 530 41 | 270 IF S-1=0 THEN 390 42 | 280 IF W(R,S-1)<>0 THEN 390 43 | 290 IF R=H THEN 330 44 | 300 IF W(R+1,S)<>0 THEN 330 45 | 310 LET X=INT(RND(0)*3+1) 46 | 320 IF X=1 THEN 790 47 | 321 IF X=2 THEN 820 48 | 322 IF X=3 THEN 860 49 | 330 IF S<>V THEN 340 50 | 331 IF Z=1 THEN 370 51 | 332 LET Q=1 52 | 333 GO TO 350 53 | 340 IF W(R,S+1)<>0 THEN 370 54 | 350 LET X=INT(RND(0)*3+1) 55 | 360 IF X=1 THEN 790 56 | 361 IF X=2 THEN 820 57 | 362 IF X=3 THEN 910 58 | 370 LET X=INT(RND(0)*2+1) 59 | 380 IF X=1 THEN 790 60 | 381 IF X=2 THEN 820 61 | 390 IF R<>H THEN 470 62 | 400 IF W(R+1,S)<>0 THEN 470 63 | 401 IF S<>V THEN 420 64 | 410 IF Z=1 THEN 450 65 | 411 LET Q=1 66 | 412 GO TO 430 67 | 420 IF W(R,S+1)<>0 THEN 450 68 | 430 LET X=INT(RND(0)*3+1) 69 | 440 IF X=1 THEN 790 70 | 441 IF X=2 THEN 860 71 | 442 IF X=3 THEN 910 72 | 450 LET X=INT(RND(0)*2+1) 73 | 460 IF X=1 THEN 790 74 | 461 IF X=2 THEN 860 75 | 470 IF S<>V THEN 490 76 | 480 IF Z=1 THEN 520 77 | 481 LET Q=1 78 | 482 GO TO 500 79 | 490 IF W(R,S+1)<>0 THEN 520 80 | 500 LET X=INT(RND(0)*2+1) 81 | 510 IF X=1 THEN 790 82 | 511 IF X=2 THEN 910 83 | 520 GO TO 790 84 | 530 IF S-1=0 THEN 670 85 | 540 IF W(R,S-1)<>0 THEN 670 86 | 541 IF R=H THEN 610 87 | 542 IF W(R+1,S)<>0 THEN 610 88 | 550 IF S<>V THEN 560 89 | 551 IF Z=1 THEN 590 90 | 552 LET Q=1 91 | 553 GO TO 570 92 | 560 IF W(R,S+1)<>0 THEN 590 93 | 570 LET X=INT(RND(0)*3+1) 94 | 580 IF X=1 THEN 820 95 | 581 IF X=2 THEN 860 96 | 582 IF X=3 THEN 910 97 | 590 LET X=INT(RND(0)*2+1) 98 | 600 IF X=1 THEN 820 99 | 601 IF X=2 THEN 860 100 | 610 IF S<>V THEN 630 101 | 620 IF Z=1 THEN 660 102 | 621 LET Q=1 103 | 622 GO TO 640 104 | 630 IF W(R,S+1)<>0 THEN 660 105 | 640 LET X=INT(RND(0)*2+1) 106 | 650 IF X=1 THEN 820 107 | 651 IF X=2 THEN 910 108 | 660 GO TO 820 109 | 670 IF R=H THEN 740 110 | 680 IF W(R+1,S)<>0 THEN 740 111 | 681 IF S<>V THEN 700 112 | 690 IF Z=1 THEN 730 113 | 691 LET Q=1 114 | 692 GO TO 830 115 | 700 IF W(R,S+1)<>0 THEN 730 116 | 710 LET X=INT(RND(0)*2+1) 117 | 720 IF X=1 THEN 860 118 | 721 IF X=2 THEN 910 119 | 730 GO TO 860 120 | 740 IF S<>V THEN 760 121 | 750 IF Z=1 THEN 780 122 | 751 LET Q=1 123 | 752 GO TO 770 124 | 760 IF W(R,S+1)<>0 THEN 780 125 | 770 GO TO 910 126 | 780 GO TO 1000 127 | 790 LET W(R-1,S)=C 128 | 800 LET C=C+1 129 | 801 LET V(R-1,S)=2 130 | 802 LET R=R-1 131 | 810 IF C=H*V+1 THEN 1010 132 | 811 LET Q=0 133 | 812 GO TO 260 134 | 820 LET W(R,S-1)=C 135 | 830 LET C=C+1 136 | 840 LET V(R,S-1)=1 137 | 841 LET S=S-1 138 | 842 IF C>H*V+1 THEN 1010 139 | 850 LET Q=0 140 | 851 GO TO 260 141 | 860 LET W(R+1,S)=C 142 | 870 LET C=C+1 143 | 871 IF V(R,S)=0 THEN 880 144 | 872 LET V(R,S)=3 145 | 873 GO TO 890 146 | 880 LET V(R,S)=2 147 | 890 LET R=R+1 148 | 900 IF C>H*V+1 THEN 1010 149 | 902 GO TO 530 150 | 910 IF Q=1 THEN 960 151 | 920 LET W(R,S+1)=C 152 | 921 LET C=C+1 153 | 922 IF V(R,S)=0 THEN 940 154 | 930 LET V(R,S)=3 155 | 931 GO TO 950 156 | 940 LET V(R,S)=1 157 | 950 LET S=S+1 158 | 951 IF C>H*V+1 THEN 1010 159 | 952 GO TO 260 160 | 960 LET Z=1 161 | 970 IF V(R,S)=0 THEN 980 162 | 971 LET V(R,S)=3 163 | 972 LET Q=0 164 | 973 GO TO 1000 165 | 980 LET V(R,S)=1 166 | 981 LET Q=0 167 | 982 LET R=1 168 | 990 LET S=1 169 | 991 GO TO 250 170 | 1000 GO TO 210 171 | 1010 FOR J=1 TO V 172 | 1011 PRINT"I"; 173 | 1012 FOR I=1 TO H 174 | 1013 IF V(I,J)<2 THEN 1030 175 | 1020 PRINT" "; 176 | 1021 GO TO 1040 177 | 1030 PRINT" I"; 178 | 1040 NEXT I 179 | 1041 PRINT 180 | 1043 FOR I=1 TO H 181 | 1045 IF V(I,J)=0 THEN 1060 182 | 1050 IF V(I,J)=2 THEN 1060 183 | 1051 PRINT": "; 184 | 1052 GO TO 1070 185 | 1060 PRINT ":--"; 186 | 1070 NEXT I 187 | 1071 PRINT":" 188 | 1072 NEXT J 189 | 1073 END 190 | -------------------------------------------------------------------------------- /animal.bas: -------------------------------------------------------------------------------- 1 | 100 &"PLAY 'GUESS THE ANIMAL' WITH RSTS 2 | 150 &"THINK OF AN ANIMAL AND THE COMPUTER WILL TRY TO GUESS IT...":& 3 | 500 DIM A$(200) 4 | 525 F$="ANIMAL.GME" 5 | :ON ERROR GOTO 700 6 | 550 OPEN F$ FOR INPUT AS FILE 1% 7 | :INPUT #1%,N% 8 | :INPUT #1%,A$(I%) FOR I%=1%TO N% 9 | :CLOSE 1% 10 | :A$(0%)=NUM$(N%) 11 | :ON ERROR GOTO 0 12 | :GOTO 1300 13 | 700 ON ERROR GOTO 1050 14 | :F$="$"+F$ 15 | :RESUME 550 16 | 1050 READ A$(I%) FOR I%=0% TO 3% 17 | 1100 DATA "4","\QDOES IT SWIM\Y2\N3\","\AFISH","\ABIRD" 18 | 1300 INPUT "ARE YOU THINKING OF AN ANIMAL" ;Z9$ 19 | :GOTO 1350 IF LEFT$(Z9$,1%)="Y" 20 | :GOTO 1300 IF LEFT$(Z9$,1%)="N" 21 | 1310 IF Z9$="SAVE" THEN 22 | OPEN "ANIMAL.GME" FOR OUTPUT AS FILE 1% 23 | :PRINT #1%,A$(I%) FOR I%=0% TO VAL(A$(0%)) 24 | :PRINT #1%,CHR$(26%) 25 | :CLOSE 1% 26 | :GOTO 1300 27 | 1320 IF Z9$="LIST" THEN 28 | PRINT "ANIMALS I ALREADY KNOW ARE:" 29 | :PRINT RIGHT$(A$(I%),3%), IF INSTR(1%,A$(I%),"\A") FOR I%=1% TO 200% 30 | :PRINT 31 | :GOTO 1300 32 | 1350 K%=1% 33 | 1400 K%=FNAN%(A$(K%)) 34 | :GOTO 3000 IF LEN(A$(K%))=0% 35 | :GOTO 1400 IF LEFT$(A$(K%),2%)="\Q" 36 | :PRINT "IS IT A "RIGHT$(A$(K%),3%); 37 | :INPUT Z7$ 38 | :Z7$=LEFT$(Z7$,1%) 39 | 1450 IF Z7$="Y" THEN 40 | PRINT "WHY NOT TRY ANOTHER ANIMAL" 41 | :GOTO 1300 42 | 2000 INPUT "THE ANIMAL YOU WERE THINKING OF WAS A ";Z9$ 43 | 2050 PRINT "PLEASE TYPE IN A QUESTION THAT WOULD DISTINGUISH A " 44 | Z9$;" FROM A "RIGHT$(A$(K%),3%) 45 | :INPUT Z8$ 46 | 2100 PRINT "FOR A ";Z9$;" THE ANSWER WOULD BE"; 47 | :INPUT Z7$ 48 | :Z7$=LEFT$(Z7$,1%) 49 | :IF Z7$="Y" THEN Z6$="N" 50 | ELSE IF Z7$="N" THEN Z6$="Y" 51 | ELSE PRINT "PLEASE ANSWER 'YES' OR 'NO'" 52 | :GOTO 2100 53 | 2200 Z1%=VAL(A$(0%)) 54 | :A$(0%)=NUM$(Z1%+2%) 55 | :A$(Z1%)=A$(K%) 56 | :A$(Z1%+1%)=Z9$ 57 | :A$(K%)="\Q"+Z8$+"\"+Z7$+NUM$(Z1%+1%)+"\"+Z6$+NUM$(Z1%)+"\" 58 | 12400 GOTO 1300 59 | 3000 DEF FNAN%(Q$) 60 | :PRINT MID$(Q$,3%,INSTR(3%,Q$,"\")-3%); 61 | :INPUT Z9$ 62 | :Z9$=LEFT$(Z9$,1%) 63 | :Z9$="N" IF Z9$<>"Y" 64 | :Z1%=INSTR(3%,Q$,"\"+Z9$)+2% 65 | :Z2%=INSTR(Z1%,Q$,"\") 66 | :FNAN%=VAL(MID$(Q$,Z1%,Z2%-Z1%)) 67 | :FNEND 68 | 9999 END -------------------------------------------------------------------------------- /awari.bas: -------------------------------------------------------------------------------- 1 | 5 DATA0 2 | 10 DIMB(13),G(13),F(50):READN 3 | 15 FORI=0TON-1:READF(I):NEXTI 4 | 20 PRINT\PRINT "GAME OF *** AWARI ***"\E=0 5 | 25 FORI=0TO12:LETB(I)=3:NEXTI 6 | 30 LETC=0:LETF(N)=0:LETB(13)=0:LETB(6)=0 7 | 35 GOSUB500 8 | 40 PRINT"YOUR MOVE";:GOSUB110 9 | 45 IFE=0GOTO80 10 | 50 IFM=6THENGOSUB100 11 | 55 IFE=1GOTO80 12 | 60 PRINT "MY MOVE IS ";:GOSUB800 13 | 65 IFE=0GOTO80 14 | 70 IFM=6THENPRINT",";:GOSUB800 15 | 75 IFE=1GOTO35 16 | 80 PRINT:PRINT"GAME OVER" 17 | 85 LETD=B(6)-B(13):IF D<0 THEN PRINT "I WIN BY";-D;"POINTS":GOTO 20 18 | 90 LETN=N+1:IFD=0THENPRINT"DRAWN GAME":GOTO 20 19 | 95 PRINT"YOU WIN BY"D"POINTS":GOTO20 20 | 100 PRINT"AGAIN"; 21 | 110 INPUTM:IFM<7THENIFM>0THENLETM=M-1:GOTO130 22 | 120 PRINT"ILLEGAL MOVE":GOTO100 23 | 130 IFB(M)=0GOTO120 24 | 140 LETH=6:GOSUB200 25 | 150 GOTO500 26 | 200 LETK=M:GOSUB600 27 | 205 LETE=2:IFK>6THENLETK=K-7 28 | 210 LETC=C+1:IFC<9THENLETF(N)=F(N)+6+K 29 | 215 FORI=0TO5:IFB(I)<>0THEN230 30 | 220 NEXTI 31 | 225 RETURN 32 | 230 FORI=7TO12:IFB(I)<>0THENLETE=1:RETURN 33 | 235 GOTO220 34 | 500 PRINT:PRINT" "; 35 | 505 FORI=12TO7STEP-1:GOSUB580 36 | 510 NEXTI 37 | 515 PRINT:LETI=13:GOSUB580 38 | 520 PRINT," ";:PRINTB(6):PRINT " "; 39 | 525 FORI=0TO5:GOSUB580 40 | 530 NEXTI 41 | 535 PRINT:PRINT:RETURN 42 | 570 IFB(I)<>0THENPRINT" "; 43 | 580 PRINTB(I):RETURN 44 | 600 LETP=B(M):LETB(M)=0 45 | 605 FORP=PTO1STEP-1:LETM=M+1:IFM>13THENLETM=M-14 46 | 610 LETB(M)=B(M)+1:NEXTP 47 | 615 IFB(M)=1THENIFM<>6THENIFM<>13THENIFB(12-M)<>0GOTO625 48 | 620 RETURN 49 | 625 LETB(M)=B(M)+B(12-M)+1:LETB(M)=0:LETB(12-M)=0:RETURN 50 | 800 LETD=-99:LETH=13 51 | 805 FORI=0TO13:LETG(I)=B(I):NEXTI 52 | 810 FORJ=7TO12:IFB(J)=0THEN885 53 | 815 LETM=J:GOSUB600 54 | 820 FORI=0TO5:IFB(I)<>0GOTO845 55 | 825 LETL=B(I)+I:LETR=0 56 | 830 IFL>13THENLETL=L-14:LETR=1:GOTO830 57 | 835 IFB(L)=0THENIFL<>6THENIFL<>13THENLETR=B(12-L)+R 58 | 840 IFR>0THENLETG(J)=R 59 | 845 NEXTI 60 | 850 LETQ=G(13)-G(6)-Q:IFC>8GOTO875 61 | 855 LETK=J:IFK>6THENLETK=K-7 62 | 860 FORI=0TON-1:IFF(N)+6+K=INT(F(I)/(7-C))+1THENLETQ=Q-2 63 | 870 NEXTI 64 | 875 FORI=0TO13:LETB(I)=G(I):NEXTI 65 | 880 IFQ>=DTHENLETA=J:LETD=Q 66 | 885 NEXTJ 67 | 890 LETM=A:PRINTCHR$(42+M):GOTO200 68 | 900 FORI=0TON-1:PRINTF(I):NEXTI 69 | 999 END -------------------------------------------------------------------------------- /bagels.bas: -------------------------------------------------------------------------------- 1 | 5 REM *** BAGLES NUMBER GUESSING GAME 2 | 10 REM *** ORIGINAL SOURCE UNKNOWN BUT SUSPECTED TO BE LAWRENCE HALL 3 | 15 REM *** OF SCIENCE, U.C. BERKELEY. MODIFIED FOR TIMESHARED-8 4 | 20 REM *** BY STUDENTS OF LEXINGTON HIGH SCHOOL, MA AND MODIFIED FOR 5 | 25 REM *** RSTS/E BY DAVE AHL OF DIGITAL 11/45 GROUP 6 | 30 DIM A1(6),A(3),B(3) 7 | 40 RANDOMIZE:Y=0:T=255 8 | 70 INPUT "GAME OF BAGLES. WOULD YOU LIKE THE RULES (YES OR NO)";A$ 9 | 90 IF A$="NO" THEN 150 10 | 100 PRINT:PRINT "I AM THINKING OF A THREE-DIGIT NUMBER. TRY TO GUESS" 11 | 110 PRINT "MY NUMBER AND I WILL GIVE YOU CLUES AS FOLLOWS:" 12 | 120 PRINT " PICO - ONE DIGIT CORRECT BUT IN THE WRONG POSITION" 13 | 130 PRINT " FERMI - ONE DIGIT CORRECT AND IN THE RIGHT POSITION" 14 | 140 PRINT " BAGLES - NO DIGITS CORRECT" 15 | 150 FOR I=1 TO 3 16 | 160 A(I)=INT(10*RND) 17 | 170 FOR J=1 TO I-1 18 | 180 IF A(I)=A(J) THEN 160 19 | 190 NEXT J 20 | 200 NEXT I 21 | 210 PRINT:PRINT "O.K. I HAVE A NUMBER IN MIND." 22 | 220 FOR I=1 TO 20 23 | 230 PRINT "GUESS #"I; 24 | 240 INPUT A$ 25 | 250 CHANGE A$ TO A1 26 | 255 IF A1(0)<>3 THEN 630 27 | 260 FOR J=1 TO 3 28 | 270 IF A1(J)<48 THEN 300 29 | 280 IF A1(J)>57 THEN 300 30 | 285 B(J)=A1(J)-48 31 | 290 NEXT J 32 | 295 GOTO 320 33 | 300 PRINT "WHAT?" 34 | 310 GOTO 230 35 | 320 IF B(1)=B(2) THEN 650 36 | 330 IF B(2)=B(3) THEN 650 37 | 340 IF B(3)=B(1) THEN 650 38 | 350 C=0:D=0 39 | 360 FOR J=1 TO 2 40 | 370 IF A(J)<>B(J+1) THEN 390 41 | 380 C=C+1 42 | 390 IF A(J+1)<>B(J) THEN 410 43 | 400 C=C+1 44 | 410 NEXT J 45 | 420 IF A(1)<>B(3) THEN 440 46 | 430 C=C+1 47 | 440 IF A(3)<>B(1) THEN 460 48 | 450 C=C+1 49 | 460 FOR J=1 TO 3 50 | 470 IF A(J)<>B(J) THEN 490 51 | 480 D=D+1 52 | 490 NEXT J 53 | 500 IF D=3 THEN 680 54 | 520 FOR J=1 TO C 55 | 530 PRINT "PICO "; 56 | 540 NEXT J 57 | 550 FOR J=1 TO D 58 | 560 PRINT "FERMI "; 59 | 570 NEXT J 60 | 580 IF C+D<>0 THEN 600 61 | 590 PRINT "BAGLES", 62 | 600 PRINT 63 | 605 NEXT I 64 | 610 PRINT "OH WELL" 65 | 615 PRINT "THAT'S 20 GUESSES. MY NUMBER WAS "100*A(1)+10*A(2)+A(3) 66 | 620 GOTO 700 67 | 630 PRINT "TRY GUESSING A THREE-DIGIT NUMBER.":GOTO 230 68 | 650 PRINT "OH, I FORGOT TO TELL YOU THAT THE NUMBER I HAVE IN" 69 | 660 PRINT "MIND HAS NO TWO DIGITS THE SAME.":GOTO 230 70 | 680 PRINT "YOU GOT IT!!!":PRINT 71 | 690 Y=Y+1 72 | 700 INPUT "PLAY AGAIN (YES OR NO)";A$ 73 | 720 IF A$="YES" THEN 150 74 | 730 IF Y=0 THEN 750 75 | 740 PRINT: PRINT "A"Y"-POINT BAGLES BUFF!!!" 76 | 750 PRINT "HOPE YOU HAD FUN. BYE." 77 | 999 END -------------------------------------------------------------------------------- /banner.bas: -------------------------------------------------------------------------------- 1 | 100 REM PROGRAM WRITTEN BY DANIEL R. VERNON 2 | 110 REM SENIOR AT BUTLER SENIOR HIGH SCHOOL 3 | 120 REM BUTLER, PENNSYLVANIA 16001 4 | 130 REM DATE: 2/1/73 5 | 140 REM COMPUTER SUPERVISION= MR. WILLIAM ELLIS 6 | 150 REM COMPUTER TOPICS INSTRUCTION MR. ALBERT STEWART 7 | 160 REM 8 | 170 REM THIS PROGRAM IS DESIGNED TO CREATE POSTERS 9 | 180 REM 10 | 190 DIM G(6),H$(6),B$(9),G(6),A(54) 11 | 200 PRINT"INPUT HEIGHTH, WIDTH IN INCHES"\INPUTL,R\S=0\A=R*2\C=A 12 | 210 PRINT"HOW FAR, IN INCHES FROM THE LEFT HAND SIDE, DO YOU WANT TO PLACE " 13 | 220 PRINT"THE LETTERS";\INPUTS\S=12*S 14 | 230 PRINT"INPUT MESSAGE HERE" 15 | 240 LINPUTB$(1),B$(2),B$(3),B$(4),B$(5),B$(6),B$(7),B$(8),B$(9) 16 | 250 FORX=9TO1STEP-1\CHANGEB$(X)TOA\FORY=1TO6\A(X+6*Y)=A(Y)\NEXTY\NEXTX 17 | 260 FORX=1TO6\READH$(X)\NEXTX\H$=H$(L)\GOSUB940 18 | 270 F=F+1\IFA(F)=0THEN990\G(0)=L\FORX=1TO6\G(X)=A(F)\NEXTX\CHANGEGTOG$ 19 | 280 FORX=1TO6\G(0)=X\CHANGEGTOG$(X)\NEXTX 20 | 290 FORX=1TOA/2\PRINT\NEXTX 21 | 300 IFA(F)>46THEN345\IFA(F)>36THEN990\IFA(F)=32THEN630\IFA(F)<48THEN270 22 | 305 IFA(F)>57THEN310\ONA(F)-47GOTO500,440,620,625,635,550,615,605,595,585 23 | 310 IFA(F)<65THEN270\IFA(F)>79THEN330 24 | 320 ONA(F)-64GOTO350,360,370,380,390,400,410,430,440,450,460,470,480,490,500 25 | 330 IFA>90THEN270\ONA(F)-79GOTO510,520,540,550,560,570,580,590,600,610,620 26 | 340 GOTO270 27 | 345 FORX=1TOA\PRINTTAB(S);G$G$;\NEXTX\GOTO270 28 | 350 GOSUB640\GOSUB690\GOSUB640\GOTO270 29 | 360 GOSUB640\GOSUB650\A=C*.5\GOSUB640\A=C\GOSUB810\GOTO270 30 | 370 GOSUB640\GOSUB700\GOSUB700\GOTO270 31 | 380 GOSUB640\GOSUB700\A=C*.5\GOSUB640\A=C\GOSUB840\GOTO270 32 | 390 GOSUB640\GOSUB650\GOSUB650\GOTO270 33 | 400 GOSUB640\GOSUB690\GOSUB690\GOTO270 34 | 410 GOSUB640\A=C*.75\GOSUB700\A=C*.25\GOSUB650\A=C\GOSUB760 35 | 420 A=C*.25\GOSUB710\A=C\GOTO270 36 | 430 GOSUB640\GOSUB710\GOSUB640\GOTO270 37 | 440 GOSUB640\GOTO270 38 | 450 GOSUB750\GOSUB740\GOSUB640\GOTO270 39 | 460 GOSUB640\GOSUB860\GOTO270 40 | 470 GOSUB640\GOSUB740\GOSUB740\GOTO270 41 | 480 GOSUB640\GOSUB890\GOSUB880\GOSUB640\GOTO270 42 | 490 GOSUB640\GOSUB890\GOSUB640\GOTO270 43 | 500 GOSUB640\GOSUB780\GOSUB640\GOTO270 44 | 510 GOSUB640\GOSUB690\GOSUB790\GOTO270 45 | 520 GOSUB640\A=C*.75\GOSUB700\A=C*.25\GOSUB650\A=C\GOSUB640 46 | 530 A=C*.25\GOSUB710\A=C\GOTO270 47 | 540 GOSUB640\GOSUB690\A=C*.5\GOSUB640\GOSUB810\A=C\GOTO270 48 | 550 GOSUB770\GOSUB650\GOSUB760\GOTO270 49 | 560 GOSUB780\GOSUB640\GOSUB780\GOTO270 50 | 570 GOSUB640\GOSUB740\GOSUB640\GOTO270 51 | 580 GOSUB890\GOSUB880\GOTO270 52 | 585 GOSUB790\GOSUB690\GOSUB640\GOTO270 53 | 590 GOSUB640\GOSUB880\GOSUB890\GOSUB640\GOTO270 54 | 595 GOSUB640\GOSUB650\GOSUB640\GOTO270 55 | 600 GOSUB900\GOTO270 56 | 605 GOSUB780\GOSUB780\GOSUB640\GOTO270 57 | 610 GOSUB970\GOSUB800\GOSUB960\GOTO270 58 | 615 GOSUB640\GOSUB650\GOSUB760\GOTO270 59 | 620 GOSUB920\GOTO270 60 | 625 GOSUB700\GOSUB650\A=C*.5\GOSUB640\A=C\GOSUB810\GOTO270 61 | 630 GOSUB940\GOTO270 62 | 635 GOSUB790\GOSUB710\GOSUB640\GOTO270 63 | 640 FORY=1TOA\PRINTTAB(S);\FORX=1TO10\PRINTG$;\NEXTX\PRINT\NEXTY\RETURN 64 | 650 IFA<1THEN660\GOTO670 65 | 660 LETA=1 66 | 670 FORX=1TOA\PRINTTAB(S);G$;G$;H$;H$;G$;G$;H$;H$;G$;G$\NEXTX\RETURN 67 | 680 PRINTTAB(S); 68 | 690 FORX=1TOA\PRINTTAB(4*L+S);G$;G$;H$;H$;G$;G$\NEXTX\RETURN 69 | 700 FORX=1TOA\PRINTTAB(8*L+S);G$;G$\NEXTX\RETURN 70 | 710 IFA=1THEN720\GOTO730 71 | 720 LETA=1 72 | 730 FORX=1TOA\PRINTTAB(4*L+S);G$;G$\NEXTX\RETURN 73 | 740 FORX=1TOA\PRINTTAB(3);G$;G$\NEXTX\RETURN 74 | 750 FORX=1TOA\PRINTTAB(S);G$;G$;G$;G$\NEXTX\RETURN 75 | 760 FORY=1TOA\PRINTTAB(S);G$;G$;G$;G$;G$;G$;H$;H$;G$;G$\NEXTY\RETURN 76 | 770 FORX=1TOA\PRINTTAB(S);G$;G$;H$;H$;G$;G$;G$;G$;G$;G$\NEXTX\RETURN 77 | 780 FORX=1TOA\PRINTTAB(8*L+S);G$;G$\NEXTX\RETURN 78 | 790 FORX=1TOA\PRINTTAB(4*L+S);G$;G$;G$;G$;G$;G$\NEXTX\RETURN 79 | 800 FORX=1TOA\PRINTTAB(S);G$;G$;G$;G$;G$;G$\NEXTX\RETURN 80 | 810 FORX=1TOC/2\PRINTTAB(S);\FORY=1TO2\FORZ=1TO(5*L)-X\PRINTG$(1);\NEXTZ 81 | 820 IFX>3THEN950\V=X 82 | 830 PRINTH$(2+V);\NEXTY\PRINT\NEXTX\RETURN 83 | 840 FORX=1TOC/2\PRINTTAB(S);H$(X);\FORY=1TO10*L-(2*X)\PRINTG$(1);\NEXTY\PRINT 84 | 850 NEXTX\RETURN 85 | 860 FOR X=4*LTO7*LSTEP14*L/(C*6)\PRINTTAB(X+S);G$;G$;G$ 86 | 870 PRINTTAB(7+L-X+S);G$;G$;G$\NEXTX\RETURN 87 | 880 FORX=0TO6*LSTEP6*L/C\PRINTTAB(X+S);G$;G$;G$;G$\NEXTX\RETURN 88 | 890 FORX=6*LTO0STEP-6*L/C\PRINTTAB(X+S);G$;G$;G$;G$\NEXTX\RETURN 89 | 900 FORX=0TO7*LSTEP(14*L)/(C+6)\PRINTTAB(X+S);G$;G$;G$; 90 | 910 PRINTTAB(7+L-X+S);G$;G$;G$\NEXTX\RETURN 91 | 920 FORX=0TO7*LSTEP(7*L)/(C+3)\PRINTTAB(3);G$;G$;TAB(X+S);G$;G$;G$; 92 | 930 PRINTTAB(8+L+S);G$;G$\NEXTX\RETURN 93 | 940 FORX=1TOA*3\PRINT\NEXTX\RETURN 94 | 950 FORW=1TOX-3\PRINT" ";\NEXTW\V=3\GOTO830 95 | 960 FORX=4*LTO7*LSTEPL+4/C\PRINTTAB(X+S);G$;G$;G$;\NEXTX\RETURN 96 | 970 FOR X=7*LTO4+LSTEP-4*L/C\PRINTTAB(X+S);G$;G$;G$\NEXTX\RETURN 97 | 980 DATA" "," "," "," "," "," ","" 98 | 990 FORX=1TOC*3\PRINT\NEXTX 99 | 1000 END -------------------------------------------------------------------------------- /basbal.bas: -------------------------------------------------------------------------------- 1 | 100 DIMT(50),C(19),F(19),Z(19) 2 | 110 FORX=1TO19\READC(X),Z(X),F(X)\NEXTX\LETX=1 3 | 120 PRINT"WELCOME TO HUISMAN STADIUM FOR TODAY'S GREAT GAME BETWEEN" 4 | 130 PRINT" THE PDP-8 PANTHERS AND (YOUR NAME PLEASE) THE " 5 | 140 FOR A=1 TO 99\INPUT ST(A)\IFT(A)=141 THEN 150\NEXT A 6 | 150 LETT=A\PRINT\PRINT"A HIGHLY PARTISAN CROWD OF"; 7 | 160 FORA=1TOT\LETB=2*RND(0)\NEXTA 8 | 170 LET A=INT(70000*RND(1))\PRINTA 9 | 180 PRINT" FANS IS ANXIOUSLY AWAITING THE "\PRINT"START OF THE GAME." 10 | 190 PRINT"HERE IS MY TEAM", " AND HERE IS YOURS:" 11 | 200 PRINT" NAME", "AVERAGE", "NAME", "AVERAGE" 12 | 210 PRINT"-----------------------------" 13 | 220 GOSUB 400 14 | 230 PRINT\PRINT 15 | 240 PRINT"THE PANTHERS ARE TAKING THE FIELD NOW AS ANDREWS OF THE" 16 | 250 FOR A=1 TO T-1\PRINT CHR$(T(A))\NEXT A 17 | 260 PRINT" ADVANCES TO THE PLATE. PLEASE WAIT AS THE COMPUTER SINGS" 18 | 270 PRINT"OUR NATIONAL ANTHEM TO ITSELF 2 OR 3 TIMES! JUST SING" 19 | 280 PRINT"ALONG UNTIL ASKED FOR YOUR PLAY."\PRINT 20 | 290 GOTO580 21 | 300 DATA.05,.412001,.05,.02,.263001,.03 22 | 310 DATA-.02,.236001,.02,.03,.316001,-.01 23 | 320 DATA.01,.241001,.03,.02,.321001,.02 24 | 330 DATA-.02,.367001,.02,.02,.386001,-.01 25 | 340 DATA.01,.295001,.03,.01,.296001,.02 26 | 350 DATA-.02,.319001,.02,.02,.285001,.02 27 | 360 DATA-.03,.295001,.01,.02,.295001,.03 28 | 370 DATA.02,.218001,.02,.02,.139001,-.02 29 | 380 DATA.03,.238001,.01,.03,.231001,-.02 30 | 390 DATA 0,0,0 31 | 400 PRINT"HUISMAN",Z(1),"KLOOS",Z(2) 32 | 410 PRINT"HOEREN",Z(3),"ANDREWS",Z(4) 33 | 420 PRINT"BACCUS",Z(5),"MAYER",Z(8) 34 | 430 PRINT"SMITH",Z(7),"HANSEN",Z(6) 35 | 440 PRINT"SCHNEIDER",Z(9),"MICHEL",Z(10) 36 | 450 PRINT"ROSENBAUM",Z(11),"P. D. PEATE",Z(12) 37 | 460 PRINT"POULSEN",Z(13),"WILLIAMS",Z(14) 38 | 470 PRINT"KILGOUR",Z(15),"NELSON",Z(16) 39 | 480 PRINT"JOHNSON",Z(17),"ANKCORN",Z(18) 40 | 490 PRINT"WHITNEY","MANAGER","IVEY","MANAGER"\PRINT 41 | 500 PRINT"PITCHER'S OPTIONS ARE:"\PRINT"FASTBALL" 42 | 510 PRINT"BEANBALL"\PRINT"BRUSHBACK"\PRINT"BALL"\PRINT"CURVE" 43 | 520 PRINT"SLIDER"\PRINT"KNUCKLE"\PRINT"GREASEBALL (ILLEGAL)" 44 | 530 PRINT"SPITBALL (ILLEGAL)"\PRINT"CHECK"\PRINT 45 | 540 PRINT"BATTER'S OPTIONS ARE:"\PRINT"BUNT"\PRINT"SWING" 46 | 550 PRINT"HIT-AWAY"\PRINT"SACRIFICE"\PRINT"GROUNDER"\PRINT"FLY" 47 | 560 PRINT"KILL"\PRINT 48 | 570 RETURN 49 | 580 CHAIN"BASBL1" 50 | 590 END 51 | -------------------------------------------------------------------------------- /batnum.bas: -------------------------------------------------------------------------------- 1 | 110 PRINT "THIS PROGRAM IS A 'BATTLE OF NUMBERS'" 2 | 120 PRINT "GAME, WHERE THE COMPUTER IS YOUR OPPONENT." 3 | 130 PRINT 4 | 140 PRINT "THE GAME STARTS WITH AN ASSUMED PILE OF OBJECTS. YOU AND" 5 | 150 PRINT "YOUR OPPONENT ALTERNATLY REMOVE OBJECTS FROM THE PILE." 6 | 160 PRINT "WINNING IS DEFINED IN ADVANCE AS TAKING THE LAST OBJECT" 7 | 170 PRINT "OR NOT. YOU CAN ALSO SPECIFY SOME OTHER BEGINNING" 8 | 180 PRINT "CONDITIONS. DON'T USE ZERO, HOWEVER, IN PLAYING THE GAME." 9 | 200 PRINT 10 | 210 GOTO 330 11 | 220 FOR I=1 TO 10 12 | 230 PRINT 13 | 240 NEXT I 14 | 330 PRINT "ENTER PILE SIZE:"; 15 | 340 INPUT N 16 | 350 IF N<=0 THEN 370 17 | 360 GOTO 330 18 | 370 IF N<>INT(N) THEN 220 19 | 380 IF N<1 THEN 220 20 | 390 PRINT "ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST:"; 21 | 400 INPUT M 22 | 410 IF M=1 THEN 430 23 | 420 IF M<>2 THEN 390 24 | 430 PRINT "ENTER MIN AND MAX:"; 25 | 440 INPUT A,B 26 | 450 IF A>B THEN 430 27 | 460 IF A<1 THEN 430 28 | 470 IF A<>INT(A) THEN 430 29 | 480 IF B<>INT(B) THEN 430 30 | 490 PRINT "ENTER START OPTION - 1 COMPUTER FIRST, 2 YOU FIRST:"; 31 | 500 INPUT S 32 | 510 IF S=1 THEN 530 33 | 520 IF S<>2 THEN 490 34 | 530 LET C=A+B 35 | 540 IF S=2 THEN 570 36 | 550 GOSUB 600 37 | 560 IF W=1 THEN 220 38 | 570 GOSUB 810 39 | 580 IF N=1 THEN 220 40 | 590 GO TO 550 41 | 600 LET Q=N 42 | 610 IF M=1 THEN 630 43 | 620 LET Q=Q-1 44 | 630 IF M=1 THEN 680 45 | 640 IF NB THEN 720 50 | 690 LET N=1 51 | 700 PRINT "COMPUTER TAKES";N;"AND WINS." 52 | 710 RETURN 53 | 720 LET P=Q-C*INT(Q/C) 54 | 730 IF P>A THEN 750 55 | 740 LET P=A 56 | 750 IF P<=B THEN 770 57 | 760 LET P=B 58 | 770 LET N=N-P 59 | 780 PRINT "COMPUTER TAKES";P;"AND LEAVES";N 60 | 790 LET N=0 61 | 800 RETURN 62 | 810 PRINT "YOUR MOVE:"; 63 | 820 INPUT P 64 | 830 IF P<>0 THEN 870 65 | 840 PRINT "I TOLD YOU NOT TO USE ZERO...COMPUTER WINS BY FORFEIT." 66 | 850 LET W=1 67 | 860 RETURN 68 | 870 IF P<>INT(P) THEN 920 69 | 880 IF PN THEN 960 71 | 900 GO TO 920 72 | 910 IF P<=B THEN 940 73 | 920 PRINT "ILLEGAL MOVE, REENTER IT:"; 74 | 930 GO TO 820 75 | 940 LET N=N-P 76 | 950 IF N<>0 THEN 1030 77 | 960 IF M=1 THEN 1000 78 | 970 PRINT "TOUGH LUCK, YOU LOSE." 79 | 980 LET N=1 80 | 990 RETURN 81 | 1000 PRINT "CONGRATULATIONS, YOU WIN." 82 | 1010 LET W=1 83 | 1020 RETURN 84 | 1030 IF N>0 THEN 1060 85 | 1040 LET N=N+P 86 | 1050 GO TO 920 87 | 1060 LET W=0 88 | 1070 RETURN 89 | 1080 END -------------------------------------------------------------------------------- /battle.bas: -------------------------------------------------------------------------------- 1 | 10 REM -- BATTLE WRITTEN BY RAY WESTERGARD 10/70 2 | 20 REM COPYRIGHT 1971 BY THE REGENTS OF THE UNIV. OF CALIF. 3 | 30 REM PRODUCED AT THE LAWRENCE HALL OF SCIENCE, BERKELEY 4 | 40 DIM F[6,6],H[6,6],A[4],B[4],C[6],L[3] 5 | 50 MAT F=ZER 6 | 60 FOR I=1 TO 3 7 | 70 N=4-I 8 | 80 FOR J=1 TO 2 9 | 90 A=INT(6*RND(0))+1 10 | 100 B=INT(6*RND(0))+1 11 | 110 D=INT(4*RND(0))+1 12 | 120 IF F[A,B]>0 THEN 90 13 | 130 M=0 14 | 140 GOTO D OF 150,340,550,740 15 | 150 B[1]=B 16 | 160 B[2]=B[3]=7 17 | 170 FOR K=1 TO N 18 | 180 IF M=1 THEN 240 19 | 190 IF B[K]=6 THEN 230 20 | 200 IF F[A,B[K]+1]>0 THEN 230 21 | 210 B[K+1]=B[K]+1 22 | 220 GOTO 280 23 | 230 M=2 24 | 240 Z=((B[1] MIN B[2]) MIN B[3]) 25 | 250 IF Z<1 THEN 90 26 | 260 IF F[A,Z-1]>0 THEN 90 27 | 270 B[K+1]=Z-1 28 | 280 NEXT K 29 | 290 F[A,B]=9-2*I-J 30 | 300 FOR K=1 TO N 31 | 310 F[A,B[K+1]]=F[A,B] 32 | 320 NEXT K 33 | 330 GOTO 990 34 | 340 A[1]=A 35 | 350 B[1]=B 36 | 360 A[2]=A[3]=B[2]=B[3]=0 37 | 370 FOR K=1 TO N 38 | 380 IF M=1 THEN 460 39 | 390 IF A[K]=1 OR B[K]=1 THEN 450 40 | 400 IF F[A[K]-1,B[K]-1]>0 THEN 450 41 | 410 IF F[A[K]-1,B[K]]>0 AND F[A[K]-1,B[K]]<>F[A[K],B[K]-1] THEN 450 42 | 420 A[K+1]=A[K]-1 43 | 430 B[K+1]=B[K]-1 44 | 440 GOTO 530 45 | 450 M=2 46 | 460 Z1=((A[1] MAX A[2]) MAX A[3]) 47 | 470 Z2=((B[1] MAX B[2]) MAX B[3]) 48 | 480 IF Z1>6 OR Z2>6 THEN 90 49 | 490 IF F[Z1+1,Z2+1]>0 THEN 90 50 | 500 IF F[Z1,Z2+1]>0 AND F[Z1,Z2+1]<>F[Z1+1,Z2] THEN 90 51 | 510 A[K+1]=Z1+1 52 | 520 B[K+1]=Z2+1 53 | 530 NEXT K 54 | 540 GOTO 950 55 | 550 A[1]=A 56 | 560 A[2]=A[3]=7 57 | 570 FOR K=1 TO N 58 | 580 IF M=1 THEN 640 59 | 590 IF A[K]=6 THEN 630 60 | 600 IF F[A[K]+1,B]>0 THEN 630 61 | 610 A[K+1]=A[K]+1 62 | 620 GOTO 680 63 | 630 M=2 64 | 640 Z=((A[1] MIN A[2]) MIN A[3]) 65 | 650 IF Z<1 THEN 90 66 | 660 IF F[Z-1,B]>0 THEN 90 67 | 670 A[K+1]=Z-1 68 | 680 NEXT K 69 | 690 F[A,B]=9-2*I-J 70 | 700 FOR K=1 TO N 71 | 710 F[A[K+1],B]=F[A,B] 72 | 720 NEXT K 73 | 730 GOTO 990 74 | 740 A[1]=A 75 | 750 B[1]=B 76 | 760 A[2]=A[3]=7 77 | 770 B[2]=B[3]=0 78 | 780 FOR K=1 TO N 79 | 790 IF M>1 THEN 870 80 | 800 IF A[K]=6 OR B[K]=1 THEN 860 81 | 810 IF F[A[K]+1,B[K]-1]>0 THEN 860 82 | 820 IF F[A[K]+1,B[K]]>0 AND F[A[K]+1,B[K]]<>F[A[K],B[K]-1] THEN 860 83 | 830 A[K+1]=A[K]+1 84 | 840 B[K+1]=B[K]-1 85 | 850 GOTO 940 86 | 860 M=2 87 | 870 Z1=((A[1] MIN A[2]) MIN A[3]) 88 | 880 Z2=((B[1] MAX B[2]) MAX B[3]) 89 | 890 IF Z1>1 OR Z2>6 THEN 90 90 | 900 IF F[Z1-1,Z2+1]>0 THEN 90 91 | 910 IF F[Z1,Z2+1]>0 AND F[Z1,Z2+1]<>F[Z1-1,Z2] THEN 90 92 | 920 A[K+1]=Z1-1 93 | 930 B[K+1]=Z2+1 94 | 940 NEXT K 95 | 950 F[A,B]=9-2*I-J 96 | 960 FOR K=1 TO N 97 | 970 F[A[K+1],B[K+1]]=F[A,B] 98 | 980 NEXT K 99 | 990 NEXT J 100 | 1000 NEXT I 101 | 1010 PRINT 102 | 1020 PRINT "THE FOLLOWING CODE OF THE BAD GUYS' FLEET DISPOSITION" 103 | 1030 PRINT "HAS BEEN CAPTURED BUT NOT DE-CODED;" 104 | 1040 PRINT 105 | 1050 MAT H=TRN(F) 106 | 1060 MAT PRINT H 107 | 1070 PRINT 108 | 1080 PRINT "DE-CODE IT AND USE IT IF YOU CAN" 109 | 1090 PRINT "BUT KEEP THE DE-CODING METHOD A SECRET." 110 | 1100 PRINT 111 | 1110 MAT H=ZER 112 | 1120 MAT L=ZER 113 | 1130 C[1]=C[2]=2 114 | 1140 C[3]=C[4]=1 115 | 1150 C[5]=C[6]=0 116 | 1160 S=H=0 117 | 1170 PRINT "START GAME" 118 | 1180 INPUT X,Y 119 | 1190 IF X<1 OR X>6 OR INT(X)<>ABS(X) THEN 1210 120 | 1200 IF Y<0 AND Y>7 AND INT(Y)<>ABS(Y) THEN 1230 121 | 1210 PRINT "INVALID INPUT. TRY AGAIN." 122 | 1220 GOTO 1180 123 | 1230 R=7-Y 124 | 1240 C=X 125 | 1250 IF F[R,C]>0 THEN 1290 126 | 1260 S=S+1 127 | 1270 PRINT "SPLASH! TRY AGAIN." 128 | 1280 GOTO 1180 129 | 1290 IF C[F[R,C]]<4 THEN 1340 130 | 1300 PRINT "THERE USED TO BE A SHIP AT THAT POINT, BUT YOU SUNK IT." 131 | 1310 PRINT "SPLASH! TRY AGAIN." 132 | 1320 S=S+1 133 | 1330 GOTO 1180 134 | 1340 IF H[R,C]>0 THEN 1420 135 | 1350 H=H+1 136 | 1360 H[R,C]=F[R,C] 137 | 1370 PRINT "A DIRECT HIT ON SHIP NUMBER ";F[R,C] 138 | 1380 C[F[R,C]]=C[F[R,C]]+1 139 | 1390 IF C[F[R,C]]>=4 THEN 1470 140 | 1400 PRINT "TRY AGAIN." 141 | 1410 GOTO 1180 142 | 1420 PRINT "YOU HAVE ALREADY PUT A HOLE IN SHIP NUMBER ";F[R,C] 143 | 1430 PRINT "AT THAT POINT." 144 | 1440 PRINT "SPLASH! TRY AGAIN." 145 | 1450 S=S+1 146 | 1460 GOTO 1180 147 | 1470 L[INT((F[R,C]-1)/2)+1]=L[INT((F[R,C]-1)/2)+1]+1 148 | 1480 PRINT "AND YOU SUNK IT. HURRAH FOR THE GOOD GUYS." 149 | 1490 PRINT "SO FAR THE BAD GUYS HAVE LOST" 150 | 1500 PRINT L[1];"DESTROYER(S), ";L[2];"CRUISER(S), AND ";L[3];"AIRCRAFT CARRIER(S)." 151 | 1510 PRINT L[3];"AIRCRAFT CARRIER(S)." 152 | 1520 PRINT "YOUR CURRENT SPLASH/HIT RATIO IS ";S/H 153 | 1530 IF (L[1]+L[2]+L[3])<6 THEN 1180 154 | 1540 PRINT 155 | 1550 PRINT "YOU HAVE TOTALLY WIPED OUT THE BAD GUYS' FLEET" 156 | 1560 PRINT "WITH A FINAL SPLASH/HIT RATIO OF ";S/H 157 | 1570 IF S/H>0 THEN 1590 158 | 1580 PRINT "CONGRATULATIONS -- A DIRECT HIT EVERY TIME." 159 | 1590 PRINT 160 | 1600 PRINT "*********************" 161 | 1610 PRINT 162 | 1620 GOTO 50 163 | 1630 END -------------------------------------------------------------------------------- /bingo.bas: -------------------------------------------------------------------------------- 1 | 100 RANDOMIZE 2 | 120 PRINT"YOU ARE NOW GOING TO PLAY A COMPUTERIZED VERSION OF BINGO--" 3 | 180 LET F=1 4 | 190 DIM B(10,10) 5 | 200 DIM L(75) 6 | 210 MAT READ A$(5) 7 | 220 DATA B ,I ,N ,G ,O 8 | 235 REM THIS SEQUENCE GENERATES THE CARD NUMBERS (LINES 240-430) 9 | 240 FOR K1=1 TO 75 10 | 250 LET L(K1)=0 11 | 260 NEXT K1 12 | 270 PRINT" "," HERE'S ", 13 | 280 IF F=1 THEN 310 14 | 290 PRINT"YOUR CARD" 15 | 300 GOTO 320 16 | 310 PRINT"MY CARD" 17 | 320 LET M=16 18 | 330 LET G=F+4 19 | 340 FOR Y=F TO G 20 | 350 FOR X=F TO G 21 | 360 LET R=INT(M*RND) 22 | 370 IF R0 THEN 360 24 | 390 LET B(X,Y)=R 25 | 400 LET L(R)=1 26 | 410 NEXT X 27 | 420 LET M=M+15 28 | 430 NEXT Y 29 | 435 REM THIS SEQUENCE PRINTS THE CARD (LINES 440-670) 30 | 440 PRINT 31 | 450 PRINT"--B--","--I--","--N--","--G--","--O--" 32 | 460 FOR X=F TO G 33 | 470 PRINT 34 | 480 PRINT 35 | 490 PRINT 36 | 500 FOR Y=F TO G 37 | 510 IF B(X,Y)=B(F+2,F+2) THEN 540 38 | 520 PRINT B(X,Y), 39 | 530 GOTO 550 40 | 540 PRINT "FREE", 41 | 550 NEXT Y 42 | 560 NEXT X 43 | 570 PRINT 44 | 580 PRINT 45 | 590 PRINT 46 | 600 PRINT"--------------------------------------------------------------------- 47 | 610 PRINT" [TEAR OFF AFTER MACHINE AUTOMATICALLY ADVANCES PAPER]" 48 | 620 FOR K9=1 TO 9 49 | 630 PRINT 50 | 640 NEXT K9 51 | 650 IF F=6 THEN 680 52 | 660 LET F=6 53 | 670 GOTO 240 54 | 680 PRINT 55 | 690 PRINT"NOW WE'RE ALL SET TO PLAY THE GAME. USE A PENCIL TO MARK OFF" 56 | 700 PRINT"THE NUMBERS ON YOUR CARD AS THEY ARE CALLED." 57 | 710 PRINT" (PLEASE PLAY MY CARD AS WELL AS YOUR OWN)" 58 | 720 PRINT"***DON'T GET SMART. I'LL BE PLAYING BOTH YOUR CARD AND MINE" 59 | 730 PRINT " UP HERE IN BOSTON. (SO THERE--)" 60 | 740 PRINT 61 | 750 PRINT "ARE YOU READY?", 62 | 760 INPUT R$ 63 | 770 IF R$<>"NO" THEN 820 64 | 780 PRINT 65 | 790 PRINT"*********:HURRY UP:*********" 66 | 800 GOTO 740 67 | 810 REM 68 | 820 FOR K1=1 TO 75 69 | 830 LET L(K1)=0 70 | 840 NEXT K1 71 | 850 PRINT 72 | 860 LET B(3,3)=0 73 | 870 LET B(8,8)=0 74 | 875 REM THIS SEQUENCE GENERATES THE BINGO NUMBERS (LINES 880-1100) 75 | 880 LET U=INT(75*RND)+1 76 | 910 IF L(U)<>0 THEN 880 77 | 920 LET L(U)=1 78 | 930 PRINT 79 | 940 IF RND>.5 THEN 970 80 | 950 PRINT"THE NUMBER COMES UP:", 81 | 960 GOTO 980 82 | 970 PRINT"THE NEXT ONE IS:", 83 | 980 PRINT A$(INT((U-1)/15)+1);U 84 | 1105 REM THIS IS THE "NUMBER ON CARD?" SEQUENCE (LINES 1110-1260) 85 | 1110 FOR Y=1 TO 10 86 | 1120 FOR X=1 TO 10 87 | 1130 IF B(X,Y)=U THEN 1250 88 | 1140 NEXT X 89 | 1150 NEXT Y 90 | 1160 LET F=1 91 | 1170 GOSUB 1270 92 | 1180 LET F=6 93 | 1190 GOSUB 1270 94 | 1200 IF V=0 THEN 1230 95 | 1210 IF W=1 THEN 1980 96 | 1220 GOTO 2050 97 | 1230 IF W=0 THEN 880 98 | 1240 GOTO 2120 99 | 1250 LET B(X,Y)=0 100 | 1260 GOTO 1140 101 | 1265 REM THIS IS THE BINGO DETERMINING SEQUENCE (LINES 1270-1950) 102 | 1266 103 | 1267 REM THIS IS THE VERTICAL CHECK FOR BINGO *** (LINES 1270-1430) 104 | 1270 LET G=F+4 105 | 1280 FOR Y=F TO G 106 | 1290 FOR X=F TO G 107 | 1300 IF B(X,Y)<>0 THEN 1430 108 | 1310 IF X0 THEN 1610 125 | 1490 IF Y0 THEN 1770 141 | 1650 LET X=X+1 142 | 1660 LET Y=Y+1 143 | 1670 IF Y0 THEN 1950 156 | 1810 LET X=X-1 157 | 1820 LET Y=Y+1 158 | 1830 IF YF GOTO 56 18 | 54 IF W<10 GOTO 58 19 | 55 GOTO 100 20 | 56 PRINT "YOUR BET EXCEEDS YOUR REMAINING DOLLARS. " 21 | 57 GOTO 50 22 | 58 PRINT "MINIMUM WAGER IS $10. " 23 | 59 GOTO 50 24 | 100 GOSUB 780 25 | 102 P1=1 26 | 104 PRINT "YOUR FIRST CARD IS "CHR$(L) 27 | 106 GOSUB 780 28 | 110 P2=1 29 | 112 PRINT "YOUR SECOND CARD IS "CHR$(L) 30 | 116 GOTO 200 31 | 117 PRINT "YOU HAVE "P3" SHOWING. " 32 | 119 GOSUB 780 33 | 120 P3=P3+1 34 | 122 PRINT "YOU GOT A "CHR$(L) 35 | 123 IF P3>21 GOTO 820 36 | 124 GOTO 117 37 | 200 GOSUB 780 38 | 202 D1=1 39 | 204 GOSUB 780 40 | 206 D2=1 41 | 208 PRINT "DEALER SHOWS A "CHR$(L) 42 | 210 GOTO 117 43 | 212 D3=D1+D2 44 | 214 PRINT "DEALER HAS "D3 45 | 216 IF D3>16 GOTO 222 46 | 217 GOSUB 780 47 | 218 PRINT "DEALER GETS A "CHR$(L) 48 | 219 D3=D3+1 49 | 220 GOTO 214 50 | 222 IF D3>22 GOTO 800 51 | 224 PRINT "DEALER BUSTED" 52 | 226 GOTO 802 53 | 760 PRINT "DO YOU WANT A HIT?"; 54 | 762 INPUT $K 55 | 764 PRINT 56 | 766 IF K=#N GOTO 212 57 | 768 GOSUB 730 58 | 770 RETURN 59 | 780 I=INT(13*RND(0))+1 60 | 782 A(I)=A(I)+1 61 | 784 IF A(I)>4 GOTO 780 62 | 786 GOSUB 900 63 | 788 RETURN 64 | 800 IF D3>=P3 GOTO 820 65 | 802 F=F+W 66 | 806 PRINT "YOU WIN. YOU NOW HAVE $"F 67 | 808 GOTO 980 68 | 820 F=F-W 69 | 822 PRINT "YOU LOSE. YOU NOW HAVE $"F 70 | 824 GOTO 980 71 | 900 IF I<>1 GOTO 910 72 | 904 L=11 73 | 906 L=#A 74 | 908 GOTO 942 75 | 910 IF I<>13 GOTO 920 76 | 912 I=10 77 | 914 L=#K 78 | 916 GOTO 942 79 | 920 IF I<>12 GOTO 930 80 | 922 I=10 81 | 924 L=#Q 82 | 926 GOTO 942 83 | 930 IF I<>11 GOTO 937 84 | 932 I=10 85 | 934 L=#J 86 | 936 GOTO 942 87 | 937 IF I<>10 GOTO 940 88 | 938 L=#T 89 | 939 GOTO 942 90 | 940 L=I+48 91 | 942 RETURN 92 | 980 PRINT "DO YOU WISH TO PLAY AGAIN?"; 93 | 982 INPUT $K 94 | 984 PRINT\PRINT 95 | 986 IF K=#Y GOTO 50 96 | 987 PRINT\PRINT\PRINT \IF F>F1 THEN 995 97 | 988 PRINT "TOO BAD! YOU LOST"F1-F"DOLLARS AT THE EDUSYSTEM CASINO." 98 | 989 GOTO 998 99 | 995 PRINT "NOT BAD! YOU WON"F-F1"DOLLARS AT THE EDUSYSTEM CASINO." 100 | 998 PRINT\PRINT "HOPE YOU ENJOYED YOURSELF. THANKS FOR PLAYING." 101 | 999 END -------------------------------------------------------------------------------- /boat.bas: -------------------------------------------------------------------------------- 1 | 5 PRINT "THIS IS THE GAME OF WAR BETWEEN A SUBMARINE AND A" 2 | 10 PRINT "NAVAL GUN BOAT. WOULD YOU LIKE INSTRUCTIONS"; 3 | 11 INPUT X$ 4 | 12 IF X$="NO" THEN 100 5 | 13 PRINT "YOU ARE THE CAPTAIN OF THE SUBMARINE AND THE" 6 | 14 PRINT "COMPUTER IS THE CAPTAIN OF THE GUN BOAT." 7 | 20 PRINT "THE SPEED OF THE GUN BOAT WILL BE GIVEN AT THE BEGINNING OF" 8 | 25 PRINT "THE GAME AND YOU HAVE TO HIT THE GUN BOAT TWICE" 9 | 30 PRINT "IN AT LEAST TWO VULNERABLE PLACES, OR ONCE IN A" 10 | 35 PRINT "VULNERABLE PLACE AND TWICE IN ANY OTHER PART OF THE" 11 | 40 PRINT "HULL OF THE GUN BOAT. BUT IF YOU MISS ANY ONE TIME THE" 12 | 45 PRINT "GUN BOAT WILL OPEN FIRE ON YOU UNTIL IT SINKS YOU OR YOU" 13 | 50 PRINT "SINK THE GUN BOAT! YOU WILL BE ALLOWED TO TAKE TURNS FIRE-" 14 | 55 PRINT "ING AT THE GUN BOAT .........GOOD LUCK , MEIN FUHRER!!!!!!!!!" 15 | 100 A=0 16 | 110 B=0 17 | 120 RANDOMIZE 18 | 130 FOR I=1 TO 5 19 | 140 LET R=100*RND(0) 20 | 170 IF R>=10 THEN 190 21 | 180 NEXT I 22 | 190 IF R<=40 THEN 210 23 | 200 GOTO 130 24 | 210 PRINT "THE SPEED OF THE GUN BOAT IS NOW ";R;" KNOTS" 25 | 220 RANDOMIZE 26 | 230 FOR F=1 TO 5 27 | 240 LET S=10000*RND(0) 28 | 270 IF S>=1000 THEN 290 29 | 280 NEXT F 30 | 290 IF S<=10000 THEN 310 31 | 300 GO TO 230 32 | 310 PRINT "THE RANGE FROM THE GUN BOAT TO THE SUBMARINE IS" 33 | 320 PRINT "NOW ";S;" YARDS." 34 | 330 LET Z=ATN(S/R) 35 | 340 LET D=Z*(180/3.14159) 36 | 345 PRINT "THE APPROXIMATE ANGLE YOU SHOULD FIRE YOUR TORPEDO IS" 37 | 346 PRINT "BETWEEN ";INT(D3-2);" AND ";INT(D3+2);" DEGREES." 38 | 350 INPUT D 39 | 351 LET T=D*3.14159/180 40 | 360 LET R8=R*COS(T) 41 | 370 LET Y3=R8*SIN(T) 42 | 380 LET Y9=R8*SIN(T) 43 | 390 LET Y2=Y8-20 44 | 400 LET Y0=Y8-40 45 | 410 LET Y4=Y8+20 46 | 420 LET Y5=Y8+40 47 | 430 IF Y9>=Y0 THEN 710 48 | 432 GOTO 520 49 | 435 IF Y9=Y3 THEN 490 54 | 480 GOTO 890 55 | 490 IF Y9=2000 GOTO 120 63 | 590 PRINT "YOU ARE SUNK MEIN FRIEND!" 64 | 595 GOTO 1900 65 | 610 PRINT 66 | 612 PRINT 67 | 613 PRINT "******** YOU MADE A VUL?N?ERABLE STRIKE! ********" 68 | 620 A=A+1 69 | 630 IF A>=2 GOTO 700 70 | 642 GOTO 120 71 | 650 PRINT 72 | 651 PRINT 73 | 652 PRINT "******** YOU DAMAGED THE GUN BOAT! ********" 74 | 660 B=B+1 75 | 660 B=B+1 76 | 670 IF B>=3 GOTO 700 77 | 680 IF A+B>=3 THEN 700 78 | 690 GO TO 120 79 | 700 PRINT "I AM SUNK!........GOOD BYE CRUEL WORLD....(GLUB..GLUB..)" 80 | 705 GOTO 1800 81 | 710 PRINT " ********* **+ !" 82 | 720 PRINT " ********* ***+*+* !" 83 | 730 PRINT " HHH !" 84 | 740 PRINT " UUU ! +++++]" 85 | 750 PRINT " \\\\===0=0=0" 86 | 760 PRINT " L---------I" 87 | 770 PRINT " --/DR IIIIIIIIII /DD\--" 88 | 780 PRINT " [=======================]" 89 | 790 PRINT " ----/DDDR /HHHHH O O O O O HHHH\ /PDDD\----" 90 | 800 GO TO 435 91 | 810 PRINT " EEEEEEEEEEE\.................../EEEEEEEEEEEEEEEEEEE/" 92 | 820PRINT" EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE O EEEEEEEEEE/" 93 | 830PRINT" * EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE/" 94 | 840 GO TO 610 95 | 850PRINT"\EEEEEEEEEEEEEEEEEEEEEEE\.................../EEEEEEEEEEEEEEEEEEE/" 96 | 860PRINT" EEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEE 0 EEEEEEE/" 97 | 870PRINT" \EEEEEE * EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE/" 98 | 880 GO TO 650 99 | 890PRINT"\EEEEEEEEEEEEEEEEEEEEEEEE.................../EEEEEEEEEEEEEEEEEEE/" 100 | 900PRINT" EEEEEEEEEEEEEEEEEE EEEEE O EEEEE/" 101 | 910PRINT" \EEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEE/" 102 | 920 GO TO 610 103 | 930PRINT"\EEEEEEEEEEEEEEEEEEE\....................../EEEEEEEEEEEEEEEEEEEE/" 104 | 950PRINT" EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" 105 | 960PRINT" \EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE *" 106 | 970 GO TO 650 107 | 1800 PRINT " /!" 108 | 1801 PRINT " //HH!" 109 | 1803 PRINT " X> T/HHHH!" 110 | 1804 PRINT " *******************************" 111 | 1900 PRINT "WOULD YOU LIKE TO TRY AGAIN"; 112 | 1901 INPUT Z$ 113 | 1902 IF Z$="YES" THEN 5 114 | 2000 END 115 | 116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /bomber.bas: -------------------------------------------------------------------------------- 1 | 5 RANDOM:PRINT"YOU ARE NOW A PILOT IN A WORLD WAR II BOMBER" 2 | 10 INPUT "WHAT SIDE -- ITALY(1), ALLIES(2), JAPANESE(3), GERMANY(4)";A 3 | 20 IF A>0 AND A<5 THEN 25 ELSE PRINT "TRY AGAIN....."\GOTO 10 4 | 25 ON A GOTO 30,110,220,280 5 | 30 INPUT "WHAT IS YOUR TARGET -- ALBANIA(1), GREECE(2), NORTH AFRICA(3)";B 6 | 40 IF B>0 AND B<4 THEN 45 ELSE PRINT "TRY AGAIN....."\GOTO 30 7 | 45 ON B GOTO 50,80,90 8 | 50 PRINT"SHOULD BE EASY,YOU'RE FLYING A NAZI-MADE PLANE." 9 | 60 GOTO 280 10 | 80 PRINT "BE CAREFUL!!!"\GOTO 280 11 | 90 INPUT "YOU'RE GOING FOR THE OIL. EH?"\GOTO 280 12 | 110 INPUT "AIRCRAFT -- LIBERATOR(1), B-29(2), B-17(3), LANCASTER(4)";G 13 | 120 IF G>0 AND G<5 THEN 125 ELSE PRINT "TRY AGAIN....."\GOTO 110 14 | 125 ON G GOTO 130,150,170,190 15 | 130 PRINT "YOU'VE GOT 2 TONS OF BOMBS FLYING FOR PLOESTI" 16 | 140 GOTO 280 17 | 150 PRINT "YOU'RE DROPPING THE A-BOMB ON HIROSHIMA." 18 | 160 GOTO 280 19 | 170 PRINT "YOU'RE CHASING THE BISMARK IN THE NORTH SEA." 20 | 180 GOTO 280 21 | 190 PRINT "YOU'RE HUNTING A GERMAN HEAVY WATER PLANT IN THE RUHR." 22 | 195 GOTO 280 23 | 200 PRINT "YOU'RE FLYING A KAMIKAZE (SUICIDE BOMBER) OVER THE USS LEXINGTON." 24 | 205 INPUT "YOUR FIRST KAMIKAZE MISSION (Y OR N)";F$ 25 | 208 IF F$="N" THEN S=0\GOTO 358 26 | 210 PRINT\IF RND>.65 THEN 325 ELSE 380 27 | 220 PRINT "A NAZI, EH? OH WELL. ARE YOU GOING FOR RUSSIA(1), ENGLAND(2)" 28 | 230 INPUT"OR FRANCE(3)";M\IF M>0 AND M<4 THEN 235 ELSE PRINT "WHAT??"\GOTO 220 29 | 235 PRINT\ON M GOTO 240,250,260 30 | 240 PRINT "YOU'RE HEADING FOR STALINGRAD....."\GOTO 280 31 | 250 PRINT "NEARING LONDON. BE CAREFUL. THEY'VE GOT A GOOD AIR-RAID DEFENCE." 32 | 260 GOTO 280 33 | 260 PRINT "NEARING VERSAILLES. DUCK SOUP. THEY'RE NEARLY DEFENSELESS." 34 | 280 PRINT 35 | 285 INPUT "HOW MANY MISSIONS HAVE YOU FLOWN";D 36 | 290 IF D<160 THEN 300 ELSE PRINT "MISSIONS, NOT MILES...." 37 | 295 PRINT "150 MISSIONS IS HIGH EVEN FOR OLD-TIMERS. NOW THEN."\GOTO 285 38 | 300 PRINT\IF D<100 THEN 310 ELSE PRINT "THAT'S PUSHING THE ODDS!"\GOTO 320 39 | 310 IF D<25 THEN PRINT "FRESH OUT OF TRAINING, EH?" 40 | 320 PRINT\IF D<160*RND THEN 330 41 | 325 PRINT "DIRECT HIT!!!! "INT(100*RND("KILLED!! MISSION SUCCESSFUL."\GOTO 390 42 | 330 PRINT "MISSED TARGET BY"INT(2+30*RND)"MILES!!" 43 | 335 PRINT "NOW YOU'RE REALLY IN FOR IT !!"\PRINT 44 | 340 INPUT "DOES THE ENEMY HAVE GUNS(1), MISSILES(2), OR BOTH(3)";R 45 | 345 IF R>0 AND R<4 THEN 350 ELSE PRINT "TRY AGAIN...."\GOTO 340 46 | 350 PRINT\IF R=2 THEN 360 47 | 355 INPUT "WHAT IS THE PERCENT HIT RATE OF THE ENEMY GUNNERS (10 TO 50)";S 48 | 358 IF S<10 THEN PRINT "YOU LIE, BUT YOU'LL PAY....."\PRINT\GOTO 380 49 | 360 PRINT\IF R>1 THEN R=35 50 | 365 IF S+T>100*RND THEN 380 51 | 370 PRINT "YOU MADE IT THROUGH TREMENDOUS FLAK!":GOTO 390 52 | 380 PRINT "* * * * * BOOM * * * * *" 53 | 384 PRINT "YOU HAVE BEEN SHOT DOWN......." 54 | 386 PRINT "DEARLY BELOVED, WE ARE GATHERED HERE TODAY TO PAY OUR LAST TRIBUTE.." 55 | 390 PRINT\PRINT\PRINT\INPUT "PLAY AGAIN (Y OR N)";U$:IF U$="Y" THEN 10 56 | 400 PRINT "CHICKEN!!!!!"\PRINT\PRINT 57 | 999 END -------------------------------------------------------------------------------- /bounce.bas: -------------------------------------------------------------------------------- 1 | 90 DIM T(20) 2 | 100 PRINT "THIS SIMULATION LETS YOU SPECIFY THE INITIAL VELOCITY" 3 | 110 PRINT "OF A BALL THROWN STRAIGHT UP. AND THE COEFFICIENT OF" 4 | 120 PRINT "ELASTICITY OF THE BALL. PLEASE USE A DECIMAL FRACTION" 5 | 130 PRINT "COEFFICIENT (LESS THAN 1)." 6 | 131 PRINT 7 | 132 PRINT "YOU ALSO SPECIFY THE TIME INCREMENT TO BE USED IN" 8 | 133 PRINT "'STROBING' THE BALL'S FLIGHT (TRY .1 INITIALLY). " 9 | 134 PRINT 10 | 125 PRINT "TIME INCREMENT (SEC)"; 11 | 136 INPUT S2 12 | 140 PRINT 13 | 150 PRINT "VELOCITY (FPS)"; 14 | 160 INPUT V 15 | 165 PRINT 16 | 170 PRINT "COEFFICIENT"; 17 | 180 INPUT C 18 | 184 PRINT 19 | 185 PRINT "FEET" 20 | 186 PRINT 21 | 187 S1=INT(70/(V/(16*S2))) 22 | 190 FOR I=1 TO S1 23 | 200 T(I)=V*C^(I-1)/16 24 | 210 NEXT I 25 | 220 FOR H=INT(-16*(V/32)^2+V^2/32+.5) TO 0 STEP -.5 26 | 221 IF INT(H)<>H THEN 225 27 | 222 PRINT H; 28 | 225 L=0 29 | 230 FOR I=1 TO S1 30 | 240 FOR T=0 TO T(I) STEP S2 31 | 245 L=L+S2 32 | 250 IF ABS(H-(.5*(-32)*T^2+V*C^(I-1)*T))>.25 THEN 270 33 | 260 PRINT TAB(L/S2);"O"; 34 | 270 NEXT T 35 | 275 T=T(I+1)/2 36 | 276 IF -16*T^2+V*C^(I-1)*T 0 THEN 5220 58 | 5130 PRINT "GUTTER!!" 59 | 5220 IF NOT(B=1 AND D=10) THEN 5490 60 | 5310 PRINT "STRIKE!!!!!" 61 | 5400 Q=3 62 | 5490 IF NOT(B=2 AND D=10) THEN 5760 63 | 5580 PRINT "SPARE!!!!!" 64 | 5670 Q=2 65 | 5760 IF NOT(B=2 AND D<10) THEN 6030 66 | 5850 PRINT "ERROR!!!" 67 | 5940 Q=1 68 | 6030 IF NOT(B=1 AND D<10) THEN 6210 69 | 6120 PRINT "ROLL YOUR 2ND BALL" 70 | 6210 REMARK STORAGE OF THE SCORES 71 | 6300 PRINT 72 | 6390 A(F*P,B)=D 73 | 6480 IF B=2 THEN 7020 74 | 6570 B=2 75 | 6660 M=D 76 | 6750 IF Q=3 THEN 6210 77 | 6840 A(F*P,3)=D-M 78 | 6930 IF Q=0 THEN 2520 79 | 7020 A(F*P,3)=Q 80 | 7110 NEXT P 81 | 7200 F=F+1 82 | 7290 IF F<11 THEN 2070 83 | 7295 PRINT "FRAMES" 84 | 7380 FOR I=1 TO 10 85 | 7470 PRINT I; 86 | 7560 NEXT I 87 | 7650 PRINT 88 | 7740 FOR P=1 TO R 89 | 7830 FOR I=1 TO 3 90 | 7920 FOR J=1 TO 10 91 | 8010 PRINT A(J,I); 92 | 8100 NEXT J 93 | 8105 PRINT 94 | 8190 NEXT I 95 | 8280 PRINT 96 | 8370 NEXT P 97 | 8460 PRINT "DO YOU WANT ANOTHER GAME" 98 | 8550 INPUT A$ 99 | 8640 IF A$="Y" THEN 2610 100 | 8730 END -------------------------------------------------------------------------------- /boxing.bas: -------------------------------------------------------------------------------- 1 | 1 REM PROGRAM SUBMITTED BY JESSE LYNCH, ST.PAUL, MN. 2 | 2 J=0 3 | 3 L=0 4 | 5 PRINT "OLYMPIC BOXING -- 3 ROUNDS" 5 | 7 PRINT 6 | 10 PRINT "INPUT YOUR OPPONENT'S NAME" 7 | 20 INPUT J$ 8 | 30 PRINT "INPUT YOUR MAN'S NAME" 9 | 40 INPUT L$ 10 | 45 PRINT 11 | 50 PRINT "DIFFERENT PUNCHES ARE 1 FULL SWING 2 HOOK 3 UPPERCUT 4 JAB" 12 | 60 PRINT "WHAT IS YOUR MAN'S BEST"; 13 | 64 INPUT B 14 | 70 PRINT "AND WHAT IS HIS VULNERABILITY"; 15 | 80 INPUT D 16 | 85 PRINT 17 | 90 B1=INT(4*RND+1) 18 | 100 D1=INT(4*RND+1) 19 | 110 IF B1=D1 THEN 90 20 | 120 PRINT J$" ADVANTAGE IS "B1 " AND DISADVANTAGE IS SECRET" 21 | 130 FOR R=1 TO 3 22 | 140 IF J>= 2 THEN 1040 23 | 150 IF L>=2 THEN 1060 24 | 160 X=0 25 | 170 Y=0 26 | 175 PRINT 27 | 180 PRINT "ROUND "R" BEGINS..." 28 | 181 PRINT "" 29 | 185 FOR RI= 1 TO 7 30 | 190 I=INT(10*RND+1) 31 | 200 IF I>5 THEN 600 32 | 210 PRINT L$ "'S PUNCH"; 33 | 220 INPUT P 34 | 221 IF P=B THEN 225 35 | 222 GO TO 230 36 | 225 X=X+2 37 | 230 IF P=1 THEN 340 38 | 240 IF P=2 THEN 450 39 | 250 IF P=3 THEN 520 40 | 270 PRINT L$ "JABS AT "J$"S HEAD "; 41 | 271 IF D1=4 THEN 290 42 | 275 C=INT(B*RND+1) 43 | 280 IF C<4 THEN 310 44 | 290 X=X+3 45 | 300 GO TO 950 46 | 310 PRINT "ITS BLOCKED" 47 | 330 GO TO 950 48 | 340 PRINT L$ " SWINGS AND "; 49 | 341 IF D1=4 THEN 410 50 | 345 X3=INT(30* RND+1) 51 | 350 IF X3<10 THEN 410 52 | 360 PRINT " HE MISSES "; 53 | 375 IF X=1 THEN 950 54 | 380 PRINT 55 | 400 GO TO 300 56 | 410 PRINT "HE CONNECTS!" 57 | 420 IF X>35 THEN 980 58 | 425 X=X+15 59 | 440 GO TO 300 60 | 450 PRINT L$" GIVES THE HOOK "; 61 | 455 IF D1=2 THEN 480 62 | 460 H1 =INT(2*RND+1) 63 | 470 IF H1=1 THEN 500 64 | 475 PRINT "CONNECTS..." 65 | 480 X=X+7 66 | 490 GO TO 300 67 | 500 PRINT "BUT IT'S BLOCKED !!!!!!!!!!" 68 | 510 GO TO 300 69 | 520 PRINT L$ " TRIES AN UPPERCUT "; 70 | 530 IF D1=3 THEN 570 71 | 540 D5=INT(100*RND+1) 72 | 550 IF D5<51 THEN 570 73 | 560 PRINT " AND IT'S BLOCKED (LUCKY BLOCK!)" 74 | 565 GO TO 300 75 | 570 PRINT "AND HE CONNECTS!" 76 | 580 X=X+4 77 | 590 GO TO 300 78 | 600 J7 =INT(4*RND+1) 79 | 601 IF J7 =B1 THEN 605 80 | 602 GO TO 610 81 | 605 Y=Y+2 82 | 610 IF J7=1 THEN 720 83 | 620 IF J7=2 THEN 810 84 | 630 IF J7 =3 THEN 860 85 | 640 PRINT J$" JABS AND"; 86 | 645 IF D=4 THEN 700 87 | 650 Z4 =INT(7*RND+1) 88 | 655 IF Z4>4 THEN 690 89 | 660 PRINT " IT'S BLOCKED !" 90 | 670 GO TO 300 91 | 690 PRINT " BLOOD SPILLS !!!" 92 | 700 Y=Y+5 93 | 710 GO TO 300 94 | 720 PRINT J$" TAKES A FULL SWING AND"; 95 | 730 IF D=1 THEN 770 96 | 740 R6=INT(60*RND+1) 97 | 745 IF R6 <30 THEN 770 98 | 750 PRINT " BUT IT'S BLOCKED !" 99 | 760 GO TO 300 100 | 770 PRINT "POW!!!!! HE HITS HIM RIGHT IN THE FACE!" 101 | 780 IF Y>35 THEN 1010 102 | 790 Y=Y+15 103 | 800 GO TO 300 104 | 810 PRINT J$" GETS "L$" IN THE JAW (OUCH!)" 105 | 820 Y=Y+7 106 | 830 PRINT "....AND AGAIN!" 107 | 835 Y=Y+5 108 | 840 IF Y>35 THEN 1010 109 | 850 PRINT 110 | 860 PRINT L$ " IS ATTACKED BY AN UPPERCUT (OH, OH)..." 111 | 865 IF D=3 THEN 890 112 | 870 Q4=INT(200*RND+1) 113 | 880 IF Q4>75 THEN 920 114 | 890 PRINT " AND "J$" CONNECTS..." 115 | 900 Y=Y+8 116 | 910 GO TO 300 117 | 920 PRINT " BLOCKS AND HITS "J$" WITH A HOOK." 118 | 930 X=X+5 119 | 940 GO TO 300 120 | 950 NEXT R1 121 | 951 IF X>Y THEN 955 122 | 952 PRINT J$ " WINS ROUND "R 123 | 953 J=J+1 124 | 954 GO TO 960 125 | 955 PRINT L$ " WINS ROUND "R 126 | 956 L=L+1 127 | 960 NEXT R 128 | 961 IF J>= 2 THEN 1040 129 | 962 IF L>=2 THEN 1060 130 | 981 PRINT J$ " IS KNOCKED COLD AND " L$" IS THE WINNER AND CHAMP "; 131 | 1000 GO TO 1080 132 | 1010 PRINT L$ " IS KNOCKED COLD AND " J$" IS THE WINNER AND CHAMP "; 133 | 1030 GO TO 1080 134 | 1040 PRINT J$ " WINS (NICE GOING )" J$ 135 | 1050 GO TO 1080 136 | 1060 PRINT L$ " AMAZINGLY WINS " 137 | 1070 GO TO 1000 138 | 1080 PRINT 139 | 1085 PRINT 140 | 1090 PRINT "AND NOW GOODBYE FROM THE OLYMPIC ARNEA." 141 | 1100 PRINT 142 | 1110 END -------------------------------------------------------------------------------- /buleye.bas: -------------------------------------------------------------------------------- 1 | 10 REM*** BULLSEYE BY DAVE AHL 2 | 20 PRINT "GAME OF BULLSEYE"\PRINT\RANDOMIZE 3 | 30 PRINT "IN THIS GAME, UP TO 20 PLAYERS THROW DARTS AT A TARGET" 4 | 40 PRINT "WITH 10, 20, 30, AND 40 POINT ZONES. THE OBJECTIVE IS" 5 | 50 PRINT "TO GET 200 POINTS. "\PRINT 6 | 60 PRINT "THROW","DESCRIPTION",,"PROBABLE SCORE" 7 | 70 PRINT " 1","FAST OVERARM",,"BULLSEYE OR COMPLETE MISS" 8 | 80 PRINT " 2","CONTROLLED OVERARM",,"10, 20, OR 30 POINTS" 9 | 90 PRINT " 3","UNDERARM",,"ANYTHING"\PRINT 10 | 100 DIM A$(20),S(20),W(10)\R,M=0\S(I)=0 FOR I=1 TO 20 11 | 110 INPUT "HOW MANY PLAYERS";N\PRINT 12 | 120 FOR I=1 TO N 13 | 130 PRINT "NAME OF PLAYER";I\INPUT A$(I) 14 | 140 NEXT I 15 | 150 R=R+1\PRINT\PRINT "ROUND"R 16 | 160 FOR I=1 TO N 17 | 170 PRINT\PRINT A$(I)"'S THROW";\INPUT T 18 | 180 IF T<0 OR T>3 THEN PRINT "INPUT 1, 2, OR 3"\GOTO 170 19 | 190 ON T GOTO 200,210,220 20 | 200 P1=.65\P2=.55\P3=.5\P4=.5\GOTO 230 21 | 210 P1=.99\P2=.77\P3=.43\P4=.01\GOTO 230 22 | 220 P1=.95\P2=.75\P3=.45\P4=.05 23 | 230 U=RND 24 | 240 IF U>=P1 THEN PRINT "BULLSEYE!! 40 POINTS!"\B=40\GOTO 290 25 | 250 IF U>=P2 THEN PRINT "30-POINT ZONE!"\B=30\GOTO 290 26 | 260 IF U>=P3 THEN PRINT "20-POINT ZONE"\B=20\GOTO 290 27 | 270 IF U>=P4 THEN PRINT "WHEW! 10 POINTS. "\B=10\GOTO 290 28 | 280 PRINT "MISSED THE TARGET. TOO BAD!"\B=0 29 | 290 S(I)=S(I)+B\PRINT "TOTAL SCORE ="S(I)\NEXT I 30 | 300 FOR I=1 TO N 31 | 310 IF S(I)>=200 THEN M=M+1\W(M)=I 32 | 320 NEXT I 33 | 330 IF M=0 THEN 150 34 | 340 PRINT\PRINT "WE HAVE A WINNER!!"\PRINT 35 | 350 PRINT A$(W(M))" SCORED"S(W(M))"POINTS. " FOR I=1 TO M 36 | 360 PRINT\PRINT "THANKS FOR THE GAME!"\END -------------------------------------------------------------------------------- /bullcow.bas: -------------------------------------------------------------------------------- 1 | 5 GOSUB500 2 | 10 DIM D(10,4),B(10),C(10),G(10) 3 | 15 RANDOMIZE: PRINT: PRINT: PRINT 4 | 20 LET A=0:GOTO 200 5 | 30 PRINT:PRINT:PRINT:LET J=0 6 | 35 PRINT"YOUR GUESS";:INPUTN:LETN=(N+.1)/100000 7 | 40 FORI=0TO4:LETG(I)=INT(10*N):LETN=10*N-INT(10*N) 8 | 41 FORK=0TOI-1:IFG(I)=G(K)GOTO170 9 | 42 NEXTK 10 | 43 NEXTI 11 | 45 LETP=4:LETA=0:GOSUB300 12 | 50 PRINTV"BULL";:IFV<>1THENPRINT"S"; 13 | 55 IFV=5THENPRINT" - YOU WIN":GOTO20 14 | 60 PRINTW-V"COW";:IFW<>V+1THENPRINT"S"; 15 | 65 IFJ=0THENLETA=1:GOTO200 16 | 68 GOSUB400 17 | 70 PRINT" - MY GUESS IS "; 18 | 75 FORI=0TO4:PRINTCHR$(D(J,I)+48):NEXTI 19 | 80 PRINT"MY SCORE";:INPUTB(J),C(J):LETC(J)=C(J)+B(J) 20 | 81 IFB(J)>-1THENIFBJ)<61THENIFC(J)<6THENIFC(J)-B(J)>-1GOTO83 21 | 82 PRINT " - RIDICULOUS!!";:GOTO 70 22 | 83 IFB(J)=4THENIFC(J)=5GOTO82 23 | 85 IFB(J)=5THENPRINT" - I WIN - MY NUMBER WAS":GOTO100 24 | 90 GOTO35 25 | 100 FORI=0TO4:PRINTCHR$(D(0,I)+48);:NEXTI 26 | 110 GOTO20 27 | 150 PRINT:PRINT"YOU HAVE GIVEN ME IMPOSSIBLE SCORES - GAME SPOILED":GOTO5 28 | 170 PRINT"REPEATED DIGITS NOT ALLOWED":GOTO 35 29 | 200FORP=0TO4 30 | 210 LETD(A,P)=INT(10*RND(1)) 31 | 220 FORI=0TOP-1:IFD(A,I)=D(A,P)GOTO210 32 | 230 NEXTI 33 | 240 NEXTP 34 | 250 IFA=0GOTO30 35 | 260 LETJ=1:GOTO70 36 | 300 LETV=0:LETW=0 37 | 310 FORI=0TOP:IFD(A,I)=G(I)THENLETV=V+1 38 | 320 FORK=0TOP:IFD(A,K)=G(I)THENLETW=W+1 39 | 330 NEXTK 40 | 340 NEXTI 41 | 350 RETURN 42 | 400 LETP=0 43 | 405 LETG(P)=D(J,P) 44 | 410 FORI=0TOP-1: IFG(I)=G(P)GOTO430 45 | 415 NEXTI 46 | 420 FORA=1TOJ: GOSUB300 47 | 425 IFV=B(A)THENIFW<=C(A)THENIF4-P)=C(A)-WTHENIF4-P)=B(A)-VGOTO448 48 | 430 LETG(P)=G(P)+3: IFG(P)>9THENLETG(P)=G(P)-10 49 | 432 IFP=0THENIFG(P)=D(1,0)GOTO150 50 | 435 IFG(P)<>D(J,P)GOTO410 51 | 440 LETP=P-1:IFP<0THENGOTO150 52 | 445 GOTO430 53 | 448 NEXTA 54 | 450 LETP=P+1:IFP<5GOTO405 55 | 455 LETJ=J+1 56 | 460 FORI=0TO4:LETD(J,I)=G(I):NEXTI 57 | 465 RETURN 58 | 500 PRINT:PRINT:PRINT" BRADFORD UNIVERSITY BULLS AND COWS GAME" 59 | 510 GOTO10 60 | 999 END -------------------------------------------------------------------------------- /buzzwd.bas: -------------------------------------------------------------------------------- 1 | 100 PRINT"THIS COMPUTER DEMONSTRATION IS A NEW AID FOR" 2 | 110 PRINT"PREPARING SPEECHES AND BRIEFINGS. IT'S A BUZZWORD" 3 | 120 PRINT"GENERATOR WHICH PROVIDES YOU WITH A SET OF 3 HIGHLY" 4 | 130 PRINT"ACCEPTABLE WORDS TO WORK INTO YOUR MATERIAL. THE WORDS" 5 | 140 PRINT"DON'T ACTUALLY MEAN ANYTHING, BUT THEY SOUND GREAT." 6 | 150 PRINT 7 | 160 PRINT"THE PROCEDURE:" 8 | 170 PRINT" THINK OF ANY THREE NUMBERS BETWEEN 0 AND 9. ENTER" 9 | 180 PRINT" THEM AFTER THE '?' SEPARATED BY COMMAS. YOUR" 10 | 190 PRINT" BUZZWORD WILL BE PRINTED OUT. TYPING '100' FOR" 11 | 200 PRINT" EACH OF YOUR CHOICES STOPS THIS PROGRAM." 12 | 210 PRINT"WHAT ARE YOUR THREE NUMBERS"; 13 | 220 GOTO260 14 | 230 PRINT 15 | 240 PRINT 16 | 250 PRINT"THREE MORE NUMBERS"; 17 | 260 INPUT N,M,P 18 | 265 IF N=100 THEN 1290 19 | 270 IF N<0 THEN 1240 20 | 280 IF P<0 THEN 1240 21 | 290 IF M<0 THEN 1240 22 | 300 IF N>9 THEN 1240 23 | 310 IF P>9 THEN 1240 24 | 320 IF M>9 THEN 1240 25 | 330 PRINT 26 | 340 IF N=0 THEN 640 27 | 350 IF N=1THEN 660 28 | 360 IF N=2THEN 680 29 | 370 IF N=3THEN 700 30 | 380 IF N=4 THEN 720 31 | 390 IF N=5THEN 740 32 | 400 IF N=6THEN 760 33 | 410 IF N=7THEN 780 34 | 420 IF N=8THEN 800 35 | 430 IF N=9THEN 820 36 | 440 IF M=0 THEN 840 37 | 450 IF M=1 THEN 860 38 | 460 IF M=2 THEN 880 39 | 470 IF M=3 THEN 900 40 | 480 IF M=4 THEN 920 41 | 490 IF M=5 THEN 940 42 | 500 IF M=6 THEN 960 43 | 510 IF M=7 THEN 980 44 | 520 IF M=8 THEN 1000 45 | 530 IF M=9 THEN 1020 46 | 540 IF P=0 THEN 1040 47 | 550 IF P=1 THEN 1060 48 | 560 IF P=2 THEN 1080 49 | 570 IF P=3 THEN 1100 50 | 580 IFP=4 THEN 1120 51 | 590 IF P=5 THEN 1140 52 | 600 IF P=6 THEN 1160 53 | 610 IF P=7 THEN 1180 54 | 620 IF P=8 THEN 1200 55 | 630 IF P=9 THEN 1220 56 | 640 PRINT" INTEGRATED"; 57 | 650 GOTO440 58 | 660 PRINT" TOTAL"; 59 | 670 GOTO440 60 | 680 PRINT " SYSTEMATIZED"; 61 | 690 GOTO440 62 | 700 PRINT" PARALLEL"; 63 | 710 GO TO 440 64 | 720 PRINT" FUNCTIONAL"; 65 | 730 GOTO440 66 | 740 PRINT" RESPONSIVE"; 67 | 750 GOTO440 68 | 760 PRINT" OPTIMAL"; 69 | 770 GOTO440 70 | 780 PRINT" SYNCHRONIZED"; 71 | 790 GOTO440 72 | 800 PRINT " COMPATIBLE"; 73 | 810 GOTO440 74 | 820 PRINT" BALANCED"; 75 | 830 GOTO440 76 | 840 PRINT" MANAGEMENT"; 77 | 850 GOTO 540 78 | 860 PRINT" ORGANIZATIONAL"; 79 | 870 GOTO 540 80 | 880 PRINT" MONITORED"; 81 | 890 GOTO 540 82 | 900 PRINT" RECIPROCAL"; 83 | 910 GOTO 540 84 | 920 PRINT" DIGITAL"; 85 | 930 GOTO 540 86 | 940 PRINT" LOGISTICAL"; 87 | 950 GOTO 540 88 | 960 PRINT " TRANSITIONAL"; 89 | 970 GOTO 540 90 | 980 PRINT" INCREMENTAL"; 91 | 990 GOTO 540 92 | 1000 PRINT" THIRD-GENERATION"; 93 | 1010 GO TO 540 94 | 1020 PRINT" POLICY"; 95 | 1030 GOTO 540 96 | 1040 PRINT" OPTIONS" 97 | 1050 GOTO 230 98 | 1060 PRINT " FLEXIBILITY" 99 | 1070 GO TO 230 100 | 1082 PRINT" CAPABILITY" 101 | 1090 GOTO230 102 | 1100 PRINT" MOBILITY" 103 | 1110 GOTO230 104 | 1120 PRINT" PROGRAMMING" 105 | 1130 GO TO 230 106 | 1140 PRINT" CONCEPT" 107 | 1150 GOTO230 108 | 1160 PRINT" TIME-PHASE" 109 | 1170 GOTO230 110 | 1180 PRINT" PROJECTION" 111 | 1190 GOTO230 112 | 1200 PRINT" HARDWARE" 113 | 1210 GOTO230 114 | 1220 PRINT" CONTINGENCY" 115 | 1230 GOTO230 116 | 1240 PRINT 117 | 1250 PRINT 118 | 1260 PRINT"NUMBERS MUST BE BETWEEN 0 AND 9. PLEASE SELECT THREE MORE." 119 | 1270 GOTO 260 120 | 1280 GOTO 260 121 | 1290 PRINT "GOODBYE FOR NOW! " 122 | 1300 PRINT\PRINT\PRINT 123 | 1310 CHAIN "DEMON " 124 | 1320 END -------------------------------------------------------------------------------- /calndr.bas: -------------------------------------------------------------------------------- 1 | 100 REM: VALUES FOR 1973: SEE NOTES 2 | 110 ' 3 | 120 FOR I=1 TO 6\ PRINT CHR$(10);\ NEXT I 4 | 130 D=-1: '1973 STARTS ON MON. [0=SUN.,-1=MON.,-2=TUE...] 5 | 140 S=0 6 | 150 REM: READ DAYS OF EACH MONTH 7 | 160 FOR N=0 TO 12 \ READ M(N) \ NEXT N 8 | 170 '''''''' 9 | 180 FOR I=1 TO 12 10 | 190 PRINT \ PRINT \ S=S+M(N-1) 11 | 200 PRINT "**";S;TAB(7); 12 | 210 FOR I=1 TO 18 \ PRINT "*"; \ NEXT I 13 | 220 ON N GOTO 230,240,250,260,270,280,290,300,310,320,330,340 14 | 230 PRINT " JANUARY "; \ GOTO 350 15 | 240 PRINT " FEBRUARY"; \ GOTO 350 16 | 250 PRINT " MARCH "; \ GOTO 350 17 | 260 PRINT " APRIL "; \ GOTO 350 18 | 270 PRINT " MAY "; \ GOTO 350 19 | 280 PRINT " JUNE "; \ GOTO 350 20 | 290 PRINT " JULY "; \ GOTO 350 21 | 300 PRINT " AUGUST "; \ GOTO 350 22 | 310 PRINT "SEPTEMBER"; \ GOTO 350 23 | 320 PRINT " OCTOBER "; \ GOTO 350 24 | 330 PRINT " NOVEMBER"; \ GOTO 350 25 | 340 PRINT " DECEMBER"; 26 | 350 FOR I=1 TO 18 \ PRINT "*"; \ NEXT I 27 | 360 PRINT 365-S;"**"; 28 | 370 ' [366-S; ON LEAP YEARS] 29 | 380 PRINT CHR$(10) \ PRINT " S M T W"; 30 | 390 PRINT " T F S 31 | 400 PRINT 32 | 410 FOR I=1 TO 59 \ PRINT "*"; \ NEXT I 33 | 420 '''' 34 | 430 FOR W=1 TO 6 35 | 440 PRINT CHR$(10) 36 | 450 PRINT TAB(4); 37 | 460 '' 38 | 470 FOR G=1 TO 7 39 | 480 D=D+1 40 | 490 D2=D-S 41 | 500 IF D2>M(N) THEN 580 42 | 510 IF D2>0 THEN PRINT D2; 43 | 520 PRINT TAB(4+8*G); 44 | 530 NEXT G 45 | 540 '' 46 | 550 IF D2=M(N) THEN 590 47 | 560 NEXT W 48 | 570 '''' 49 | 580 D=D-G 50 | 590 NEXT N 51 | 600 '''''''' 52 | 610 FOR I=1 TO 6\ PRINT CHR$(10):\ NEXT I 53 | 620 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31 54 | 630 ' [0,31,29, ..., ON LEAP YEARS] 55 | 640 END -------------------------------------------------------------------------------- /change.bas: -------------------------------------------------------------------------------- 1 | 2 PRINT "I, YOUR FRIENDLY EDUSYSTEM COMPUTER, WILL DETERMINE" 2 | 3 PRINT "THE CORRECT CHANGE FOR ITEMS COSTING UP TO $100." 3 | 4 PRINT\PRINT 4 | 10 PRINT "COST OF ITEM"\INPUT A\PRINT "AMOUNT OF PAYMENT"\INPUT P 5 | 20 C=P-A\M=C\IF C<>0 THEN 90 \PRINT "CORRECT AMOUNT, THANK YOU" 6 | 30 GO TO 10 7 | 90 IF C>0 THEN 120 \PRINT "SORRY, YOU HAVE SHORT CHANGED ME $"A-P 8 | 100 GO TO 10 9 | 120 PRINT "YOUR CHANGE, $"C\D=INT(C/10)\IF D=0 THEN 155 10 | 150 PRINT D;"TEN DOLLAR BILL(S)" 11 | 155 C=M-(D*10)\E=INT(C/5)\IF E=0 THEN 185 12 | 180 PRINT E;"FIVE DOLLAR BILL(S)" 13 | 185 C=M-(D*10+E*5)\F=INT(C)\IF F=0 THEN 215 14 | 210 PRINT F;"ONE DOLLAR BILL(S)" 15 | 215 C=M-(D*10+E*5+F)\C=C*100\N=C\G=INT(C/50)\IF G=0 THEN 255 16 | 250 PRINT G;"ONE HALF DOLLAR(S)" 17 | 255 C=N-(G*50)\H=INT(C/25)\IF H=0 THEN 285 18 | 280 PRINT H;"QUARTER(S)" 19 | 285 C=N-(G*50+H*25)\I=INT(C/10)\IF I=0 THEN 315 20 | 310 PRINT I;"DIME(S)" 21 | 315 C=N-(G*50+H*25+I*10)\J=INT(C/5)\IF J=0 THEN 345 22 | 340 PRINT J;"NICKEL(S)" 23 | 345 C=N-(G*50+H*25+I*10+J*5)\K=INT(C+.5)\IF K=0 THEN 380 24 | 370 PRINT K;"PENNY(S)" 25 | 380 PRINT "THANK YOU, COME AGAIN"\PRINT \PRINT \GO TO 10 26 | 999 END -------------------------------------------------------------------------------- /checkr.bas: -------------------------------------------------------------------------------- 1 | 100 PRINT" THIS PROGRAM WILL PLAY CHECKERS. THE COMPUTER IS X," 2 | 200 PRINT"AND YOU ARE O. THE COMPUTER WILL GO FIRST,-NOTE: SQUARES" 3 | 300 PRINT"ARE IN THE FORM-(X,Y) AND SQ. 1,1 IS THE BOTTOM LEFT!" 4 | 400 PRINT"DO NOT ATTEMPT A DOUBLE JUMP OR YOUR PIECE MIGHT JUST " 5 | 500 PRINT"DISAPPEAR(SAME FOR A TRIPLE)!" 6 | 600 PRINT" WAIT FOR THE COMP. TO MOVE!!!!!" 7 | 700 LET G=-1 8 | 800 DIM R(50) 9 | 900 LET L=-1 10 | 1000 DIM S(10,10) 11 | 1100 DATA 1,0,-1,0,0,0,-1,0,0,1,0,0,0,0,-1,0,-1,15 12 | 1200 FOR X=1TO8 13 | 1300 FOR Y=1TO8 14 | 1400 READ J 15 | 1500 IF J=15 THEN 1800 16 | 1600 LET S(X,Y)=J 17 | 1700 GOTO 2000 18 | 1800 RESTORE 19 | 1900 READ S(X,Y) 20 | 2000 NEXT Y 21 | 2100 NEXT X 22 | 2200 REM 23 | 2300LETL=-1*L 24 | 2400 FOR X=1TO8 25 | 2500 FOR Y=1TO8 26 | 2600 IF S(X,Y)=0 THEN 3500 27 | 2700 IF G=0 THEN 3000 28 | 2800 IF S(X,Y)>0 THEN 3500 29 | 2900 GOTO 3100 30 | 3000 IF S(X,Y)<0 THEN 3500 31 | 3100 IF ABS(S(X,Y))<>1 THEN 3300 32 | 3200 GOSUB 4300 33 | 3300 IF ABS(S(X,Y))<>2 THEN 3500 34 | 3400 GOSUB 6500 35 | 3500IFX<>8 THEN 3800 36 | 3600IFL=1 THEN 3800 37 | 3700RETURN 38 | 3800NEXT Y 39 | 3900NEXT X 40 | 4000PRINT 41 | 4100GOSUB11400 42 | 4200 GOTO 2300 43 | 4300 FOR A=-1T01 STEP 2 44 | 4400 LET U=X+A 45 | 4500 LET V=Y+G 46 | 4600 IF U<1 THEN 6300 47 | 4700 IF U>8 THEN 6300 48 | 4800 IF V<1 THEN 6300 49 | 4900 IF V>8 THEN 6300 50 | 5000 IF S(U,V)<>0 THEN 5300 51 | 5100 GOSUB 9100 52 | 5200 GOTO 6300 53 | 5300 IF S(U,V)=G THEN 6300 54 | 5400 IF S(U,V)=2*G THEN 6300 55 | 5500 LET U=U+A 56 | 5600 LET V=V+G 57 | 5700 IF U<1 THEN 6300 58 | 5800 IF U>8 THEN 6300 59 | 5900 IF V<1 THEN 6300 60 | 6000 IF V>8 THEN 6300 61 | 6100 IF S(U,V)<>0 THEN 6300 62 | 6200 GOSUB 9100 63 | 6300 NEXT A 64 | 6400 RETURN 65 | 6500 REM KING MOVES 66 | 6600 FOR A=-1T01 STEP 2 67 | 6700 FOR B=-1T01 STEP 2 68 | 6800 LET U=X+A 69 | 6900 LET V=Y+B 70 | 7000 IF U<1 THEN 8700 71 | 7100 IF U>8 THEN 8700 72 | 7200 IF V<1 THEN 8700 73 | 7300 IF V>8 THEN 8700 74 | 7400 IF S(U,V)<>0 THEN 7700 75 | 7500 GOSUB 9100 76 | 7600 GOTO 8700 77 | 7700 IF S(U,V)=G THEN 8700 78 | 7800 IF S(U,V)=2*G THEN 8700 79 | 7900 LET U=U+A 80 | 8000 LET V=V+B 81 | 8100 IF U<1 THEN 8700 82 | 8200 IF U>8 THEN 8700 83 | 8300 IF V<1 THEN 8700 84 | 8400 IF V>8 THEN 8700 85 | 8500 IF S(U,V)<>0 THEN 8700 86 | 8600 GOSUB 9100 87 | 8700 NEXT B 88 | 8800 NEXT A 89 | 8900 RETURN 90 | 9000 GOTO 14200 91 | 9100 REM 92 | 9200 LET P=P+1 93 | 9300 IF P=K THEN 12300 94 | 9400IF V<>(4.5+(3.5*G)) THEN 9600 95 | 9500 LET Q=Q+2 96 | 9600 IF X<>(4.5-(3.5*G)) THEN 9800 97 | 9700LET Q=Q-2 98 | 9800 REM 99 | 9900 IF U<>1 THEN 10100 100 | 10000 LET Q=Q+1 101 | 10100 IF U<>8 THEN 10300 102 | 10200 LET Q=Q+1 103 | 10300 FOR C=-1T01 STEP 2 104 | 10400 IF S(U+C,V+G)<1 THEN 10800 105 | 10500 LET Q=Q-1 106 | 10600 IF S(U-C,V-G)<>0 THEN 10800 107 | 10700 LET Q=Q-1 108 | 10800 REM THIS WAS THE EVALUATION SECTION 109 | 10900 REM 110 | 11000 NEXT C 111 | 11100 LET R(P)=Q 112 | 11200 LETQ=0 113 | 11300 RETURN 114 | 11400 IF P=0 THEN 18800 115 | 11500 FOR J=10T0-10 STEP -1 116 | 11600 FOR F=1TOP 117 | 11700 IF R(F)=J THEN 12000 118 | 11800 NEXT F 119 | 11900 NEXT J 120 | 12000 LET K=F+P 121 | 12100 GOSUB 2300 122 | 12200 RETURN 123 | 12300 PRINT" I MOVE FROM ("X;Y") TO ("U;V")" 124 | 12400 LET F=0 125 | 12500 LET P=0 126 | 12600 LET K=0 127 | 12700 IF V<>(4.5+(3.5*G)) THEN 13000 128 | 12800 LET S(U,V)=2*G 129 | 12900 GOTO 13100 130 | 13000 LET S(U,V)=S(X,Y) 131 | 13100 LET S(X,Y)=0 132 | 13200 IF ABS(X-U)<>2 THEN 13400 133 | 13300 LET S((X+U)/2,(Y+V)/2)=0 134 | 13400 PRINT"BOARD"; 135 | 13500 INPUT D$ 136 | 13600 IF D$<> "YES" THEN 13900 137 | 13700 GOSUB 14100 138 | 13800 RETURN 139 | 13900 GOSUB 15800 140 | 14000 RETURN 141 | 14100 PRINT 142 | 14200 FOR Y=8T01 STEP -1 143 | 14300 FOR X=1T08 144 | 14400 LET I=2*X 145 | 14500 IF S(X,Y)<>0 THEN 14700 146 | 14600 PRINT TAB(I)"."; 147 | 14700 IF S(X,Y)<>1 THEN 14900 148 | 14800 PRINT TAB(I)"O"; 149 | 14900 IF S(X,Y)<>-1 THEN 15100 150 | 15000 PRINT TAB(I)"X"; 151 | 15100 IF S(X,Y)=-2 THEN 15300 152 | 15200 PRINT TAB(I)"X";TAB(I)"*"; 153 | 15300 IF S(X,Y)<>2 THEN 15500 154 | 15400 PRINT TAB(I)"O";TAB(I)"*"; 155 | 15500 NEXT X 156 | 15600 PRINT 157 | 15700 NEXT Y 158 | 15800 PRINT 159 | 15900 PRINT"FROM"; 160 | 16000 INPUT E,H 161 | 16100 LET X=E 162 | 16200 LET Y=H 163 | 16300 IF S(X,Y)<>0 THEN 16700 164 | 16400 PRINT "THERE IS NO ONE OCCUPING THAT SPACE" 165 | 16500 PRINT 166 | 16600 GOTO 15900 167 | 16700 PRINT"TO"; 168 | 16800 INPUT A,B 169 | 16900 LET X=A 170 | 17000 LET Y=B 171 | 17100 IF S(X,Y)=0 THEN 17500 172 | 17200 PRINT"THAT SPACE IS ALREADY OCCUPIED" 173 | 17300 PRINT 174 | 17400 GOTO 16700 175 | 17500 LET S(A,B)=S(E,H) 176 | 17600 LET S(A,B)=S(E,H) 177 | 17700 LET S(E,H)=0 178 | 17800 LET T=(4.5-(3.5*G)) 179 | 17900 IF ABS(E-A)<>2 THEN 18100 180 | 18000 LET S((E+A)/2,(H+B)/2)=0 181 | 18100 IF B<>T THEN 18300 182 | 18200 LET S(A,B)=-2*G 183 | 18300 FOR X=8T08 184 | 18400 FOR Y=8T08 185 | 18500 RETURN 186 | 18600 NEXT Y 187 | 18700 NEXT X 188 | 18800 PRINT" VERY GOOD, YOU WIN!" 189 | 18900 PRINT 190 | 19000 PRINT 191 | 19100 PRINT" -CHUCK OUT" 192 | 19200 END -------------------------------------------------------------------------------- /chemst.bas: -------------------------------------------------------------------------------- 1 | 10 PRINT "THE FICTICIOUS CHEMICAL KRYPTOCYANIC ACID CAN ONLY BE" 2 | 20 PRINT "DILUTED BY THE RATIO OF 7 PARTS WATER TO 3 PARTS ACIE." 3 | 30 PRINT "IF ANY OTHER RATIO IS ATTEMPTED, THE ACID BECOMES UNSTABLE" 4 | 40 PRINT "AND SOON EXPLODES. GIVEN THE AMOUNT OF ACID, YOU MUST" 5 | 50 PRINT "DECIDE HOW MUCH WATER TO ADD FOR DILUTION. IF YOU MISS" 6 | 60 PRINT "YOU FACE THE CONSEQUENCES." 7 | 100 LET A=INT(RND(1)*50) 8 | 110 LET W=7*A/3 9 | 120 PRINT A"LITERS OF KRYPTOCYANIC ACID. HOW MUCH WATER"; 10 | 130 INPUT R 11 | 140 LET D=ABS(W-R) 12 | 150 IF D>W/20 THEN 200 13 | 160 PRINT "GOOD JOB! YOU MAY BREATHE NOW, BUT DON'T INHALE THE FUMES!" 14 | 170 PRINT 15 | 180 GO TO 100 16 | 200 PRINT "SIZZLE! YOU HAVE JUST BEEN DESALINATED INTO A BLOB" 17 | 210 PRINT "OF QUIVERING PROTOPLASM!" 18 | 220 LET T=T+1 19 | 230 IF T=9 THEN 260 20 | 240 PRINT "HOWEVER, YOU MAY TRY AGAIN WITH ANOTHER LIFE." 21 | 245 PRINT 22 | 250 GO TO 100 23 | 260 PRINT "YOUR 9 LIVES ARE USED, BUT YOU WILL BE LONG REMEMBERED FOR" 24 | 270 PRINT "YOUR CONTRIBUTIONS TO THE FIELD OF COMIC BOOK CHEMISTRY." 25 | 280 END -------------------------------------------------------------------------------- /chief.bas: -------------------------------------------------------------------------------- 1 | 10 PRINT " I AM CHIEF NUMBERS FREEK, THE GREAT INDIAN MATH GOD." 2 | 20 PRINT "ARE YOU READY TO TAKE THE TEST YOU CALLED ME OUT FOR"; 3 | 30 INPUT A$ 4 | 40 IF A$="YES" THEN 60 5 | 50 PRINT "SHUT UP PALEFACE WITH WISE TOUNGE." 6 | 60 PRINT " TAKE A NUMBER AND ADD 3. DIVIDE THIS NUMBER BY 5 AND" 7 | 70 PRINT "MULTIPLY BY 8. DIVIDE BY 5 AND ADD THE SAME. SUBTRACT 1." 8 | 80 PRINT "WHAT DO YOU HAVE"; 9 | 85 PRINT 10 | 90 INPUT B 11 | 100 LET C = (B+1-5)*5/8*5-3 12 | 110 PRINT "I BET YOUR NUMBER WAS "C" WAS I RIGHT"; 13 | 120 INPUT D$ 14 | 130 IF D$="YES" THEN 510 15 | 140 PRINT "WHAT WAS YOUR ORIGINAL NUMBER"; 16 | 150 INPUT K 17 | 155 LET F=K+3 18 | 160 LET G=F/5 19 | 170 LET H=G*8 20 | 180 LET I=H/5+5 21 | 190 LET J=I-1 22 | 200 PRINT "SO YOU THINK YOU'RE SO SMART, EH?" 23 | 210 PRINT "NOW WATCH...." 24 | 230 PRINT K"PLUS 3 EQUALS "F". THIS DIVIDED BY 5 EQUALS "G"," 25 | 240 PRINT "THIS TIMES 8 EQUALS "H". IF WE DIVIDE BY 5 AND ADD THE SAME," 26 | 250 PRINT "WE GET"I". MINUS 1 EQUALS "J"." 27 | 260 PRINT "NOW DO YOU BELIEVE ME"; 28 | 270 INPUT Z$ 29 | 290 IF Z$ = "YES" THEN 510 30 | 295 PRINT "YOU HAVE MADE ME MAD!!!" 31 | 300 PRINT "THERE MUST NOW BE A GREAT LIGHTNING BOLT!" 32 | 310 PRINT\PRINT 33 | 330 FOR X=30 TO 22 STEP -1 34 | 340 PRINT TAB(X) "X X" 35 | 350 NEXT X 36 | 360 PRINT TAB(21) "X XXX" 37 | 370 PRINT TAB(20) "X X" 38 | 380 PRINT TAB(19) "XX X" 39 | 390 FOR Y=20 TO 13 STEP -1 40 | 400 PRINT TAB(Y) "X X" 41 | 410 NEXT Y 42 | 420 PRINT TAB(12) "XX" 43 | 430 PRINT TAB(11) "X" 44 | 440 PRINT TAB(10) "*" 45 | 450 PRINT\PRINT "##################################"\PRINT 46 | 470 PRINT "I HOPE YOU BELIEVE ME NOW, FOR YOUR SAKE!!" 47 | 480 GOTO 520 48 | 510 PRINT "BYE!!!!!" 49 | 520 END -------------------------------------------------------------------------------- /chomp.bas: -------------------------------------------------------------------------------- 1 | 100 REM ***THE GAME OF CHOMP*** 2 | 105 REM ***SUBMITTED BY PEOPLES COMPUTER CENTER*** 3 | 110 PRINT 4 | 120 PRINT "THIS IS THE GAME OF CHOMP (SCIENTIFIC AMERICAN. JAN 1973)" 5 | 130 PRINT "WANT THE RULES (1=YES, 0=NO)"; 6 | 140 INPUT R 7 | 150 IF R=0 THEN 340 8 | 160 F=1 9 | 170 R=5 10 | 180 C=7 11 | 190 PRINT "CHOMP IS FOR 1 OR MORE PLAYERS (HUMANS ONLY)." 12 | 200 PRINT 13 | 210 PRINT "HERE'S HOW A BOARD LOOKS (THIS ONE IS 5 BY 7)." 14 | 220 GOSUB 540 15 | 230 PRINT 16 | 240 PRINT "THE BOARD IS A BIG COOKIE - R ROWS HIGH AND C COLUMNS" 17 | 250 PRINT "WIDE. YOU INPUT R AND C AT THE START. IN THE UPPER LEFT" 18 | 260 PRINT "CORNER OF THE COOKIE IS A POISON SQUARE (P). THE ONE WHO" 19 | 270 PRINT "CHOMPS THE POISON SQUARE LOSES. TO TAKE A CHOMP, TYPE THE" 20 | 280 PRINT "ROW AND COLUMN OF ONE OF THE SQUARES ON THE COOKIE." 21 | 290 PRINT "ALL OF THE SQUARES BELOW AND TO THE RIGHT OF THAT SQUARE" 22 | 300 PRINT "(INCLUDING THAT SQUARE, TOO) DISAPPEAR -- CHOMP!!" 23 | 310 PRINT "NO FAIR CHOMPING SQUARES THAT HAVE ALREADY BEEN CHOMPED," 24 | 320 PRINT "OR THAT ARE OUTSIDE THE ORIGINAL DIMENSIONS OF THE COOKIE." 25 | 330 PRINT 26 | 340 PRINT "HERE WE GO..." 27 | 350 DIM A(10,10) 28 | 360 F=0 29 | 370 FOR I=1 TO 10 30 | 372 FOR J=1 TO 10 31 | 375 A(I,J)=0 32 | 377 NEXT J 33 | 379 NEXT I 34 | 380 PRINT 35 | 390 PRINT "HOW MANY PLAYERS"; 36 | 400 INPUT P 37 | 410 I1=0 38 | 420 PRINT "HOW MANY ROWS"; 39 | 430 INPUT R 40 | 440 IF R <= 9 THEN 470 41 | 450 PRINT "TOO MANY ROWS (9 IS MAXIMUM). NOW, "; 42 | 460 GOTO 420 43 | 470 PRINT "HOW MANY COLUMNS"; 44 | 480 INPUT C 45 | 490 IF C <= 9 THEN 530 46 | 500 PRINT "TOO MANY COLUMNS (9 IS MAXIMUM). NOW, "; 47 | 510 GOTO 470 48 | 530 PRINT 49 | 540 FOR I=1 TO R 50 | 550 FOR J=1 TO C 51 | 560 A(I,J)=1 52 | 570 NEXT J 53 | 580 NEXT I 54 | 590 A(1,1)=-1 55 | 600 REM PRINT THE BOARD 56 | 610 PRINT 57 | 620 PRINT TAB(7);"1 2 3 4 5 6 7 8 9" 58 | 630 FOR I=1 TO R 59 | 640 PRINT I;TAB(7); 60 | 650 FOR J=1 TO C 61 | 660 IF A(I,J)=-1 THEN 700 62 | 670 IF A(I,J)=0 THEN 720 63 | 680 PRINT "* "; 64 | 690 GOTO 710 65 | 700 PRINT "P "; 66 | 710 NEXT J 67 | 720 PRINT 68 | 730 NEXT I 69 | 740 PRINT 70 | 750 IF F=0 THEN 770 71 | 760 RETURN 72 | 770 REM GET CHOMPS FOR EACH PLAYER IN TURN 73 | 780 LET I1=I1+1 74 | 790 LET P1=I1-INT(I1/P)*P 75 | 800 IF P1 <> 0 THEN 820 76 | 810 P1=P 77 | 820 PRINT "PLAYER ";P1 78 | 830 PRINT "COORDINATES OF CHOMP (ROW,COLUMN)"; 79 | 840 INPUT R1,C1 80 | 850 IF R1<1 THEN 920 81 | 860 IF R1>R THEN 920 82 | 870 IF C1<1 THEN 920 83 | 880 IF C1>C THEN 920 84 | 890 IF A(R1,C1)=0 THEN 920 85 | 900 IF A(R1,C1)=-1 THEN 1010 86 | 910 GOTO 940 87 | 920 PRINT "NO FAIR. YOU'RE TRYING TO CHOMP ON EMPTY SPACE!" 88 | 930 GOTO 820 89 | 940 FOR I=R1 TO R 90 | 950 FOR J=C1 TO C 91 | 960 A(I,J)=0 92 | 970 NEXT J 93 | 980 NEXT I 94 | 990 GOTO 610 95 | 1000 REM END OF GAME DETECTED IN LINE 900 96 | 1010 PRINT "YOU LOSE, PLAYER ";P1 97 | 1020 PRINT 98 | 1030 PRINT "AGAIN (1=YES; 0=NO)"; 99 | 1040 INPUT R 100 | 1050 IF R=1 THEN 340 101 | 1060 END -------------------------------------------------------------------------------- /craps.bas: -------------------------------------------------------------------------------- 1 | 80 RANDOMIZE 2 | 90 FOR I=1 TO 10\PRINT\NEXT I 3 | 100 PRINT"THIS DEMONSTRATION SIMULATES A CRAP GAME WITH THE COMPUTER" 4 | 110 PRINT"AS YOUR OPPONENT. THE RULES ARE SIMPLE." 5 | 120 PRINT 6 | 130 PRINT" *A 7 OR 11 ON THE FIRST ROLL WINS" 7 | 140 PRINT" *A 2, 3 OR 12 ON THE FIRST ROLL LOSES" 8 | 150 PRINT 9 | 160 PRINT"ANY OTHER NUMBER ROLLED BECOMES YOUR 'POINT' * YOU CONTINUE" 10 | 170 PRINT"TO ROLL...IF YOU GET YOUR POINT, YOU WIN. IF YOU ROLL A 7," 11 | 180 PRINT"YOU LOSE. THE DICE CHANGE HANDS WHEN THIS HAPPENS." 12 | 185 PRINT "JUST BET $0 TO QUIT." 13 | 190 PRINT 14 | 200 PRINT 15 | 210 LET Z=5+INT(10*RND(0)) 16 | 215 PRINT "ARE YOU READY?";\INPUT B$ 17 | 216 IF B$="YES" THEN 220\IF B$="NO" THEN PRINT"I'LL REPEAT MYSELF THEN" 18 | 217 GO TO 90 19 | 220 PRINT "SPLENDID.....YOU ARE GIVEN ";Z;"DOLLARS TO PLAY WITH." 20 | 230 PRINT 21 | 240 PRINT 22 | 250 IF N-2*INT(N/2)=0 THEN 310 23 | 260 LET W=-1 24 | 270 PRINT "I'LL ROLL FIRST....." 25 | 280 PRINT 26 | 290 PRINT 27 | 300 GOTO 350 28 | 310 LET W=1 29 | 320 PRINT "YOU ROLL FIRST....." 30 | 330 PRINT 31 | 340 PRINT 32 | 350 LET Q=0 33 | 360 PRINT "HOW MUCH DO YOU BET"; 34 | 370 INPUT B 35 | 380 PRINT 36 | 390 IF B=INT(B) THEN 430 37 | 400 PRINT 38 | 410 PRINT "NO COINS PERMITTED...JUST BILLS, PLEASE." 39 | 420 GOTO 360 40 | 430 IF B=0 THEN 1090 41 | 440 IF B0 THEN 540 49 | 520 PRINT " I ROLL ";D1;"AND ";D2; 50 | 530 GOTO 550 51 | 540 PRINT "YOU ROLL ";D1;"AND ";D2; 52 | 550 IF Q<>1 THEN 860 53 | 560 IF (S-2)*(S-3)*(S-12)=0 THEN 640 54 | 570 IF (S-7)*(S-11)=0 THEN 710 55 | 580 IF W>0 THEN 610 56 | 590 PRINT "SO MY POINT IS";S 57 | 600 GOTO 620 58 | 610 PRINT "SO YOUR POINT IS";S 59 | 620 LET P=S 60 | 630 GOTO 470 61 | 640 PRINT "AND CRAP OUT..." 62 | 650 LET C=1 63 | 660 IF W>0 THEN 690 64 | 670 LET Z=Z+B 65 | 680 GO TO 770 66 | 690 LET Z=Z-B 67 | 700 GOTO 770 68 | 710 PRINT"AND PASS...." 69 | 720 LET C=1 70 | 730 IF W>0 THEN 760 71 | 740 LET Z=Z-B 72 | 750 GOTO 770 73 | 760 LET Z=Z+B 74 | 770 PRINT 75 | 780 IF Z<1 THEN 1060 76 | 790 PRINT "YOU NOW HAVE ";Z;"DOLLARS" 77 | 800 IF C>0 THEN 830 78 | 810 PRINT"CHANGE DICE NOW..." 79 | 820 PRINT 80 | 830 LET W=W*C 81 | 840 LET Q=0 82 | 850 GOTO 360 83 | 860 IF S<>7 THEN 940 84 | 870 PRINT "AND LOSE..." 85 | 880 LET C=-1 86 | 890 IF W>0 THEN 920 87 | 900 LET Z=Z+B 88 | 910 GOTO 770 89 | 920 LET Z=Z-B 90 | 930 GOTO 770 91 | 940 IF S=P THEN 970 92 | 950 PRINT "....ROLL AGAIN." 93 | 960 GOTO 470 94 | 970 IF W>0 THEN 1020 95 | 980 PRINT "AND MAKE MY POINT" 96 | 990 LET C=1 97 | 1000 LET Z=Z-B 98 | 1010 GOTO 770 99 | 1020 PRINT "AND MAKE YOUR POINT" 100 | 1030 LET C=1 101 | 1040 LET Z=Z+B 102 | 1050 GOTO 770 103 | 1060 PRINT 104 | 1070 PRINT "YOU HAVE RUN OUT OF MONEY....SORRY ABOUT THAT." 105 | 1080 GOTO 1110 106 | 1090 PRINT "THANKS FOR THE GAME. AND CONGRATULATIONS" 107 | 1100 PRINT "FOR BEING ABLE TO QUIT WHILE YOU WERE AHEAD." 108 | 1110 PRINT\PRINT\PRINT 109 | 1120 CHAIN$ "DEMOES" 110 | 1130 END -------------------------------------------------------------------------------- /cube.bas: -------------------------------------------------------------------------------- 1 | 100 PRINT"DO YOU WANT TO SEE THE INSTRUCTIONS? (YES--1,NO--0)" 2 | 110 INPUT B7 3 | 120 IF B7=0 THEN 370 4 | 130 PRINT"THIS IS A GAME IN WHICH YOU WILL BE PLAYING AGAINST THE" 5 | 140 PRINT"RANDUM DECISION OF THE COMPUTER. THE FIELD OF PLAY IS A" 6 | 150 PRINT"CUBE OF SIDE 3. ANY OF THE 27 LOCATIONS CAN BE DESIGNATED" 7 | 160 PRINT"BY INPUTING THREE NUMBERS SUCH AS 2,3,1. AT THE START," 8 | 170 PRINT"YOU ARE AUTOMATICALLY AT LOCATION 1,1,1. THE OBJECT OF" 9 | 180 PRINT"THE GAME IS TO GET TO LOCATION 3,3,3. ONE MINOR DETAIL," 10 | 190 PRINT"THE COMPUTER WILL PICK,AT RANDUM,5 LOCATIONS AT WHICH" 11 | 200 PRINT"IT WILL PLANT LAND MINES. IF YOU HIT ONE OF THESE LOCATIONS," 12 | 210 PRINT"YOU LOSE. ONE OTHER DETAIL, YOU MAY MOVE ONLY ONE SPACE " 13 | 220 PRINT"IN ONE DIRECTION EACH MOVE. FOR EXAMPLE: FROM 1,1,2 YOU" 14 | 230 PRINT"MAY MOVE TO 2,1,2 OR 1,1,3. YOU MAY NOT CHANGE" 15 | 240 PRINT"TWO OF THE NUMBERS ON THE SAME MOVE. IF YOU MAKE AN ILLEGAL" 16 | 250 PRINT"MOVE, YOU LOSE AND THE COMPUTER TAKES THE MONEY YOU MAY" 17 | 260 PRINT"HAVE BET ON THAT ROUND." 18 | 270 PRINT 19 | 280 PRINT 20 | 290 PRINT"ALL YES OR NO QUESTIONS WILL BE ANSWERED BY A 1 FOR YES" 21 | 300 PRINT"OR A 0 (ZERO) FOR NO." 22 | 310 PRINT 23 | 320 PRINT"WHEN STATING THE AMOUNT OF A WAGER, PRINT ONLY THE NUMBER" 24 | 330 PRINT"OF DOLLARS (EXAMPLE: 250) YOU ARE AUTOMATICALLY STARTED WITH A" 25 | 340 PRINT"500 DOLLAR ACCOUNT." 26 | 350 PRINT 27 | 360 PRINT"GOOD LUCK" 28 | 370 LET A1=500 29 | 380 LET A=INT(3*(RND(X))) 30 | 390 IF A<>0 THEN 410 31 | 400 LET A=3 32 | 410 LETB=INT(3*(RND(X))) 33 | 420 IFB<>0 THEN 440 34 | 430 LET B=2 35 | 440 LETC=INT(3*(RND(X))) 36 | 450 IFC<>0 THEN470 37 | 460 LETC=3 38 | 470 LETD=INT(3*(RND(X))) 39 | 480 IFD<>0THEN500 40 | 490 LETD=1 41 | 500 LETE=INT(3*(RND(X))) 42 | 510 IFE<>0THEN530 43 | 520 LETE=3 44 | 530 LETF=INT(3*(RND(X))) 45 | 540 IFF<>0THEN560 46 | 550 LETF=3 47 | 560 LETG=INT(3*(RND(X))) 48 | 570 IFG<>0THEN590 49 | 580 LETG=3 50 | 590 LETH=INT(3*(RND(X))) 51 | 600 IFH<>0THEN620 52 | 610 LETH=3 53 | 620 LETI=INT(3*(RND(X))) 54 | 630 IFI<>0THEN650 55 | 640 LETI=2 56 | 650 LETJ=INT(3*(RND(X))) 57 | 660 IFJ<>0THEN680 58 | 670 LETJ=3 59 | 680 LETK=INT(3*(RND(X))) 60 | 690 IFK<>0THEN710 61 | 700 LETK=2 62 | 710 LETL=INT(3*(RND(X))) 63 | 720 IFL<>0THEN740 64 | 730 LETL=3 65 | 740 LETM=INT(3*(RND(X))) 66 | 750 IFM<>0THEN770 67 | 760 LETM=3 68 | 770 LETN=INT(3*(RND(X))) 69 | 780 IFN<>0THEN800 70 | 790 LETN=1 71 | 800 LET O=INT (3*(RND(X))) 72 | 810 IF O <>0 THEN 830 73 | 820 LET O=3 74 | 830 PRINT "WANT TO MAKE A WAGER?" 75 | 840 INPUT Z 76 | 850 IF Z=0 THEN 920 77 | 860 PRINT "HOW MUCH?" 78 | 870 INPUT Z1 79 | 875 IF A1W+1THEN1030 87 | 950 IFP=W+1 THEN 1000 88 | 960 IFQ>X+1 THEN1030 89 | 970 IF Q=(X+1) THEN 1010 90 | 980 IF R >(Y+1) THEN 1030 91 | 990 GO TO 1050 92 | 1000 IF Q>= X+1 THEN 1030 93 | 1010 IF R>=Y+1 THEN 1030 94 | 1020 GO TO 1050 95 | 1030 PRINT "ILLEGAL MOVE", "YOU LOSE" 96 | 1040 GO TO 1440 97 | 1050 LET W=P 98 | 1060 LET X=Q 99 | 1070 LET Y=R 100 | 1080 IF P=3 THEN 1100 101 | 1090 GO TO 1130 102 | 1100 IF Q=3 THEN 1120 103 | 1110 GO TO 1130 104 | 1120 IF R=3 THEN 1530 105 | 1130 IF P=A THEN 1150 106 | 1140 GO TO 1180 107 | 1150 IF Q=B THEN 1170 108 | 1160 GO TO 1180 109 | 1170 IF R=C THEN1400 110 | 1180 IF P=D THEN 1200 111 | 1190 GO TO 1230 112 | 1200 IF Q=E THEN 1220 113 | 1210 GO TO 1230 114 | 1220 IF R=F THEN 1400 115 | 1230 IF P=G THEN1250 116 | 1240 GO TO 1280 117 | 1250 IF Q=H THEN1270 118 | 1260 GO TO 1280 119 | 1270 IF R=ITHEN 1400 120 | 1280 IF P=J THEN 1300 121 | 1290 GO TO 1330 122 | 1300 IF Q=K THEN1320 123 | 1310 GO TO 1330 124 | 1320 IF R=L THEN 1440 125 | 1330 IF P=M THEN 1350 126 | 1340 GO TO 1380 127 | 1350 IF Q=N THEN 1370 128 | 1360 GO TO 1380 129 | 1370 IF R=O THEN1400 130 | 1380 PRINT "NEXT MOVE" 131 | 1390 GO TO 930 132 | 1400 PRINT"******BANG******" 133 | 1410 PRINT "YOU LOSE" 134 | 1420 PRINT 135 | 1430 PRINT 136 | 1440 IF Z=0 THEN 1580 137 | 1450 PRINT 138 | 1460 LET Z2=A1-Z1 139 | 1470 IF Z2>0 THEN 1500 140 | 1480 PRINT "YOU BUST" 141 | 1490 GO TO 1610 142 | 1500 PRINT " YOU NOW HAVE"; Z2; "DOLLARS" 143 | 1510 LET A1=Z2 144 | 1520 GO TO 1580 145 | 1522 PRINT"TRIED TO FOOL ME; BET AGAIN"; 146 | 1525 GO TO 870 147 | 1530 PRINT"CONGRATULATIONS" 148 | 1540 IF Z=0 THEN 1580 149 | 1550 LET Z2=A1+Z1 150 | 1560 PRINT "YOU NOW HAVE"; Z2;"DOLLARS" 151 | 1570 LET A1=Z2 152 | 1580 PRINT"DO YOU WANT TO TRY AGAIN?" 153 | 1590 INPUT S 154 | 1600 IF S=1 THEN 380 155 | 1610 PRINT "TOUGH LUCK" 156 | 1620 PRINT 157 | 1630 PRINT" GOODBYE" 158 | 1640 END -------------------------------------------------------------------------------- /diamnd.bas: -------------------------------------------------------------------------------- 1 | 3 PRINT "FOR A PRETTY DIAMOND PATTERN," 2 | 4 PRINT "TYPE IN AN ODD NUMBER BETWEEN 5 AND 31." 3 | 5 INPUT R\PRINT 4 | 6 Q=INT(60/R) 5 | 8 FOR L=1 TO Q 6 | 10 X=1\Y=R\Z=2 7 | 20 FOR N=X TO Y STEP Z 8 | 25 PRINT TAB((R-N)/2); 9 | 28 FOR M=1 TO Q 10 | 29 C=1 11 | 30 FOR A=1 TO N 12 | 31 IF C=1 THEN 40 13 | 32 IF C=2 THEN 42 14 | 33 IF C=3 THEN 44 15 | 35 PRINT " ";\GOTO 50 16 | 40 PRINT "D";\GOTO 47 17 | 42 PRINT "E";\GOTO 47 18 | 44 PRINT "C"; 19 | 47 C=C+1 20 | 50 NEXT A 21 | 53 IF M=Q THEN 60 22 | 55 PRINT TAB(R*M+(R-N)/2); 23 | 56 NEXT M 24 | 60 PRINT 25 | 70 NEXT N 26 | 83 IF X<>1 THEN 95 27 | 85 X=R-2\Y=1\Z=-2 28 | 90 GOTO 20 29 | 95 NEXT L 30 | 99 END -------------------------------------------------------------------------------- /dice.bas: -------------------------------------------------------------------------------- 1 | 10 DIM F (12) 2 | 20 REM DANNY FREIDUS 3 | 30 PRINT "THIS PROGRAM SIMULATES THE ROLLING OF A" 4 | 40 PRINT "PAIR OF DICE." 5 | 50 PRINT "YOU ENTER THE NUMBER OF TIMES YOU WANT THE COMPUTER" 6 | 60 PRINT "TO 'ROLL' THE DICE. WATCH OUT, VERY LARGE NUMBERS TAKE" 7 | 70 PRINT "A LONG TIME. IN PARTICULAR, NUMBERS OVER 5000." 8 | 80 FOR Q=1 TO 12 9 | 90 F(Q)=0 10 | 100 NEXT Q 11 | 110 PRINT\PRINT "HOW MANY ROLLS"; 12 | 120 INPUT X 13 | 130 FOR S=1 TO X 14 | 140 A=INT(6*RND+1) 15 | 150 B=INT(6*RND+1) 16 | 160 R=A+B 17 | 170 F(R)=F(R)+1 18 | 180 NEXT S 19 | 185 PRINT 20 | 190 PRINT "TOTAL SPOTS","NUMBER OF TIMES" 21 | 200 FOR V=2 TO 12 22 | 210 PRINT V,F(V) 23 | 220 NEXT V 24 | 222 PRINT\PRINT "TRY AGAIN"; 25 | 223 INPUT Z$ 26 | 224 IF Z$="YES" THEN 80 27 | 240 END -------------------------------------------------------------------------------- /digits.bas: -------------------------------------------------------------------------------- 1 | 210 PRINT "THIS IS A GAME OF GUESSING." 2 | 220 PRINT "FOR INSTRUCTIONS, TYPE '1', ELSE TYPE '0'" 3 | 230 INPUT E 4 | 240 IF E=0 THEN 360 5 | 250 PRINT 6 | 260 PRINT "PLEASE TAKE A PIECE OF PAPER AND WRITE DOWN" 7 | 270 PRINT "THE DIGITS '0', '1', OR '2' THIRTY TIMES AT RANDOM." 8 | 280 PRINT "ARRANGE THEM IN THREE LINES OF TEN DIGITS." 9 | 290 PRINT "I WILL ASK FOR THEM 10 AT A TIME." 10 | 300 PRINT "I WILL ALWAYS GUESS FIRST, AND THEN LOOK AT YOUR" 11 | 310 PRINT "NEXT NUMBER TO SEE IF I WAS RIGHT. BY PURE LUCK I" 12 | 320 PRINT "OUGHT TO BE RIGHT 10 TIMES. BUT I HOPE TO DO BETTER" 13 | 330 PRINT "THAN THAT ****" 14 | 340 PRINT\PRINT 15 | 360 READ A,B,C 16 | 370 DATA 0,1,3 17 | 380 DIM M(26,2), K(2,2), L(8,2) 18 | 400 MAT M=CON\MAT K=CON 19 | 420 MAT K=(9)*K\MAT L=CON 20 | 440 MAT L=(3)*L 21 | 450 L(0,0)=2\L(4,1)=2\L(8,2)=2 22 | 480 Z=26\Z1=8\Z2=2 23 | 510 Q=0 24 | 520 FOR T=1 TO 3 25 | 530 PRINT 26 | 540 PRINT "TEN NUMBERS PLEASE"; 27 | 550 INPUT N(1),N(2),N(3),N(4),N(5),N(6),N(7),N(8),N(9),N(10) 28 | 560 FOR I=1 TO 10 29 | 570 W=N(I)-1 30 | 580 IF W=SGN(N) THEN 620 31 | 590 PRINT "USE ONLY THE DIGITS '0', '1', OR '2'." 32 | 600 PRINT "LET'S TRY AGAIN."\GOTO 530 33 | 620 NEXT I 34 | 630 PRINT\PRINT "MY GUESS","YOUR NO.","RESULT","NO. RIGHT"\PRINT 35 | 660 FOR U=1 TO 10 36 | 670 N=N(U)\S=0 37 | 690 FOR J=0 TO 2 38 | 700 S1=A*K(Z2,J)*B*L(Z1,J)*C*M(Z,J) 39 | 710 IF S>S1 THEN 760 40 | 720 IF S10 THEN 980 61 | 940 IF X<10 THEN 1110 62 | 950 PRINT "I GUESSED EXACTLY 1/3 OF YOUR NUMBERS." 63 | 960 PRINT "IT IS A TIE GAME." 64 | 970 GOTO 1030 65 | 980 PRINT "I GUESSED MORE THAN 1/3 OF YOUR NUMBERS." 66 | 990 PRINT "I WIN."\FOR Q=1 TO 10\PRINT CHR$(7);\NEXT Q 67 | 1000 GOTO 1030 68 | 1010 PRINT "I GUESSED LESS THAN 1/3 OF YOUR NUMBERS." 69 | 1020 PRINT "YOU BEAT ME. CONGRATULATIONS ****" 70 | 1030 PRINT 71 | 1040 PRINT "DO YOU WANT TO TRY AGAIN (1 FOR YES, 0 FOR NO)"; 72 | 1060 INPUT X 73 | 1070 IF X=1 THEN 400 74 | 1080 PRINT\PRINT "THANKS FOR THE GAME." 75 | 1090 END -------------------------------------------------------------------------------- /even.bas: -------------------------------------------------------------------------------- 1 | 1 LET Y1=0 2 | 10 LET M1=0 3 | 20 DIM M(20),Y(20) 4 | 30 PRINT" THIS IS A TWO-PERSON GAME CALLED 'EVEN WINS.'" 5 | 40 PRINT"TO PLAY THE GAME, THE PLAYERS NEED 27 MARBLES OR" 6 | 50 PRINT"OTHER OBJECTS ON A TABLE." 7 | 60 PRINT 8 | 70 PRINT 9 | 80 PRINT" THE 2 PLAYERS ALTERNATE TURNS, WITH EACH PLAYER" 10 | 90 PRINT"REMOVING FROM 1 TO 4 MARBLES ON EACH MOVE. THE GAME" 11 | 100 PRINT"ENDS WHEN THERE ARE NO MARBLES LEFT, AND THE WINNER" 12 | 110 PRINT"IS THE ONE WITH AN EVEN NUMBER OF MARBLES." 13 | 120 PRINT 14 | 130 PRINT 15 | 140 PRINT" THE ONLY RULES ARE THAT (1) YOU MUST ALTERNATE TURNS," 16 | 150 PRINT"(2) YOU MUST TAKE BETWEEN 1 AND 4 MARBLES EACH TURN," 17 | 160 PRINT"AND (3) YOU CANNOT SKIP A TURN." 18 | 170 PRINT 19 | 180 PRINT 20 | 190 PRINT 21 | 200 PRINT" TYPE A 1 IF YOU WANT TO GO FIRST, AND TYPE" 22 | 210 PRINT"A 0 IF YOU WANT ME TO GO FIRST" 23 | 220 INPUT C 24 | 230 IF C=0 THEN 250 25 | 240 GOTO 1060 26 | 250 LETT=27 27 | 260 LET M=2 28 | 270 PRINT"TOTAL ="T 29 | 280 LET M1=M1+M 30 | 290 LET T=T-M 31 | 300 PRINT"I PICK UP";M;" MARBLES." 32 | 310 IF T=0 THEN 880 33 | 320 PRINT"TOTAL =";T 34 | 330 PRINT"" 35 | 340 PRINT" AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS";M1 36 | 350 INPUT Y 37 | 360 PRINT" " 38 | 370 IF Y<1 THEN 1160 39 | 380 IF Y>4 THEN 1160 40 | 390 IF Y<=T THEN 430 41 | 400 PRINT" YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE" 42 | 410 PRINT"LEFT. TRY AGAIN." 43 | 420 GOTO 350 44 | 430 LET Y1=Y1+Y 45 | 440 LET T=T-Y 46 | 450 IF T=0 THEN 880 47 | 460 PRINT"TOTAL =";T 48 | 470 PRINT"" 49 | 480 PRINT" YOUR TOTAL IS ";Y1 50 | 490 IF T<.5 THEN 880 51 | 52 | 500 LET R=T-6*INT(T/6) 53 | 510 IF INT(Y1/2)=Y1/2 THEN 700 54 | 520 IF T<4.2 THEN 580 55 | 530 IF R>3.4 THEN 620 56 | 540 LET M=R+1 57 | 550 LET M1=M1+M 58 | 560 LET T=T-M 59 | 570 GO TO 300 60 | 580 LET M=T 61 | 590 LET T=T-M 62 | 600 GO TO 830 63 | 610 REM 250 IS WHERE I WIN. 64 | 620 IF R<4.5 THEN 640 65 | 630 IF R>3.5 THEN 660 66 | 640 LET M=1 67 | 650 GOTO 670 68 | 660 LET M=4 69 | 670 LET T=T-M 70 | 680 LET M1=M1+M 71 | 690 GOTO 300 72 | 700 REM I AM READY TO ENCODE THE STRAT FOR WHEN OPP TOT IS EVEN. 73 | 710 IF R<1.5 THEN 1020 74 | 720 IF R>5.3 THEN 1020 75 | 730 LET M=R-1 76 | 740 LET M1=M1+M 77 | 750 LET T=T-M 78 | 760 IF T<.2 THEN 790 79 | 770 REM IS # ZERO HERE 80 | 780 GOTO 300 81 | 790 REM IS = ZERO HERE 82 | 800 PRINT"I PICK UP";M;" MARBLES." 83 | 810 PRINT"" 84 | 820 GOTO 880 85 | 830 REM THIS IS WHERE I WIN 86 | 840 PRINT "I PICK UP";M;" MARBLES." 87 | 850 PRINT"" 88 | 860 PRINT "TOTAL = 0" 89 | 870 LET M1=M1+M 90 | 880 PRINT " THAT IS ALL OF THE MARBLES." 91 | 890 PRINT"" 92 | 900 PRINT" MY TOTAL IS";M1;" YOUR TOTAL IS";Y1 93 | 910 PRINT"" 94 | 920 IF INT(M1/2)=M1/2 THEN 950 95 | 930 PRINT" YOU WON. DO YOU WANT TO PLAY" 96 | 940 GOTO 960 97 | 950 PRINT" I WON. DO YOU WANT TO PLAY" 98 | 960 PRINT"AGAIN? TYPE 1 FOR YES AND 0 FOR NO." 99 | 970 INPUT A1 100 | 980 IF A1=0 THEN 1030 101 | 990 LET M1=0 102 | 1000 LET Y1=0 103 | 1010 GOTO 200 104 | 1020 GOTO 640 105 | 1030 PRINT"" 106 | 1040 PRINT" OK. SEE YOU LATER." 107 | 1050 GOTO 1230 108 | 1060 LET T = 27 109 | 1070 PRINT 110 | 1080 PRINT 111 | 1090 PRINT 112 | 1100 PRINT"TOTAL =";T 113 | 1110 PRINT 114 | 1120 PRINT 115 | 1130 PRINT" WHAT IS YOUR FIRST MOVE?" 116 | 1140 INPUT Y 117 | 1150 GOTO 360 118 | 1160 PRINT 119 | 1170 PRINT" THE NUMBER OF MARBLES YOU TAKE MUST BE A POSITIVE" 120 | 1180 PRINT"INTEGER BETWEEN 1 AND 4." 121 | 1190 PRINT 122 | 1200 PRINT" WHAT IS YOUR NEXT MOVE?" 123 | 1210 PRINT 124 | 1220 GOTO 350 125 | 1230 END -------------------------------------------------------------------------------- /even1.bas: -------------------------------------------------------------------------------- 1 | 1 PRINT "GAME OF EVEN WINS - CYBERNETIC VERSION":PRINT 2 | 2 INPUT "DO YOU WANT INSTRUCTIONS (YES OR NO)";A$ 3 | 3 IF A$="NO" THEN 19 4 | 4 PRINT:PRINT "THE GAME IS PLAYED AS FOLLOWS:" 5 | 5 PRINT "AT THE BEGINNING OF A GAME, A RANDOM NUMBER OF CHIPS ARE" 6 | 6 PRINT "PLACED ON THE BOARD. THE NUMBER OF CHIPS ALWAYS STARTS" 7 | 7 PRINT "AS AN ODD NUMBER. ON EACH TURN, A PLAYER MUST TAKE ONE," 8 | 8 PRINT "TWO, THREE, OR FOUR CHIPS. THE WINNER IS THE PLAYER WHO" 9 | 9 PRINT "FINISHES WITH A TOTAL NUMBER OF CHIPS THAT IS EVEN." 10 | 10 PRINT "THE COMPUTER STARTS OUT KNOWING ONLY THE RULES OF THE" 11 | 11 PRINT "GAME. IT GRADUALLY LEARNS TO PLAY WELL. IT SHOULD BE" 12 | 12 PRINT "DIFFICULT TO BEAT THE COMPUTER TWENTY GAMES IN A ROW." 13 | 13 PRINT "TRY IT!!!":PRINT 14 | 14 PRINT "TO QUIT AT ANY TIME. TYPE '0' AS YOUR MOVE.":PRINT 15 | 20 DIM R(1,5):RANDOMIZE 16 | 25 L=0:E=0 17 | 30 FOR I=0 TO 5 18 | 40 R(1,I)=4 19 | 50 R(0,I)=4 20 | 60 NEXT I 21 | 70 A=0:B=0 22 | 90 P=INT((13*RND+9)/2)*2+1 23 | 100 IF P=1 THEN 530 24 | 110 PRINT "THERE ARE "P" CHIPS ON THE BOARD." 25 | 120 E1=E 26 | 130 L=1 27 | 140 E=(A/2-INT(A/2))*2 28 | 150 L=INT((P/6-INT(P/6))*6+.5) 29 | 160 IF R(E,L)=P THEN 320 30 | 170 M=R(E,L) 31 | 180 IF M=0 THEN 370 32 | 190 P=P-M 33 | 200 IF M=1 THEN 510 34 | 210 PRINT "COMPUTER TAKES"M" CHIPS LEAVING "P" ...YOUR MOVE"; 35 | 220 B=B+M 36 | 230 INPUT M 37 | 240 M=INT(M) 38 | 250 IF M<1 THEN 460 39 | 260 IF M>4 THEN 460 40 | 270 IF M>P THEN 460 41 | 280 IF M=P THEN 360 42 | 290 P=P-M 43 | 300 A=A+M 44 | 310 GOTO 100 45 | 320 IF P=1 THEN 550 46 | 330 PRINT "COMPUTER TAKES "P" CHIPS" 47 | 340 R(E,L)=P 48 | 350 B=B+P 49 | 360 IF B/2=INT(B/2) THEN 420 50 | 370 PRINT "GAME OVER ... YOU WIN!!!":PRINT 51 | 380 IF R(E,L)=1 THEN 480 52 | 400 R(E,L)=R(E,L)-1 53 | 410 GOTO 70 54 | 420 PRINT "GAME OVER ... I WIN!!!":PRINT 55 | 430 GOTO 70 56 | 450 IF M=0 THEN 570 57 | 460 PRINT M"IS AN ILLEGAL MOVE ... YOUR MOVE"; 58 | 470 GOTO 230 59 | 480 IF R(E1,L1)=1 THEN 70 60 | 490 R(E1,L1)=R(E1,L1)-1 61 | 500 GOTO 70 62 | 510 PRINT "COMPUTER TAKES 1 CHIP LEAVING "P" ... YOUR MOVE"; 63 | 520 GOTO 220 64 | 530 PRINT "THERE IS 1 CHIP ON THE BOARD" 65 | 540 GOTO 120 66 | 550 PRINT "COMPUTER TAKES 1 CHIP" 67 | 560 GOTO 340 68 | 570 END -------------------------------------------------------------------------------- /fipfop.bas: -------------------------------------------------------------------------------- 1 | 5 REM *** CONVERTED TO RSTS/E BY DAVID AHL. DIGITAL 2 | 10 REM *** CREATED BY MICHAEL KASS HERRICKS HS. NY 3 | 20 PRINT "THE OBJECT OF THIS PUZZLE IS TO CHANGE THIS:" 4 | 30 PRINT 5 | 40 PRINT "X X X X X X X X X X" 6 | 50 PRINT 7 | 60 PRINT "TO THIS:" 8 | 70 PRINT 9 | 80 PRINT "O O O O O O O O O O" 10 | 90 PRINT 11 | 100 &"BY TYPING IN THE NUMBER CORRESPONDING TO THE POSITION OF THE LETTER" 12 | 120 &"ON SOME NUMBERS, ONE POSITION WILL CHANGE, ON OTHERS, TWO WILL CHANGE" 13 | 140 &"TO RESET THE LINE TO ALL X'S, TYPE 0 (ZERO) AND TO START A NEW" 14 | 160 &"IN THE MIDDLE OF A GAME, TYPE 11 (ELEVEN)" 15 | 170 PRINT 16 | 180 RANDOMIZE 17 | 190 LET Q=RND(Y) 18 | 200 PRINT "HERE IS THE STARTING LINE OF X'S:" 19 | 210 PRINT 20 | 220 LET C=0 21 | 230 PRINT "1 2 3 4 5 6 7 8 9 10" 22 | 240 PRINT "X X X X X X X X X X" 23 | 250 PRINT 24 | 260 DIM A$(20) 25 | 270 FOR X=1 TO 10 26 | 280 LET A$(X)="X" 27 | 290 NEXT X 28 | 300 GO TO 320 29 | 310 PRINT "ILLEGAL ENTRY--TRY AGAIN" 30 | 320 PRINT "INPUT THE NUMBER" 31 | 330 INPUT N 32 | 340 IF N<>INT (N) THEN 310 33 | 350 IF N=11 THEN 180 34 | 360 IF N>11 THEN 310 35 | 370 IF N=0 THEN 230 36 | 380 IF M=N THEN 510 37 | 390 LET M=N 38 | 400 IF A$(N)="O" THEN 480 39 | 410 LET A$(N)="O" 40 | 420 LET R=INT(N*C/10-N)-SIN(C/N)+336*SIN( 8+N) 41 | 430 LET R=R-INT(R) 42 | 440 LET R=INT(19*R) 43 | 450 IF A$(N)="O" THEN 480 44 | 460 IF R>10 THEN 610 45 | 470 GO TO 610 46 | 480 LET A$(N)="X" 47 | 490 IF R THEN 420 48 | 500 GO TO 610 49 | 510 IF A$(N)="O" THEN 530 50 | 520 LET A$(N)="O" 51 | 530 LET R= 592*COT(C/N+C)/SIN(N*2+8)-COS(N) 52 | 540 LET N=R-INT(R) 53 | 550 LET N=INT(10*N) 54 | 560 IF A$(N)="O" THEN 520 55 | 570 IF R>10 THEN 610 56 | 580 GO TO 610 57 | 590 LET A$(N)="X" 58 | 600 IF M=N THEN 530 59 | 610 PRINT"1 2 3 4 5 6 7 8 9 10" 60 | 620 PRINT A$(Z)" ";FOR Z=1 TO 10 61 | 630 LET C=C+1 62 | 640 PRINT 63 | 650 FOR Z=1 TO 10 64 | 660 IF A$(Z)<>"O" THEN 320 65 | 670 NEXT Z 66 | 680 IF C>12 THEN 710 67 | 690 PRINT"VERY GOOD. YOU GUESSED IT IN ONLY "C"GUESSES!!!!" 68 | 700 GO TO 720 69 | 710 PRINT"TRY HARDER NEXT TIME, IT TOOK YOU "C"GUESSES" 70 | 720 PRINT "DO YOU WANT TO DO ANOTHER PUZZLE"; 71 | 730 INPUT X$ 72 | 740 IF X$="NO" THEN 780 73 | 760 PRINT 74 | 770 GO TO 180 75 | 780 END -------------------------------------------------------------------------------- /golf.bas: -------------------------------------------------------------------------------- 1 | 100RANDOMIZE 2 | 110DIMX(20) 3 | 120PRINT"DO YOU WANT DIRECTIONS Y FOR YES N FOR "; 4 | 130INPUTZ$\PRINT 5 | 140IFZ$="Y"THEN160 6 | 150IFZ$="N"THEN290 7 | 160PRINT"DIRECTIONS FOR GOLF" 8 | 170PRINT 9 | 180PRINT"YOU HAVE A CHOICE OF 9 CLUBS" 10 | 190PRINT"WHEN THE COMPUTER TELLS YOU TO CHOSE YOUR CLUB" 11 | 200PRINT"INPUT 1 FOR A DRIVER RANGE OF 150 TO 270 YARDS" 12 | 210PRINT"INPUT 2 FOR A 3 WOOD RANGE OF 150 TO 220 YARDS" 13 | 220PRINT"INPUT 3 FOR A 5 IRON RANGE OF 140 TO 180 YARDS" 14 | 230PRINT"INPUT 4 FOR A 6 IRON RANGE OF 120 TO 180 YARDS GOOD FROM ROUGH" 15 | 240PRINT"INPUT 5 FOR A 7 IRON RANGE OF 100 TO 130 YARDS GOOD FROM ROUGH" 16 | 250PRINT"INPUT 6 FOR A 8 IRON RANGE OF 70 TO 100 YARDS GOOD FROM TRAP" 17 | 260PRINT"INPUT 7 FOR A 9 IRON RANGE OF 30 TO 70 YARDS GOOD FROM TRAP" 18 | 270PRINT"INPUT 8 FOR A WEDGE RANGE UP TO 30 YARDS GOOD FROM TRAP" 19 | 280PRINT"INPUT 9 FOR A PUTTER USE WHEN ON GREEN" 20 | 290PRINT 21 | 300PRINT"HOW MANY PLAYERS ARE PLAYING TODAY";\INPUTU\PRINT 22 | 310IFU<=4THEN340 23 | 320PRINT"ONLY FOUR ARE ALLOWED TO PLAY AT ONE TIME" 24 | 330GOTO300 25 | 340PRINT 26 | 350DATA360,4,585,5,400,4,185,3,415,4,375,4,219,3 27 | 360DATA395,4,630,5,330,4,610,5,440,4,180,3,420,4,595,5,195,3 28 | 370DATA450,4,370,4 29 | 380DIMR(18) 30 | 390DIMP(18) 31 | 400FORR=1TO18 32 | 410READR(R)\READP(R) 33 | 420NEXTR 34 | 430DIM M(4,18) 35 | 440DIMN(18) 36 | 450PRINT"HOW MANY HOLES UP TO 18 DO YOU WANT TO PLAY";\INPUTV 37 | 460PRINT 38 | 470FORJ=1TO V 39 | 480FOR Q=1TO U 40 | 490LETH$=R(J) 41 | 500PRINT"HOLE NUMBER",J;"IS";H;"YARDS PAR";P(J) 42 | 510LETK=0 43 | 520LETT=0 44 | 530LET T2=0 45 | 540PRINT"PLAYER NUMBER";Q;"CHOSE YOUR CLUB" 46 | 550INPUT X 47 | 560IFX=9THEN880 48 | 570LETK=K+1 49 | 580IF X=9 THEN 930 50 | 590GOTO1340 51 | 600 IFX=9THEN970 52 | 610LETD=X 53 | 620IFH<>X(D)THEN630\IFK<>1THEN990\PRINT"HOLE IN ONE!!!"\GOTO990 54 | 630PRINT"DISTANCE OF SHOT IS";X(D);"YARDS" 55 | 640LETL=INT(RND(X)*100) 56 | 650IFL=99THEN670\IFL=43THEN670\IFL=88THEN670 57 | 660IFL<>25THEN760 58 | 670PRINT"IN TRAP"\LETC=ABS(H-X(D))\GOTO680 59 | 680LETL8=INT(RND(X)*10) 60 | 690IFL8>3THEN680\IFL8=1THEN850 61 | 700LETT2=0 62 | 710FORZ=1TOL8 63 | 720LETT2=T2+1 64 | 730PRINT"CHOSE YOUR CLUB"\INPUTX 65 | 740PRINT"STILL IN TRAP"\NEXTZ 66 | 750GOTO850 67 | 760IFL=13THEN780\IFL=88THEN780 68 | 770IFL<>25THEN800 69 | 780PRINT"IN ROUGH"\LETC=ABS(H-X(D))\GOTO850 70 | 790IFL=69THEN810\IFL=73THEN810\IFL=41THEN810 71 | 800IFL<>75THEN 820 72 | 810PRINT"IN WATER"\LETT=T+1\PRINT"YOU LOSE 1 STROKE"\LETC=ABS(H-X(D)) 73 | 820GOTO850 74 | 830LETC=ABS(H-X(D)) 75 | 840IFC<30THEN930 76 | 850PRINT"DISTANCE REMAINING TO PIN IS";C;"YARDS" 77 | 860LETH=C 78 | 870GOTO540 79 | 880LETC=A(J) 80 | 890IFC>30THEN910 81 | 900GOTO970 82 | 910PRINT"YOU ARE NOT ON THE GREEN CHOSE ANOTHER CLUB" 83 | 920GOTO550 84 | 930PRINT"PLAYER NUMBER";Q;"IS ON THE GREEN CHOSE YOUR CLUB" 85 | 940INPUTX 86 | 950LETD=X 87 | 960GOTO590 88 | 970PRINT X(D) "PUTTS" 89 | 980LETM(Q,J)=K+X(9)+T+T2\GOTO1000 90 | 990LETM(Q,J)=K\PRINT"YOU SUNK THE SHOT" 91 | 1000PRINTM(A,J)"STROKES FOR HOLE NUMBER";J;"FOR PLAYER";Q 92 | 1010NEXTQ\PRINT\PRINT 93 | 1020NEXT J 94 | 1030FORW=1TOV 95 | 1040LETN(1)=M(1,W)+N(1) 96 | 1050LETN(2)=M(2,W)+N(2) 97 | 1060LETN(3)=M(3,W)+N(3) 98 | 1070LETN(4)=M(4,W)+N(4) 99 | 1080LET E= P(W)+E 100 | 1090NEXTW 101 | 1100FORS=1TOU 102 | 1110PRINT"PLAYER NUMBER";S;"SHOT";N(S);"FOR";V;"HOLES PAR IS";E 103 | 1120NEXT S 104 | 1130GOTO1440 105 | 1140LETX(2)=INT(130+RND(X)+150) 106 | 1150GOTO600 107 | 1160LETX(1)=INT(90+RND(X)+180) 108 | 1170GOTO600 109 | 1180LETX(3)=INT(40+RND(X)+140) 110 | 1190GOTO600 111 | 1200LETX(4)=INT(60+RND(X)+120) 112 | 1210GOTO600 113 | 1220LETX(5)=INT(30+RND(X)+100) 114 | 1230GOTO600 115 | 1240LETX(6)=INT(30+RND(X)+70) 116 | 1250GOTO600 117 | 1260LETX(7)=INT(40+RND(X)+30) 118 | 1270GOTO600 119 | 1280LETX(8)=INT(30+RND(X)+1) 120 | 1290IFX(8)<1THEN1280 121 | 1300GOTO600 122 | 1310LETX(9)=INT(3*RND(X)+1) 123 | 1320GOTO600 124 | 1330STOP 125 | 1340IFX=1THEN1160 126 | 1350IFX=2THEN1140 127 | 1360IFX=3THEN1180 128 | 1370IFX=4THEN1200 129 | 1380IFX=5THEN1220 130 | 1390IFX=6THEN1240 131 | 1400IFX=7THEN1260 132 | 1410IFX=8THEN1280 133 | 1420IFX=9THEN1310 134 | 1430GOTO600 135 | 1440END -------------------------------------------------------------------------------- /gomoko.bas: -------------------------------------------------------------------------------- 1 | 10 PRINT\PRINT "WELCOME TO THE ORIENTAL GAME OF GOMOKO" 2 | 20 PRINT\PRINT "THE GAME IS PLAYED ON AN N BY N GRID OF A SIZE" 3 | 30 PRINT "THAT YOU SPECIFY. DURING YOUR PLAY, YOU MAY COVER ONE GRID" 4 | 40 PRINT "INTERSECTION WITH A MARKER. THE OBJECT OF THE GAME IS TO GET" 5 | 50 PRINT "5 ADJACENT MARKERS IN A ROW -- HORIZONTALLY, VERTICALLY, OR" 6 | 60 PRINT "ALONG EITHER DIAGONAL. ON THE BOARD DIAGRAM, YOUR MOVES ARE" 7 | 70 PRINT "MARKED WITH A '1', AND THE COMPUTER MOVES WITH A '2'." 8 | 80 PRINT\PRINT "THE COMPUTER DOES NOT KEEP TRACK OF WHO HAS WON." 9 | 90 PRINT "TO END THE GAME, TYPE -1,-1 FOR YOUR MOVE"\PRINT 10 | 110 PRINT "WHAT IS YOUR BOARD SIZE (MIN =7, MAX = 19)";\INPUT N 11 | 115 IF N>6 THEN 117 12 | 116 GOTO 120 13 | 117 IF N<20 THEN 300 14 | 120 PRINT "I SAID, THE MINIMUM SIZE IS 7, AND THE MAXIMUM IS 19."\GOTO 110 15 | 210 FOR I=1 TO N\FOR J=1 TO N\A(X,Y)=0\NEXT J\NEXT I 16 | 300 PRINT\PRINT "WE ALTERNATE MOVES. YOU GO FIRST..."\PRINT 17 | 310 PRINT "YOUR PLAY (I,J)";\INPUT I,J 18 | 320 IF I=-1 THEN 980 19 | 330 X=I\Y=J\GOSUB 910\IF L=1 THEN 410 20 | 340 PRINT "ILLEGAL MOVE. TRY AGAIN..."\GOTO 310 21 | 410 IF A(I,J)<>0 THEN 440 22 | 420 PRINT "SQUARE OCCUPIED. TRY AGAIN..."\GOTO 310 23 | 440 A(I,J)=1 24 | 500 REM *** COMPUTER TRIES AN 'INTELLIGENT' MOVE *** 25 | 510 FOR E=-1 TO 1\FOR F=-1 TO 1\IF E+F-E*F=0 THEN 590 26 | 540 LET X=I+E\LET Y=J+F\GOSUB 910 27 | 570 IF L=0 THEN 590 28 | 580 IF A(X,Y)=1 THEN 710 29 | 590 NEXT F\NEXT E 30 | 600 REM *** COMPUTER TRIES A RANDOM MOVE *** 31 | 610 LET X=INT(N*RND(0))+1\LET Y=INT(RND(0)*N)+1\GOSUB 910\IF L=0 THEN 610 32 | 650 IF A(X,Y)<>0 THEN 610 33 | 680 A(X,Y)=2\GOSUB 910\GOTO 310 34 | 710 X=I-E\Y=J-F\GOSUB 910 35 | 750 IF L=0 THEN 810 36 | 760 GOTO 650 37 | 800 REM *** PRINT THE BOARD *** 38 | 810 FOR I=1 TO N\FOR J=1 TO N\PRINT A(I,J); 39 | 840 NEXT J\PRINT \NEXT I\PRINT \RETURN 40 | 900 REM *** CHECK WHETHER MOVE IS LEGAL *** 41 | 910 L=1\IF X<1 THEN 970 42 | 920 IF X>N THEN 970 43 | 930 IF Y<1 THEN 970 44 | 940 IF Y>N THEN 970 45 | 950 RETURN 46 | 970 LET L=0\RETURN 47 | 980 PRINT\PRINT "THANKS FOR THE GAME!!!" 48 | 985 PRINT "PLAY AGAIN (1 FOR YES, 0 FOR NO)";\INPUT Q 49 | 990 IF Q=1 THEN 110 50 | 999 END -------------------------------------------------------------------------------- /guess.bas: -------------------------------------------------------------------------------- 1 | 1 PRI "THIS IS A NUMBER GUESSING GAME. I'LL THINK" 2 | 2 PRI "OF A NUMBER BETWEEN 1 AND ANY LIMIT YOU WANT." 3 | 3 PRI "THEN YOU HAVE TO GUESS WHAT IT IS." 4 | 4 PRI 5 | 5 PRI "WHAT LIMIT DO YOU WANT"; 6 | 6 INPL 7 | 7 PRI 8 | 8 L1=INT(LOG(L)/LOG(2))+1 9 | 9 PRI"I'M THINKING OF A NUMBER BETWEEN 1 AND"L 10 | 10 G=1 11 | 11 PRI "NOW YOU TRY TO GUESS WHAT IT IS" 12 | 12 M=INT(L*RND(0))+1 13 | 13 INP N 14 | 14 IF N>0 THEN 25 15 | 15 GOSUB70 16 | 16 GOTO1 17 | 17 IF N=M THEN 50 18 | 18 G=G+1 19 | 19 IF N>M THEN 40 20 | 20 PRI "TOO LOW. GUESS AGAIN." 21 | 21 GOTO 20 22 | 22 PRI "TOO HIGH. GUESS AGAIN." 23 | 23 GOTO 20 24 | 24 PRI "THAT'S IT! YOU GOT IT IN"G"TRIES." 25 | 25 IF G100 THEN 330 28 | 370 PRINT "ENTER DISTANCE"; 29 | 380 INPUT D 30 | 390 IF D<0 THEN 370 31 | 400 IF D>10000 THEN 370 32 | 410 M=100000-75000*RND(0) 33 | 420 PRINT 34 | 430 PRINT "THE MAXIMUM RANGE OF YOUR GUN IS "M" YARDS" 35 | 440 FOR K=1 TO M/10000 36 | 450 LET K1=RND(0) 37 | 460 NEXT K 38 | 470 R=.95*M-.6*M*RND(0) 39 | 480 LET N=0 40 | 490 GOTO 520 41 | 500 IF R>M THEN 840 42 | 510 IF R<=(M/2.5) THEN 860 43 | 520 PRINT "TARGET RANGE IS"R" YARDS" 44 | 530 PRINT "ELEVATION"; 45 | 540 INPUT E 46 | 550 IF E<0 THEN 840 47 | 560 IF E> 89 THEN 800 48 | 570 IF E <1 THEN 820 49 | 580 N=N+1 50 | 590 K=INT(R-M*SIN(2*E/57.3)) 51 | 600 K1=ABS(K) 52 | 610 IF K1D THEN 720 54 | 630 IF K<-D THEN 740 55 | 640 STOP 56 | 650 PRINT "*** TARGET DESTROYED ***" 57 | 660 GOSUB 940 58 | 670 D1=K 59 | 680 FOR K=1 TO N+D/100 60 | 690 K1=RND(0) 61 | 700 NEXT K 62 | 710 GOTO 410 63 | 720 PRINT "SHORT OF TARGET BY "K1" YARDS" 64 | 730 GOTO 745 65 | 740 PRINT "OVER TARGET BY ";+K1"YARDS" 66 | 745 LET C=INT(2*RND(0)+1) 67 | 746 IF C=1 THEN 750 68 | 748 LET C=-1 69 | 749 GOTO 760 70 | 750 LET C=1 71 | 760 LET C1=M*S/100*RND(0) 72 | 770 C1=C*C1 73 | 780 R=R+C1 74 | 790 GOTO 500 75 | 800 PRINT "MAXIMUM ELEVATION IS 89 DEGREES" 76 | 810 GOTO 530 77 | 820 PRINT "MINIMUM ELEVATION IS 1 DEGREE" 78 | 830 GOTO 530 79 | 840 PRINT "* TARGET OUT OF RANGE *" 80 | 850 GOTO 670 81 | 860 PRINT "THE TARGET HAS DESTROYED YOU!" 82 | 870 GOTO 670 83 | 940 IF N=1 THEN 970 84 | 950 PRINT N" ROUNDS EXPENDED" 85 | 960 RETURN 86 | 970 PRINT "***** DIRECT HIT *****" 87 | 980 RETURN 88 | 990 END -------------------------------------------------------------------------------- /gunner.bas: -------------------------------------------------------------------------------- 1 | 10 REM *** MODIFIED AND CONVERTED TO RSTS/E BY DAVID AHL. DIGITAL 2 | 90 RANDOMIZE 3 | 100 PRINT "THIS COMPUTER DEMONSTRATION SIMULATES THE" 4 | 110 PRINT"RESULTS OF FIRING A FIELD ARTILLERY WEAPON." 5 | 120 PRINT 6 | 130 PRINT"YOU ARE THE OFFICER-IN-CHARGE, GIVING ORDERS TO THE GUN" 7 | 140 PRINT"CREW, TELLING THEM THE DEGREES OF ELEVATION YOU ESTIMATE" 8 | 150 PRINT"WILL PLACE THE PROJECTILE ON TARGET. A HIT WITHIN 100 YARDS" 9 | 160 PRINT "OF THE TARGET WILL DESTROY IT. TAKE MORE THAN 5 SHOTS," 10 | 170 PRINT "AND THE ENEMY WILL DESTROY YOU!"\PRINT 11 | 180 PRINT "MAXIMUM RANGE OF YOUR GUN IS 46500 YARDS." 12 | 185 Z=0 13 | 190 PRINT 14 | 195 S1=0 15 | 200 LET T=43000-30000*RND(X) 16 | 210 LET S=0 17 | 220 GO TO 370 18 | 230 PRINT"MINIMUM ELEVATION OF GUN IS ONE DEGREE." 19 | 240 GO TO 390 20 | 250 PRINT"MAXIMUM ELEVATION OF GUN IS 89 DEGREES." 21 | 260 GO TO 390 22 | 270 PRINT"OVER TARGET BY";ABS(E);"YARDS." 23 | 280 GO TO 390 24 | 290 PRINT "SHORT OF TARGET BY";ABS(E);"YARDS." 25 | 300 GO TO 390 26 | 310 GO TO 320 27 | 320 PRINT "***TARGET DESTROYED*** ";S;"ROUNDS OF AMMUNITION EXPENDED" 28 | 322 GOSUB 600 29 | 325 S1=S1+S 30 | 330 IF Z=4 THEN 490 31 | 340 Z=Z+1 32 | 345 PRINT 33 | 350 PRINT"THE FORWARD OBSERVER HAS SIGHTED MORE ENEMY ACTIVITY." 34 | 360 GO TO 200 35 | 370 PRINT" DISTANCE TO THE TARGET IS";INT(T);"YARDS....." 36 | 380 PRINT 37 | 390 PRINT 38 | 400 PRINT"ELEVATION:"; 39 | 410 INPUT B 40 | 420 IF B>89 THEN 250 41 | 430 IF B<1 THEN 230 42 | 440 LET S=S+1 43 | 442 IF S<6 THEN 450 44 | 444 PRINT "BOOM !!! YOU HAVE JUST BEEN DESTROYED "; 45 | 445 GOSUB 600 46 | 446 PRINT "BY THE ENEMY"\PRINT\PRINT\GOTO 495 47 | 450 LET B2=2*B/57.3\LET T=46500*SIN(B2)\LET X=T-I\LET E=INT(X) 48 | 460 IF ABS(E)<100 THEN 310 49 | 470 IF E>100 THEN 290 50 | 480 IF E<-100 THEN 270 51 | 490 PRINT\PRINT\PRINT "TOTAL ROUNDS EXPENDED WERE";S1 52 | 491 IF S1>15 THEN 495\PRINT "NICE SHOOTING !!"\GOSUB 600\GOTO 500 53 | 495 PRINT "BETTER GO BACK TO FORT SILL FOR REFRESHER TRAINING!" 54 | 500 PRINT\PRINT "THANK YOU FOR PLAYING!" 55 | 505 PRINT\PRINT "TRY AGAIN....."\PRINT\GOTO 180 56 | 510 FOR N=1 TO 10\PRINT CHR$(7)\NEXT N 57 | 520 RETURN 58 | 999 END 59 | -------------------------------------------------------------------------------- /hang.bas: -------------------------------------------------------------------------------- 1 | 15 REM *** GAME OF HANGMAN BY DAVE AHL, DIGITAL 2 | 20 REM *** BASED ON A PROGRAM WRITTEN BY KEN AUPPERLE, CLASS OF '75, 3 | 25 REM *** HALF HOLLOW HILLS H.S., DIX HILLS, NY 4 | 25 &"GAME OF HANGMAN":&:& 5 | 30 DIM P$(12,12),L$(20),D$(20),N$(26),U$(50) 6 | 40 C=1:RANDOMIZE:N=50 7 | 50 D$(1)="-" FOR I=1 TO 20:M=0 8 | 50 N$(I)="" FOR I=1 TO 26 9 | 70 FOR I=1 TO 12:FOR J=1 TO 12:P$(I,J)=" ":NEXT J:NEXT I 10 | 80 P$(1,1)="X" FOR I=1 TO 12 11 | 90 P$(I,1)="X" FOR I=1 TO 7:P$(2,7)="X" 12 | 95 IF C"Y" THEN 110 14 | 20 &: &,"THIS PROGRAM PLAYS THE GAME OF HEXAPAWN.":& 15 | "HEXAPAWN IS PLAYED WITH CHESS PAWNS ON A 3 BY 3 BOARD. THE PAWNS ARE":& 16 | "MOVED AS IN CHESS - ONE SPACE FORWARD TO AN EMPTY SPACE OR ONE SPACE" 17 | 30 &"FORWARD AND DIAGONALLY TO CAPTURE AN OPPOSING MAN.":&:&CHR(9%); 18 | "O THE BOARD, YOUR PAWNS ARE 'O', THE COMPUTER'S PAWNS ARE '*',":& 19 | "AND EMPTY SQUARES ARE '-'. TO ENTER A MOVE, TYPE THE NUMBER OF THE" 20 | 40 &"SQUARE YOU WILL MOVE FROM FOLLOWED BY THE NUMBER OF THE SQUARE":& 21 | "YOU WILL MOVE TO. (THE NUMBERS ARE SEPARATED BY A COMMA.)":& 22 | 50 &" THE PROGRAM STARTS A SERIS OF GAMES KNOWING ONLY WHEN THE":& 23 | "GAME IS WON (A DRAW IS IMPOSSIBLE) AND HOW TO MOVE. IT HAS NO":& 24 | "STRATEGY AT FIRST AND JUST MOVES RANDOMLY. HOWEVER, IT LEARNS" 25 | 60 &"FROM EACH GAME. THUS, DEFEATING IT BECOMES MORE AND MORE":& 26 | "DIFFICULT. ALSO, TO HELP OFFSET YOUR INITIAL ADVANTAGE, YOU WILL":& 27 | "NOT BE TOLD HOW TO WIN THE GAME BUT MUST LEARN THIS BY PLAYING.":& 28 | 100 DEF FNC$(X$,X%,Y$)=LEFT(X$,X%-1%)+Y$+RIGHT(X$,X%+LEN(Y$)) 29 | 105 DEF FNN$(X%): X$=NUM$(X$): FNN$=MID(X$,2%,LEN(X$)-2): FNEND 30 | 110 DIM P$(50%): RANDOMIZE: Q%=0%: 31 | PRINT "SINCE I'M A GOOD SPORT, YOU'LL ALWAYS GO FIRST 32 | 120 P%=0%: P$="****---OOO": &: &"NUMBERING:" 33 | &"123": &"456": &"789": & 34 | 190 D%=-1%: Q$="O": GOSUB 2000: IF M$="" THEN 35 | PRINT "YOU CAN'T MOVE. I WIN.": GOTO 510 36 | 200 &: &"BOARD::": &LEFT(P$,3%): &MID(P$,4%,3%): &RIGHT(P$,7): & 37 | 210 INPUT "WHAT IS YOUR MOVE"; A%,B%: 38 | IF INSTR(1%,M$,FNN(A$)+FNN(B%))=0% THEN 39 | PRINT "ILLEGAL MOVE.": GOTO 210 40 | 230 P$=FNC$(FNC$(P$,A$,"-"),B%,"O"): 41 | IF INSTR(1%,P$,"*")=0% OR INSTR(1%,P$,"O")<4% THEN 42 | PRINT "YOU WIN.": GOTO 500 43 | 300 P%=P%+2% ! COMPUTER'S MOVE 44 | 310 FOR C%=1% TO Q%: C%=PS(C%): IF VAL(LEFT(C$,1%))=P% AND 45 | MID(C$,2%,9)=P$ THEN M$=RIGHT(C$,1%): GOTO 400 46 | 320 NEXT C: Q$="*": D%=1%: GOSUB 2000: C%=Q%: 47 | IF M$="" THEN PRINT "I CAN'T MOVE, YOU WIN.": GOTO 500 48 | 400 IF M$="" THEN PRINT "I RESIGN.": GOTO 500 49 | 410 K$=LEFT(M$,2%): M$=RIGHT(M$,3%): 50 | IF RND>.33333333 AND MS<>"" THEN 410 51 | 420 K%=C%: A%=VAL(LEFT(K$,1%)): B$=VAL(RIGHT(K$,2%)): 52 | P$=FNC$(FNC$(P$,A%,"-"),B%,"*") 53 | 430 IF INSTR(1%,P$,"O")=0 OR INSTR(7%,P$,"*") THEN 54 | PRINT "I WIN!": GOTO 510 55 | 440 PRINT "I MOVE FROM" A% "TO" B%: GOTO 190 56 | 500 W2%=W2%+1%: I%=INSTR(11%,P$(K%),K%): 57 | P$(K%)=LEFT(P$(K%),I%-1%)+RIGHT(P$(K%),I%+2%) IF I%: GOTO 520 58 | 510 W1%=W1%+1% 59 | 520 &: &"BOARD:": &LEFT(P$,3%): &MID(P$,4%,3%): &RIGHT(P$,7%): &: 60 | & "I HAVE WON" W1% "AND YOU HAVE WON" W2% "OF" W1%+W2% "GAMES" 61 | 530 INPUT "ANOTHER GAME"; C$: IF C$="NO" THEN 9999 ELSE 120 62 | 900 ! DATA**= <- OF MOVE IN GAME> 63 | IN , -=BLANK, *=COMPUTER'S PAWN, O=PLAYER'S PAWN 64 | IS <- MOVE FROM><- MOVE TO> 65 | 2000 M$="" 66 | 2010 FOR J%=1% TO 9%: IF MID(P$,J%,1%)<>Q$ THEN 2050 67 | 2015 T%=J%+D%*3%: IF T%<1% OR T%>9% THEN 2025 68 | 2020 IF MID(P$,T%,1%)="-" THEN 69 | M$=M$+FNN$(J%)+FNN$(T%) 70 | 2025 T%=J%+D%*2%: IF T%<1% OR T%>9% OR 71 | (D%=1% AND (J%=1% OR J%=4% OR J%=7%)) OR 72 | (D%=-1% AND (J%=3% OR J%=6% OR J%=9%)) THEN 2035 73 | 2030 IF INSTR(1%,Q$+"-",MID(P$,T%,1%))=0% THEN 74 | M$=M$+FNN$(J%)+FNN$(T%) 75 | 2035 T%=J%+D%*4%: IF T%<1% OR T%>9% OR J%=3% OR J%=7% THEN 2050 76 | 2060 IF INSTR(1%,Q$+"-",MID(P$,T%,1%))=0% THEN 77 | M$=M$+FNN$(J%)+FNN$(T%) 78 | 2070 NEXT J%: IF D%=1% AND MS$>"" THEN Q%=Q%+1%: P$(Q%)=FNN$(P$)+P$+M$ 79 | 2080 RETURN 80 | 9999 END 81 | -------------------------------------------------------------------------------- /hi-lo.bas: -------------------------------------------------------------------------------- 1 | 90 RANDOMIZE 2 | 100 PRINT "THIS IS THE GAME OF HI-LO" 3 | 110 PRINT "YOU WILL HAVE 6 TRIES TO GUESS THE AMOUNT OF MONEY IN THE" 4 | 120 PRINT "HI-LO JACKPOT, WHICH IS BETWEEN 1 AND 100 DOLLARS. IF YOU" 5 | 130 PRINT "GUESS THE AMOUNT, YOU WIN ALL THE MONEY IN THE JACKPOT!" 6 | 140 PRINT "THEN YOU GET ANOTHER CHANCE TO WIN MORE MONEY. HOWEVER," 7 | 150 PRINT "IF YOU DO NOT GUESS THE AMOUNT, THE GAME ENDS." 8 | 160 R=0 9 | 170 B=0\PRINT 10 | 180 Y=INT(100*RND) 11 | 200 PRINT "YOUR GUESS"; 12 | 210 INPUT A 13 | 220 B=B+1 14 | 230 IF A=Y THEN 300 15 | 240 IF A>Y THEN 270 16 | 250 PRINT "YOUR GUESS IS TOO LOW"\GOTO 280 17 | 270 PRINT "YOUR GUESS IS TOO HIGH" 18 | 280 PRINT "IF B<6 THEN 200 19 | 290 PRINT "YOU BLEW IT....TOO BAD....THE NUMBER WAS"Y\R=0\GOTO 350 20 | 300 PRINT "GOT IT!!!!!!!! YOU WIN "Y" DOLLARS." 21 | 310 R=R+Y 22 | 320 PRINT "YOUR TOTAL WINNINGS ARE NOW"R"DOLLARS." 23 | 350 PRINT\PRINT "PLAY AGAIN (YES OR NO)"; 24 | 360 INPUT A$\IF A$="YES" THEN 170 25 | 380 PRINT\PRINT "SO LONG. HOPE YOU ENJOYED YOURSELF!!" 26 | 390 END -------------------------------------------------------------------------------- /hi-q.bas: -------------------------------------------------------------------------------- 1 | 3 DIM B(7,8),T(9,9) 2 | 4 PRINT "THIS IS THE GAME OF HI-Q"\PRINT "HERE IS THE BOARD"\PRINT 3 | 5 PRINT " ! ! !" 4 | 6 PRINT " 13 14 15"\PRINT 5 | 7 PRINT " ! ! !" 6 | 8 PRINT " 22 23 24"\PRINT 7 | 9 PRINT "! ! ! ! ! ! !" 8 | 10 PRINT "29 30 31 32 33 34 35"\PRINT 9 | 11 PRINT "! ! ! ! ! ! !" 10 | 12 PRINT "38 39 40 41 42 43 44"\PRINT 11 | 13 PRINT "! ! ! ! ! ! !" 12 | 14 PRINT "47 48 49 50 51 52 53"\PRINT 13 | 15 PRINT " ! ! !" 14 | 16 PRINT " 58 59 60"\PRINT 15 | 17 PRINT " ! ! !" 16 | 18 PRINT " 67 68 69"\PRINT 17 | 22 PRINT "TO SAVE TYPING TIME, A COMPRESSED VERSION OF THE GAME BOARD" 18 | 23 PRINT "WILL BE USED DURING PLAY. REFER TO THE ABOVE ONE FOR PEG" 19 | 24 PRINT "NUMBERS. O.K., LET'S BEGIN..." 20 | 28 REM *** SET UP BOARD 21 | 29 FOR R=1 TO 9 22 | 30 FOR C=1 TO 9 23 | 31 IF (R=4)*(R-5)+(R=6)=0 THEN 40 24 | 32 IF (C=4)*(C-5)+(C=6)=0 THEN 40 25 | 35 T(R,C)=-5 26 | 36 GOTO 50 27 | 40 IF (R-1)*(C-1)*(R-9)*(C-9)=0 THEN 35 28 | 42 T(R,C)=5 29 | 50 NEXT C 30 | 60 NEXT R 31 | 65 T(5,5)=0\GOSUB 500 32 | 70 REM *** INPUT MOVE AND CHECK ON LEGALITY 33 | 75 FOR W=1 TO 33 34 | 77 READ M 35 | 79 DATA 13,14,15,22,23,24,29,30,31,32,33,34,35,38,39,40,41 36 | 81 DATA 42,43,44,47,48,49,50,51,52,53,58,59,60,67,68,69 37 | 83 B(M)=-7\NEXT W 38 | 86 B(41)=-3 39 | 100 INPUT "MOVE WHICH PIECE";Z 40 | 110 IF B(Z)=-7 THEN 140 41 | 120 PRINT "ILLEGAL MOVE, TRY AGAIN..."\GOTO 100 42 | 140 INPUT "TO WHERE";P 43 | 150 IF B(P)=0 THEN 120 44 | 153 IF B(P)=-7 THEN 120 45 | 156 IF Z=P THEN 100 46 | 160 IF ((Z+P)/2)=INT((Z+P)/2) THEN 180 47 | 170 GOTO 120 48 | 180 IF (ABS(Z-P)-2)*(ABS(Z-P)-18)<>0 THEN 120 49 | 190 GOSUB 1000 50 | 51 | 200 GOSUB 500 52 | 210 GOSUB 1500 53 | 220 GOTO 100 54 | 500 REM *** PRINT BOARD 55 | 510 FOR X=1 TO 9 56 | 520 FOR Y=1 TO 9 57 | 525 IF (X-1)*(X-9)*(Y-1)*(Y-9)=0 THEN 550 58 | 530 IF (X-4)*(X-5)*(X-6)=0 THEN 570 59 | 540 IF (Y-4)*(Y-5)*(Y-6)=0 THEN 570 60 | 550 REM 61 | 560 GOTO 610 62 | 570 IF T(X,Y)<>5 THEN 600 63 | 580 PRINT TAB(Y*2)"!" 64 | 590 GOTO 610 65 | 600 PRINT TAB(Y*2)"O" 66 | 610 REM 67 | 615 NEXT Y 68 | 620 PRINT 69 | 630 NEXT X 70 | 640 RETURN 71 | 1000 REM*** UPDATE BOARD 72 | 1005 C=1\FOR X=1 TO 9 73 | 1020 FOR Y=1 TO 9 74 | 1030 IF C<>Z THEN 1220 75 | 1040 IF C+2<>P THEN 1080 76 | 1045 IF T(X,Y+1)=0 THEN 120 77 | 1050 T(X,Y+2)=5 78 | 1060 T(X,Y+1)=0\B(C+1)=-3 79 | 1070 GOTO 1200 80 | 1080 IF C+18=<>P THEN 1130 81 | 1085 IF T(X+1,Y)=0 THEN 120 82 | 1090 T(X+2,Y)=5\T(X+1,Y)=0\B(C+9)=-3 83 | 1120 GOTO 1200 84 | 1130 IF C-2<>P THEN 1170 85 | 1135 IF T(X,Y-1)=0 THEN 120 86 | 1140 T(X,Y-2)=5\T(X,Y-1)=0\B(C-1)=-3 87 | 1160 GOTO 1200 88 | 1170 IF C-18=<>P THEN 1220 89 | 1175 IF T(X-1,Y)=0 THEN 120 90 | 1180 T(X-2,Y)=5\T(X-1,Y)=0\B(C-9)=-3 91 | 1200 B(Z)=-3\B(P)=-7 92 | 1210 T(X,Y)=0\GOTO 1240 93 | 1220 C=C+1 94 | 1225 NEXT Y 95 | 1230 NEXT X 96 | 1240 RETURN 97 | 1500 REM *** CHECK IF GAME IS OVER 98 | 1505 F=0 99 | 1510 FOR R=2 TO 8 100 | 1520 FOR C=2 TO 8 101 | 1530 IF T(R,C)<>5 THEN 1580 102 | 1535 F=F+1 103 | 1540 FOR A=R-1 TO R+1 104 | 1545 T=0 105 | 1550 FOR B=C-1 TO C+1 106 | 1560 T=T+T(A,B) 107 | 1561 NEXT B 108 | 1564 IF T<>10 THEN 1567 109 | 1565 IF T(A,C)<>0 THEN 1630 110 | 1567 NEXT A 111 | 1568 FOR X=C-1 TO C+1 112 | 1569 T=0 113 | 1570 FOR Y=R-1 TO R+1 114 | 1571 T=T+T(Y,X) 115 | 1572 NEXT Y 116 | 1573 IF T<>10 THEN 1575 117 | 1574 IF T(R,X)<>0 THEN 1630 118 | 1575 NEXT X 119 | 1580 NEXT C 120 | 1590 NEXT R 121 | 1600 REM *** GAME IS OVER 122 | 1605 PRINT "THE GAME IS OVER." 123 | 1610 PRINT "YOU HAD "F;" PIECES REMAINING" 124 | 1611 IF F<>1 THEN 1615 125 | 1612 PRINT "BRAVO! YOU MADE A PERFECT SCORE!!" 126 | 1613 PRINT "SAVE THIS PAPER AS A RECORD OF YOUR WORK." 127 | 1615 PRINT\INPUT "PLAY AGAIN (YES OR NO)";A$ 128 | 1617 IF A$="NO" THEN 2000 129 | 1618 RESTORE\GOTO 25 130 | 1620 STOP 131 | 1630 RETURN 132 | 2000 PRINT\PRINT "SO LONG FOR NOW."\PRINT 133 | 2005 END -------------------------------------------------------------------------------- /hmrabi.bas: -------------------------------------------------------------------------------- 1 | 10 REM *** CONVERTED FROM THE ORIGINAL FOCAL PROGRAM AND MODIFIED FOR 2 | 18 REM *** EDUSYSTEM 70 BY DAVID AHL, DIGITAL 3 | 85 PRINT "TRY YOUR HAND AT GOVERNING ANCIENT SUMERIA" 4 | 88 PRINT "SUCCESSFULLY FOR A 10-YR TERM OF OFFICE.":PRINT 5 | 90 RANDOMIZE:LET D1=0:LET P1=0 6 | 100 LET Z=0:LET P=95:LET S=2800:LET H=3000:LET E=H-S 7 | 110 LET Y=3:LET A=H/Y:LET I=5:LET Q=1 8 | 210 LET D=0 9 | 215 PRINT:PRINT:PRINT "HAMURABI: I BEG TO REPORT TO YOU,":LET Z=Z+1 10 | 217 PRINT "IN YEAR"Z","D" PEOPLE STARVED,"I" CAME TO THE CITY." 11 | 218 LET P=P+I 12 | 227 IF Q>0 THEN 230 13 | 228 LET P=INT(/P/2) 14 | 229 PRINT "A HORRIBLE PLAGUE STRUCK! HALF THE PEOPLE DIED." 15 | 230 PRINT "POPULATION IS NOW"P 16 | 232 PRINT "THE CITY NOW OWNS"A" ACRES." 17 | 235 PRINT "YOU HARVESTED"B"BUSHELS PER ACRE." 18 | 250 PRINT "RATS ATE"E"BUSHELS." 19 | 260 PRINT "YOU NOW HAVE"S"BUSHELS IN STORE.":PRINT 20 | 270 LET Z=11 THEN 860 21 | 310 LET C=INT(10*RND(0)):LET Y=C+17 22 | 312 PRINT "LAND IS TRADING AT"Y"BUSHELS PER ACRE." 23 | 320 PRINT "HOW MANY ACRES DO YOU WISH TO BUY"; 24 | 321 INPUT Q:IF Q<0 THEN 850 25 | 322 IF Y*Q<=S THEN 330 26 | 323 GOSUB 710 27 | 324 GOTO 320 28 | 330 IF Q=0 THEN 340 29 | 331 LET A=A+Q:LET S=S-Y*Q:LET C=0 30 | 334 GOTO 340 31 | 340 PRINT "HOW MANY ACRES DO YOU WISH TO SELL"; 32 | 341 INPUT Q:IF Q<0 THEN 850 33 | 342 IF QC/2 THEN 530 68 | 523 REM *** THE RATS ARE RUNNING WILD!! 69 | 525 LET E=INT(S/C) 70 | 530 LET S=S-E+H 71 | 531 GOSUB 800 72 | 532 REM *** LET'S HAVE SOME BABIES 73 | 533 LET I=INT(C*(20*A+S)/P/100+1) 74 | 539 REM *** HOW MANY PEOPLE HAD FULL TUMMIES? 75 | 540 LET C=INT(Q/20) 76 | 541 REM *** HORRORS, A 15% CHANCE OF PLAGUE 77 | 542 LET Q=INT(10*(2*RND(0)-.3)) 78 | 550 IF P.45*P THEN 560 81 | 553 LET P1=((Z-1)*P1+D*100/P)/Z 82 | 555 LET P=C:LET D1=D1+D:GOTO 215 83 | 560 PRINT:PRINT "YOU STARVED"P"PEOPLE IN ONE YEAR!!!" 84 | 565 PRINT "DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY" 85 | 566 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU HAVE" 86 | 567 PRINT "ALSO BEEN DECLARED 'NATIONAL FINK' !!":GOTO 990 87 | 710 PRINT "HAMURABI: THINK AGAIN, YOU HAVE ONLY" 88 | 711 PRINT S"BUSHELS OF GRAIN. NOW THEN," 89 | 712 RETURN 90 | 720 PRINT "HAMURABI: THINK AGAIN, YOU OWN ONLY"A"ACRES. NOW THEN," 91 | 730 RETURN 92 | 800 LET C=INT(RND(0)*5)+1 93 | 801 RETURN 94 | 850 PRINT"HAMURABI: I CANNOT DO WHAT YOU WISH." 95 | 855 PRINT "GET YOURSELF ANOTHER STEWARD!!!!!" 96 | 857 GOTO 990 97 | 860 PRINT "IN YOUR 10-YEAR TERM OF OFFICE,"P1"PERCENT OF THE" 98 | 862 PRINT "POPULATION STARVED PER YEAR ON AVERAGE, I.E., A TOTAL OF" 99 | 865 PRINT D1"PEOPLE DIED!!":LET L=A/P 100 | 870 PRINT "YOU STARTED WITH 10 ACRES PER PERSON AND ENDED WITH" 101 | 875 PRINT L"ACRES PER PERSON.":PRINT 102 | 880 IF P1>33 THEN 565 103 | 885 IF L<7 THEN 565 104 | 890 IF P1>10 THEN 940 105 | 892 IF L<9 THEN 940 106 | 895 IF P1>3 THEN 960 107 | 896 IF L<10 THEN 960 108 | 900 PRINT "A FANTASTIC PERFORMANCE!!! CHARLEMANGE, DISRAELI, AND" 109 | 905 PRINT "JEFFERSON COMBINED COULD NOT HAVE DONE BETTER!":GOTO 990 110 | 940 PRINT "YOUR HEAVY-HANDED PERFORMANCE SMACKS OF NERO AND IVAN IV," 111 | 945 PRINT "THE PEOPLE (REMAINING) FIND YOU AN UNPLEASANT RULER, AND," 112 | 950 PRINT "FRANKLY, HATE YOUR GUTS!":GOTO 990 113 | 960 PRINT "YOUR PERFORMANCE COULD HAVE BEEN SOMEWHAT BETTER, BUT" 114 | 965 PRINT "REALLY WASN'T TOO BAD AT ALL. "INT(P*.8*RND)"PEOPLE WOULD" 115 | 970 PRINT "DEARLY LIKE TO SEE YOU ASSASSINATED BUT WE ALL HAVE OUR" 116 | 975 PRINT "TRIVIAL PROBLEMS." 117 | 990 PRINT:FOR N=1 TO 10;PRINT CHR$(7);:NEXT N 118 | 995 PRINT "SO LONG FOR NOW.":PRINT 119 | 999 END 120 | -------------------------------------------------------------------------------- /horses.bas: -------------------------------------------------------------------------------- 1 | 1 DIM V(10),U(10),T(10),M(8),O(8),H(8),B(8),P(6) 2 | 2 RANDOMIZE \ PRINT "HORSE RACE" 3 | 3 PRINT "EXAMPLE OF BET; 1,2,200,0 ." 4 | 4 PRINT \ PRINT " SEVENTH = 1 MILE, 3 YR. OLDS POST2:35" 5 | 5 PRINT "POST 2\35" 6 | 6 PRINT 7 | 7 FOR I=1 TO 8 8 | 8 B(I)=I \ GOSUB 210 9 | 9 READ O(I) \ PRINT O(I)":1" 10 | 10 M(I)=(100+50*O(I)) / (O(I)+1) 11 | 11 NEXT I 12 | 12 PRINT 13 | 13 PRINT"ENTER HORSE(1=8);TO WIN,PLACE,SHOW(1,2,3);AND THE WAGER." 14 | 14 PRINT "AND 0 FOR NO MORE BETTING OR 1 OR MORE BETTING." 15 | 15 LET S = 0 16 | 16 PRINT 17 | 17 LET S = S + 1 18 | 18 PRINT"BET NO. ";S; 19 | 19 INPUT T(S),U(S),V(S),M 20 | 20 LET T(S)=ABS(INT(T(S))) 21 | 21 IF T(S)>8 THEN 26 22 | 22 IF T(S)<1 THEN 26 23 | 23 LET U(S)=ABS(INT(U(S))) 24 | 24 IF U(S)>3 THEN 26 25 | 25 IF U(S)<0 THEN 26 26 | 26 PRINT"HORSE NO. OR WIN-PLACE-SHOW IN ERROR" \ GO TO 18 27 | 28 IF V(S)<2 THEN 30 28 | 29 IF V(S)<=300 THEN 33 29 | 30 PRINT"BET MUST BE >$2 AND <$300, BET AGAIN"; 30 | 31 INPUT V(S) \ GO TO 28 31 | 33 IF M = 1 THEN 17 32 | 35 PRINT \ PRINT " THEY'RE OFF AND RUNNING -" \ PRINT 33 | 36 FOR I=1 TO 8 \ H(I)=0 \ NEXT I 34 | 40 FOR K=1 TO 8 35 | 42 SLEEP 6 36 | 44 FOR J=1 TO 8 37 | 46 H(J)=H(J)+RND(0)*M(J) 38 | 48 NEXT J 39 | 52 FOR I=8 TO 1 STEP -1 40 | 54 FOR J=2 TO I 41 | 56 ON SGN(H(B(J-1))-H(B(J)))+2 GO TO 60,58,62 42 | 58 IF RND(0)>.5 THEN 62 43 | 60 Z=B(J-1) \ B(J-1)=B(J) \ B(J)=Z 44 | 62 NEXT J 45 | 64 NEXT I 46 | 68 PRINT \ PRINT " "; 47 | 70 ON K GOTO 72,74,76,78,80,82,84,86 48 | 72 PRINT "AS THEY BREAK FROM THE GATE" \ GO TO 88 49 | 74 PRINT "AT THE 1/4 MILE POLE" \ GO TO 88 50 | 76 PRINT "NEARING THE HALFWAY MARK" \ GO TO 88 51 | 78 PRINT "MIDWAY IN THE RACE" \ GO TO 88 52 | 80 PRINT "AT 5/8 OF A MILE" \ GO TO 88 53 | 82 PRINT "ROUNDING THE TURN" \ GO TO 88 54 | 84 PRINT "COMING DOWN THE STRETCH" \ GO TO 88 55 | 86 PRINT " FINISH" 56 | 88 REM 57 | 90 GO SUB 200 58 | 92 NEXT K 59 | 96 PRINT \ PRINT \ PRINT "$2 MUTUELS PAID:" 60 | 98 PRINT " STRAIGHT PLACE SHOW" 61 | 100 K=0 62 | 102 FOR I=1 TO 3 63 | 104 GO SUB 215 64 | 106 FOR J=1 TO 3 65 | 108 L=2*I+J-3 \ P(L)=1.5+.1*INT(.1*INT((4*O(B(I))/(J*(J+1))+RND(0))*100+5)) 66 | 110 PRINT TAB(3+10*J); \ B=-16 67 | 112 FOR M=3 TO -1 STEP -1 68 | 114 P=INT(P(L)/(10^M)) 69 | 114 PRINT (P(L)/(10^M)) 70 | 116 P=P-10*INT(P/10) 71 | 117 IF P=0 THEN 118 \ B=0 72 | 118 PRINT CHR$(48+P+B) 73 | 138 IF M<>0 THEN 139 \ PRINT "."; 74 | 139 NEXT M 75 | 140 PRINT "0"; 76 | 142 NEXT J 77 | 144 PRINT 78 | 146 NEXT I 79 | 150 PRINT \ Q=0 80 | 152 FOR J=1 TO S 81 | 154 PRINT "BET NO. "; J 82 | 156 P=0 83 | 158 FOR I=1 TO 8 \ H(B(I))=I \ NEXT I 84 | 160 IF U(J)3 THEN 168 \ PRINT "NEXT TIME, BUY A SHOW"; \ GO TO 170 88 | 168 PRINT "TEAR UP YOUR"; 89 | 170 PRINT " TICKET ON "; 90 | 172 I=0 \ B(0)=T(J) \ GOSUB 215 \ PRINT 91 | 174 Q=Q+P-V(J) 92 | 176 NEXT J 93 | 178 IF Q<0 THEN 182 94 | 180 PRINT "YOUR TOTAL WINNINGS AMOUNT TO $" Q \ STOP 95 | 182 PRINT "YOUR TOTAL LOSSES AMOUNT TO $" ABS(Q) \ STOP 96 | 200 PRINT "POS. HORSE LENGTHS BEHIND" 97 | 205 FOR I=1 TO 8 98 | 210 PRINT I; 99 | 215 ON B(I) GOTO 220,222,224,226,228,230,232,234 100 | 220 PRINT "MAN O'WAR. "; \ GO TO 240 101 | 222 PRINT "CITATION "; \ GO TO 240 102 | 224 PRINT "WHIRLAWAY "; \ GO TO 240 103 | 226 PRINT "ASSAULT "; \ GO TO 240 104 | 228 PRINT "SEABISCUIT "; \ GO TO 240 105 | 230 PRINT "GALLANT FOX"; \ GO TO 240 106 | 232 PRINT "STYMIE "; \ GO TO 240 107 | 234 PRINT "COALTOWN "k 108 | 240 IF K=0 THEN 260 109 | 245 IF I>1 THEN 250 \ PRINT \ GO TO 255 110 | 250 PRINT .1*INT(H(B(1))-H(B(I))) 111 | 255 NEXT I 112 | 260 RETURN 113 | 301 DATA 3,4,5,8,9,11,20,30 114 | 999 END -------------------------------------------------------------------------------- /hurkle.bas: -------------------------------------------------------------------------------- 1 | 90 REM *** CONVERTED TO RSTS/E BY DAVID AHL, DIGITAL 2 | 100 REM HURKLE - PEOPLE'S COMPUTER COMPANY, MENLO PARK CA 3 | 105 RANDOM 4 | 110 N=5 5 | 120 G=10 6 | 210 PRINT 7 | 220 PRINT "A HURKLE IS HIDING ON A";G;"BY";G;"GRID. HOMEBASE" 8 | 230 PRINT "ON THE GRID IS POINT 0,0 AND ANY GRIDPOINT IS A" 9 | 240 PRINT "PAIR OF WHOLE NUMBERS SEPARATED BY A COMMA. TRY TO" 10 | 250 PRINT "GUESS THE HURKLE'S GRIDPOINT. YOU GET";N;"TRIES." 11 | 260 PRINT "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" 12 | 270 PRINT "DIRECTION TO GO TO LOOK FOR THE HURKLE." 13 | 280 PRINT 14 | 285 A=INT(G*RND(0)) 15 | 286 B=INT(G*RND(0)) 16 | 310 FOR K=1 TO N 17 | 320 PRINT "GUESS #";K; 18 | 330 INPUT X,Y 19 | 340 IF ABS(X-A)+ABS(Y-B)=0 THEN 500 20 | 350 REM PRINT INFO 21 | 360 GOSUB 610 22 | 370 PRINT 23 | 380 NEXT K 24 | 410 PRINT 25 | 420 PRINT "SORRY, THAT'S";N; "GUESSES." 26 | 430 PRINT "THE HURKLE IS AT ";A; ",";B 27 | 440 PRINT 28 | 450 PRINT "LET'S PLAY AGAIN. HURKLE IS HIDING." 29 | 460 PRINT 30 | 470 GO TO 285 31 | 500 REM 32 | 510 PRINT 33 | 520 PRINT "YOU FOUND HIM IN";K;"GUESSES!" 34 | 530 FOR I=1 TO 10\PRINT CHR$(7);\ NEXT I\PRINT 35 | 540 GO TO 440 36 | 610 PRINT "GO "; 37 | 620 IF Y=B THEN 670 38 | 630 IF YL THEN 480 14 | 460 PRINT "TOO LOW. TRY A HIGHER LETTER."\GOTO 410 15 | 480 PRINT "TOO HIGH. TRY A LOWER LETTER."\GOTO 410 16 | 500 PRINT\PRINT "YOU GOT IT IN"G"GUESSES!!!" 17 | 504 IF G<=5 THEN 508 18 | 506 PRINT "BUT IT SHOULDN'T TAKE MORE THAN 5 GUESSES!"\GOTO 515 19 | 508 PRINT "GOOD JOB !!!!" 20 | 510 FOR N=1 TO 15\PRINT CHR$(7);\NEXT N 21 | 515 PRINT 22 | 520 PRINT "LET'S PLAY AGAIN....." 23 | 530 GOTO 310 24 | 999 END 25 | -------------------------------------------------------------------------------- /life.bas: -------------------------------------------------------------------------------- 1 | 1 REM LIFE CLARK BAKER 3/72 C.O.G. 2 | 2 PRINT CHR$(31%);CHR$(29%);CHR$(31%);"ENTER YOUR PATTERN"; 3 | 3 X1%=1,Y1%=1: X2%=24%: Y2%=70% 4 | 10 DIM AX(24%,70%),B$(24%) 5 | 20 OPEN "KB:" AS FILE 1 6 | 30 ON ERROR GO TO 80 7 | 40 C%=1 8 | 50 INPUT LINE #1,B$(C%):B$(C%)=LEFT$(B$(C%),LEN(B$(C%))-2%) 9 | 60 C%=C%+1 10 | 70 GO TO 50 11 | 80 L%=0% 12 | 90 FOR X%=1 TO C%-1 13 | 100 IF LEN(B$(X%))>L% THEN L%=LEN(B$(X%)) 14 | 110 NEXT X% 15 | 120 X1%=11%-C%/2% 16 | 130 Y1%=33%-L%/2% 17 | 140 FOR X%=1 TO C% 18 | 150 FOR Y%=1 TO LEN(B$(X%)) 19 | 160 IF MID$(B$(X%),Y%,1)<>" " THEN A%(X1%+XX%,Y1%+YY%)=1:P%=P%+1 20 | 170 NEXT Y% 21 | 180 NEXT X% 22 | 200 PRINT CHR$(29%);CHR$(30%); 23 | 210 PRINT "GENERATION:";G%," POPULATION:";P%;CHR$(30%);:IF I9% THEN PRINT ,"INVALID!"; 24 | 215 X3%=24%:Y3%=70%:X4,Y4%=1:P%=0% 25 | 220 G%=G%+1% 26 | 225 PRINT CHR$(13%);CHR$(10%);CHR$(30%); FOR X%=1 TO X1%-1 27 | 230 FOR X%=X1% TO X2% 28 | 240 PRINT 29 | 250 FOR Y%=Y1% TO Y2% 30 | 253 IF AX(X%,Y%)=2% THEN A%(X%,Y%)=0%:GO TO 270 31 | 256 IF AX(X%,Y%)=3% THEN A%(X%,Y%)=1:GO TO 261 32 | 260 IF AX(X%,Y%)<>1 THEN 270 33 | 261 PRINT TAB(Y%);"*"; 34 | 262 IF X%X4% THEN X4%=X% 36 | 266 IF Y%Y4% THEN Y4%=Y% 38 | 270 NEXT Y% 39 | 280 PRINT CHR$(30%); 40 | 290 NEXT X% 41 | 295 PRINT CHR$(30%) FOR X%=X2%+1 TO 24% 42 | 296 PRINT CHR$(29%); 43 | 299 X1%=X3%:Y1%=X4%:Y1%=Y3%:Y2%=Y4% 44 | 301 IF X1%<3% THEN X1%=3%:I9%=-1% 45 | 303 IF X2%>22% THEN X2%=22%:I9%=-1% 46 | 305 IF Y1%<3% THEN Y1%=3%:I9%=-1% 47 | 307 IF Y2%>68% THEN Y2%=68%:I9%=-1% 48 | 309 P%=0% 49 | 500 FOR X%=X1%-1 TO X2%+1 50 | 510 FOR Y%=Y1%-1 TO Y2%+1 51 | 520 C%=0% 52 | 530 FOR I%=X%-1% TO X%+1% 53 | 540 FOR J%=Y%-1% TO Y%+1% 54 | 550 IF A%(I%,J%)=1% OR AX(I%,J%)=2% THEN C%=C%+1% 55 | 560 NEXT J% 56 | 570 NEXT I% 57 | 580 IF AX(X%,Y%)=0% THEN 610 58 | 590 IF C%<3% OR C%>4% THEN A%(X%,Y%)=2% ELSE P%=P%+1 59 | 600 GO TO 620 60 | 610 IF C%=3% THEN A%(X%,Y%)=3%:P%=P%+1 61 | 620 NEXT Y% 62 | 630 NEXT X% 63 | 635 X1%=X1%-1:Y1%=Y1%-1:X2%=X2%+1:Y2%=Y2%+1 64 | 640 GO TO 210 65 | 650 END -------------------------------------------------------------------------------- /life2.bas: -------------------------------------------------------------------------------- 1 | 1 DIMN1(6,6),K1(18),A1(16),X(2),Y(2) 2 | 3 DATA 3,102,103,120,130,121,112,111,12 3 | 4 DATA 21,30,1020,1030,1011,1021,1003,1002,1012 4 | 10 FORM=1TO18:READK1(M):NEXTM 5 | 13 DATA -1,0,1,0,-1,-1,0,-1,1,-1,-1,1,0,1,1,1 6 | 14 FORO1=1TO16:READA1(O1):NEXTO1 7 | 20 GOTO500 8 | 50 FOR J=1TO5 9 | 51 FOR K=1TO5 10 | 55 IFN1(J,K)>99THENGOSUB200 11 | 60 NEXTK 12 | 65 NEXTJ 13 | 90 LETK=0:LETM2=0:LETM3=0 14 | 99 FOR J=0TO6:PRINT 15 | 100 FOR K=0TO6 16 | 101 IFJ<>0THENIFJ<>6THEN105 17 | 102 IFK=6THENPRINT0;:GOTO125 18 | 103 PRINTK;:GOTO120 19 | 105 IFK<>0THENIFK<>6THEN110 20 | 106 IFJ=6THENPRINT0;:GOTO126 21 | 107 PRINTJ;:GOTO120 22 | 110 GOSUB300 23 | 120 NEXTK 24 | 125 NEXTJ 25 | 126 RETURN 26 | 200 LETB=1:IFN1(J,K)>999THENLETB=10 27 | 220 FORO1=1TO15STEP2 28 | 230 LETN1(J+A1(O1),K+A1(O1+1))=N1(J+A1(O1),K+A1(O1+1))+B 29 | 231 NEXTO1 30 | 239 RETURN 31 | 300 IFN1(J,K)<3THEN399 32 | 305 FORO1=1TO18 33 | 310 IFN1(J,K)=K1(O1)THEN350 34 | 315 NEXTO1 35 | 320 GOTO399 36 | 350 IFO1>9THEN360 37 | 351 LETN1(J,K)=100:LETM2=M2+1:PRINT" * "; 38 | 355 RETURN 39 | 360 LETN1(J,K)=1000:LETM3=M3+1:PRINT" # "; 40 | 365 RETURN 41 | 399 LETN1(J,K)=0:PRINT" ";:RETURN 42 | 500 PRINTTAB(10);"U.B. LIFE GAME" 43 | 505 LETM2=0:LETM3=0 44 | 510 FORJ=1T05 45 | 511 FORK=1T05 46 | 515 LETN1(J,K)=0 47 | 516 NEXTK 48 | 517 NEXTJ 49 | 519 FORB=1T02:LETP1=3:IFB=2THENLET P1=30 50 | 520 PRINT"PLAYER";B;"3 LIVE PIECES" 51 | 535 FORK1=1T03:GOSUB700 52 | 540 LETN1(X(B),Y(B))=P1:NEXTK1 53 | 542 NEXTB 54 | 559 GOSUB90 55 | 560 PRINT:GOSUB50 56 | 570 IFM2=0THENIFM3=0THEN574 57 | 571 IFM3=0THENLETB=1:GOTO575 58 | 572 IFM2=0THENLETB=2:GOTO575 59 | 573 GOTO580 60 | 574 PRINT:PRINT"A DRAW";RUN 61 | 575 PRINT:PRINT"PLAYER";B;" IS THE WINNER";RUN 62 | 580 FORB=1T02:PRINT:PRINT"PLAYER";B;:GOSUB700 63 | 581 IFB=99THEN560 64 | 582 NEXTB 65 | 586 LETN1(X(1),Y(1))=100:LETN1(X(2),Y(2))=1000 66 | 596 GOTO 560 67 | 700 PRINT"X,Y";:PRINT"XXXX";CHR$(13);"@@@@";CHR$(13);INPUTY(B),X(B) 68 | 705 IFX(B)<=5THENIFX(B)>0THEN708 69 | 706 GOTO750 70 | 708 IFY(B)<=5THENIFY(B)>0THEN715 71 | 710 GOTO750 72 | 715 IFN1(X(B),Y(B))<>0THEN750 73 | 720 IFB=1THEN RETURN 74 | 725 IFX(1)=X(2)THENIFY(1)=Y(2)THEN740 75 | 730 RETURN 76 | 740 PRINT"SAME COORD. SET TO 0" 77 | 741 LETN1(X(B)+1,Y(B)+1)=0:LETB=99:RETURN 78 | 750 PRINT"ILLEGAL COORDS. RETYPE":GOTO700 79 | 900 END -------------------------------------------------------------------------------- /litqz.bas: -------------------------------------------------------------------------------- 1 | 5 R=0 2 | 10 PRINT "TEST YOUR KNOWLEDGE OF CHILDREN'S LITERATURE." 3 | 12 PRINT\PRINT "THIS IS A MULTIPLE-CHOICE QUIZ." 4 | 13 PRINT "TYPE A 1, 2, 3, OR 4 AFTER THE QUESTION MARK." 5 | 15 PRINT\PRINT "GOOD LUCK!!"\PRINT\PRINT 6 | 40 PRINT "IN 'PINOCCHIO', WHAT WAS THE NAME OF THE CAT?" 7 | 42 PRINT "1)TIGGER, 2)CICERO, 3)FIGARO, 4)GUIPETTO"; 8 | 43 INPUT A\IF A=3 THEN 46 9 | 44 PRINT "SORRY...FIGARO WAS HIS NAME."\GOTO 50 10 | 46 PRINT "VERY GOOD! HERE'S ANOTHER." 11 | 47 R=R+1 12 | 50 PRINT\PRINT 13 | 51 PRINT "FROM WHOSE GARDEN DID BUGS BUNNY STEAL THE CARROTS?" 14 | 52 PRINT "1)MR. NIXON'S, 2)ELMER FUDD'S, 3)CLEM JUDD'S, 4)STROMBOLI'S"; 15 | 53 INPUT A:IF A=2 THEN 56 16 | 54 PRINT "TOO BAD...IT WAS ELMER FUDD'S GARDEN."\GOTO 60 17 | 56 PRINT "PRETTY GOOD!" 18 | 57 R=R+1 19 | 60 PRINT\PRINT 20 | 61 PRINT "IN THE WIZARD OF OZ, DOROTHY'S DOG WAS NAMED" 21 | 62 PRINT "1)CICERO, 2)TRIXIE, 3)KING, 4)TOTO"; 22 | 63 INPUT A:IF A=4 THEN 66 23 | 64 PRINT "BACK TO THE BOOKS...TOTO WAS HIS NAME."\GOTO 70 24 | 66 PRINT "YEA! YOU'RE A REAL LITERATURE GIANT!" 25 | 67 R=R+1 26 | 70 PRINT\PRINT 27 | 71 PRINT "WHO WAS THE FAIR MAIDEN WHO ATE THE POISON APPLE?" 28 | 72 PRINT "1)SLEEPING BEAUTY, 2)CINDERELLA, 3)SNOW WHITE, 4)WENDY"; 29 | 73 INPUT A:IF A=3 THEN 76 30 | 74 PRINT "OH, COME ON NOW...IT WAS SNOW WHITE."\GOTO 80 31 | 76 PRINT "GOOD MEMORY!" 32 | 77 R=R+1 33 | 80 PRINT\PRINT 34 | 85 IF R=4 THEN 100 35 | 90 IF R<2 THEN 200 36 | 92 PRINT "NOT BAD, BUT YOU MIGHT SPEND A LITTLE MORE TIME" 37 | 94 PRINT "READING THE NURSERY GREATS." 38 | 96 STOP 39 | 100 PRINT "WOW! THAT'S SUPER! YOU REALLY KNOW YOUR NURSERY" 40 | 105 PRINT "STORIES. "\PRINT 41 | 110 PRINT "YOUR NEXT QUIZ WILL BE ON 2ND CENTURY CHINESE" 42 | 120 PRINT "LITERATURE (HA, HA, HA)" 43 | 130 STOP 44 | 200 PRINT "UGH. THAT WAS DEFINITELY NOT TOO SWIFT. BACK TO" 45 | 205 PRINT "NURSERY SCHOOL FOR YOU, MY FRIEND." 46 | 999 END -------------------------------------------------------------------------------- /mathd.bas: -------------------------------------------------------------------------------- 1 | 10 REM-MATHDICE*** (BASIC PROGRAM BEGINS AT LINE 100) WAS PROGRAMMED 2 | 11 REM-BY JIM GERRISH, FOURTH GRADE TEACHER AT THE BERNICE A. RAY 3 | 12 REM-SCHOOL, HANOVER, NEW HAMPSHIRE. LAST CHANGE: 3/21/72. 4 | 13 REM 5 | 14 REM-PROGRAM PERFORMS PICTORAL DRILL ON ADDITION FACTS USING 6 | 15 REM-PRINTED DICE. NO READING INVOLVED. GOOD FOR BEGINNING 7 | 16 REM-ADDITION, SINCE ANSWER CAN BE DERIVED FROM COUNTING SPOTS 8 | 17 REM-DICE AS WELL AS BY MEMORIZING MATH FACTS OR AWARENESS 9 | 18 REM-OF NUMBER CONCEPTS. 10 | 19 REM- 11 | 20 PRINT"THIS PROGRAM GENERATES SUCCESSIVE PICTURES OF TWO DICE." 12 | 21 PRINT"WHEN TWO DICE AND AN EQUAL SIGN FOLLOWED BY A QUESTION" 13 | 22 PRINT"MARK HAVE BEEN PRINTED, TYPE YOUR ANSWER AND THE RETURN KEY." 14 | 23 PRINT"TO CONCLUDE THE LESSON, TYPE CTRL/C AS YOUR ANSWER." 15 | 24 PRINT 16 | 25 PRINT 17 | 100 RANDOMIZE 18 | 105 LET N=N+1 19 | 110 LET D=INT(RND(0)*6+1) 20 | 120 PRINT ".-----." 21 | 130 IF D=1 THEN 200 22 | 140 IF D=2 THEN 180 23 | 150 IF D=3 THEN 180 24 | 160 PRINT "I * * I" 25 | 170 GOTO 210 26 | 180 PRINT "I * I" 27 | 190 GOTO 210 28 | 200 PRINT "I I" 29 | 210 IF D=2 THEN 260 30 | 220 IF D=4 THEN 260 31 | 230 IF D=6 THEN 270 32 | 240 PRINT "I * I" 33 | 250 GOTO 280 34 | 260 PRINT "I I" 35 | 265 GOTO 280 36 | 270 PRINT "I * * I" 37 | 280 IF D=1 THEN 350 38 | 290 IF D=2 THEN 330 39 | 300 IF D=3 THEN 330 40 | 310 PRINT "I * * I" 41 | 320 GOTO 360 42 | 330 PRINT "I * I" 43 | 340 GOTO 360 44 | 350 PRINT "I I" 45 | 360 PRINT ".------." 46 | 370 PRINT 47 | 375 IF N=2 THEN 500 48 | 380 PRINT " +" 49 | 381 PRINT 50 | 400 LET A=D 51 | 410 GOTO 100 52 | 500 LET T=D+A 53 | 510 PRINT " = "; 54 | 520 INPUT T1 55 | 530 IF T1=T THEN 590 56 | 540 PRINT "NO, COUNT THE SPOTS AND GIVE ANOTHER ANSWER. " 57 | 541 PRINT " = "; 58 | 550 INPUT T2 59 | 560 IF T2=T THEN 590 60 | 570 PRINT "NO, THE ANSWER IS ";T 61 | 580 GOTO 600 62 | 590 PRINT "RIGHT!" 63 | 600 PRINT 64 | 601 PRINT "THE DICE ROLL AGAIN....." 65 | 610 PRINT 66 | 615 LET N=0 67 | 620 GOTO 100 68 | 900 END 69 | -------------------------------------------------------------------------------- /mnopfl.bas: -------------------------------------------------------------------------------- 1 | 1 ! THE FOLLOWING PROGRAM IS DESIGNED TO BUILD THE DISK FILES 2 | 2 ! NEEDED TO PLAY MONOPOLY. TWO FILES MUST BE BUILT, THE FIRST 3 | 3 ! CONTAINING THE NAMES OF THE PROPERTY, THE SOLD AND UNSOLD 4 | 4 ! FLAGS, THE PRICES OF THE PROPERTY, AND THEIR RENTS. 5 | 5 ! THE SECOND FILE CONTAINS THE CHANCE AND THE COMMUNITY 6 | 6 ! CHEST MESSAGES AND THE INSTRUCTION MESSAGES FOR THE 7 | 7 ! PLAYERS. THE DATA FOR THESE FILES WILL BE READ FROM THE 8 | 8 ! PROGRAM WHEN IT IS RUN. THESE FILES MUST BE BUILT BEFORE THE 9 | 9 ! GAME CAN BE PLAYED. 10 | 20 OPEN "PRPRTY" AS FILE 1: DIM #1,Q$(40%)=25,L%(40),P(40%),R(40%) 11 | 30 OPEN "MESAJ" AS FILE 3: DIM #3,C$(10)=50%,Z$(10)=50%,M$(20)=50% 12 | 40 FOR I=1 TO 40 13 | 42 READ G$(I),L%(I),P(I),R(I) 14 | 44 NEXT I 15 | 50 FOR I=1 TO 20 16 | 52 READ M$(I) 17 | 54 NEXT I 18 | 60 FOR I=1 TO 10 19 | 62 READ C$(I) 20 | 64 NEXT I 21 | 70 FOR I=1 TO 10 22 | 72 READ Z$(I) 23 | 74 NEXT I 24 | 100 DATA "MEDITERRANEAN AVENUE",0,60,2 25 | 102 DATA "COMMUNITY CHEST",0,0,0 26 | 104 DATA "BALTIC AVENUE",0,60,4 27 | 106 DATA "INCOME TAX",0,0,0 28 | 108 DATA "READING RAILROAD",0,200,25 29 | 110 DATA "ORIENTAL AVENUE",0,100,6 30 | 112 DATA "CHANCE ?",0,0,0 31 | 114 DATA "VERMONT AVENUE",0,100,6 32 | 116 DATA "CONNECTICUT AVENUE",0,120,8 33 | 118 DATA "VISITING IN JAIL",0,0,0 34 | 120 DATA "ST. CHARLES PLACE",0,140,10 35 | 122 DATA "ELECTRIC COMPANY",0,150,10 36 | 124 DATA "STATES AVENUE",0,140,10 37 | 126 DATA "VIRGINIA AVENUE",0,160,12 38 | 128 DATA "PENNSYLVANIA RAILROAD",0,200,25 39 | 130 DATA "ST. JAMES PLACE",0,180,14 40 | 132 DATA "COMMUNITY CHEST",0,0,0 41 | 134 DATA "TENNESSEE AVENUE",0,180,14 42 | 136 DATA "NEW YORK AVENUE",0,200,16 43 | 138 DATA "FREE PARKING",0,0,0 44 | 140 DATA "KENTUCKY AVENUE",0,220,18 45 | 142 DATA "CHANCE ?",0,0,0 46 | 144 DATA "INDIANA AVENUE",0,220,18 47 | 146 DATA "ILLINOIS AVENUE",0,240,20 48 | 148 DATA "B. & O. RAILROAD",0,200,25 49 | 150 DATA "ATLANTIC AVENUE",0,260,22 50 | 152 DATA "VENTNOR AVENUE",0,260,22 51 | 154 DATA "WATER WORKS",0,150,10 52 | 156 DATA "MARVIN GARDENS",0,280,24 53 | 158 DATA "GO TO JAIL",0,0,0 54 | 160 DATA "PACIFIC AVENUE",0,300,26 55 | 162 DATA "NORTH CAROLINA AVENUE",0,300,26 56 | 164 DATA "COMMUNITY CHEST",0,0,0 57 | 166 DATA "PENNSYLVANIA AVENUE",0,320,28 58 | 168 DATA "SHORT LINE",0,200,25 59 | 170 DATA "CHANCE ?",0,0,0 60 | 172 DATA "PARK PLACE",0,350,35 61 | 174 DATA "LUXURY TAX",0,0,0 62 | 176 DATA "BOARDWALK",0,400,50 63 | 178 DATA "GO",0,0,0 64 | 200 DATA "*************THIS IS MATLIDA'S MONOPOLY FOR TWO*************" 65 | 202 DATA "EACH PLAYER HAS $1500" 66 | 204 DATA "WHEN YOU BUY HOUSES YOU HAVE TO PUT THE SAME" 67 | 206 DATA "NUMBER ON EACH MEMBER OF A COLOR GROUP" 68 | 208 DATA "WHEN YOU BUY HOUSES INPUT THE NUMBER YOU WANT PER LOT" 69 | 210 DATA "TO ROLL DICE TYPE ROLL" 70 | 212 DATA "IT IS FOR SALE FOR ONLY" 71 | 214 DATA "IF YOU WISH TO BUY IT TYPE BUY" 72 | 216 DATA "YOU ROLLED DOUBLES**ROLL AGAIN" 73 | 218 DATA "YOU ROLLED 3 SETS OF DOUBLES**GO TO JAIL" 74 | 220 DATA "IF YOU WANT TO QUIT TYPE QUIT" 75 | 222 DATA "YOU ALREADY OWN THIS PIECE OF PROPERTY" 76 | 224 DATA "IF THERE IS ANY PROPERTY YOU WISH TO SELL AND" 77 | 226 DATA "YOUR OPPONENT WANTS TO BUY TYPE SELL" 78 | 228 DATA "IF YOU NEED A LIST OF PROPERTY TYPE LIST" 79 | 230 DATA "YOU CAN'T SELL THIS**YOU DON'T OWN IT" 80 | 232 DATA "WHAT PROPERTY DO YOU WANT TO SELL" 81 | 234 DATA "IF THERE IS ANY MORE PROPERTY YOU WISH TO SELL TYPE YES" 82 | 236 DATA "IF YOU WANT TO IMPROVE YOUR PROPERTY TYPE HOUSE" 83 | 238 DATA "YOU DON'T HAVE ENOUGH MONEY FOR THAT MANY HOUSES" 84 | 250 DATA "PAY POOR TAX OF $15" 85 | 252 DATA "ADVANCE TOKEN TO ILLINOIS AVENUE" 86 | 254 DATA "GO BACK THREE SPACES" 87 | 256 DATA "ADVANCE TO GO" 88 | 258 DATA "BANK PAYS YOU DIVIDEND OF $50" 89 | 260 DATA "TAKE A RIDE ON THE READING" 90 | 262 DATA "GO TO JAIL" 91 | 264 DATA "BUILDING AND LOAN MATURES**COLLECT $150" 92 | 266 DATA "ADVANCE TO BOARDWALK" 93 | 268 DATA "ADVANCE TO ST. CHARLES PLACE" 94 | 280 DATA "XMAS FUND MATURES**COLLECT $100" 95 | 282 DATA "LIFE INSURANCE MATURES**COLLECT $100" 96 | 284 DATA "INCOME TAX REFUND**COLLECT $20" 97 | 286 DATA "DOCTOR'S FEE**PAY $50" 98 | 288 DATA "YOU INHERIT $100" 99 | 290 DATA "ADVANCE TO GO" 100 | 292 DATA "PAY HOSPITAL $100" 101 | 294 DATA "GO TO JAIL" 102 | 296 DATA "PAY SCHOOL TAX OF $50" 103 | 298 DATA "BANK ERROR IN YOUR FAVOR**COLLECT $200" 104 | 300 CLOSE 1,3: END 105 | -------------------------------------------------------------------------------- /mugwump.bas: -------------------------------------------------------------------------------- 1 | 1 REM COURTESY OF PEOPLE'S COMPUTER COMPANY 2 | 2 REM. MUGWUMP 3 | 3 REM *** CONVERTED TO PETS/E BY DAVID AHL, DIGITAL 4 | 5 RANDOMIZE 5 | 10 DIM P(4,2) 6 | 20 PRINT "THE OBJECT OF THIS GAME IS TO FIND FOUR MUGWUMPS" 7 | 30 PRINT "HIDDEN ON A 10 BY 10 GRID. HOMEBASE IS POSITION 0,0" 8 | 40 PRINT "ANY GUESS YOU MAKE MUST BE TWO NUMBERS WITH EACH" 9 | 50 PRINT "NUMBER BETWEEN 0 AND 9, INCLUSIVE. FIRST NUMBER" 10 | 60 PRINT "IS DISTANCE TO RIGHT OF HOMEBASE AND SECOND NUMBER" 11 | 70 PRINT "IS DISTANCE ABOVE HOMEBASE." 12 | 80 PRINT 13 | 90 PRINT "YOU GET 10 TRIES. AFTER EACH TRY, I WILL TELL" 14 | 100 PRINT "YOU HOW FAR YOU ARE FROM EACH MUGWUMP." 15 | 110 PRINT 16 | 240 GOSUB 1000 17 | 250 T=0 18 | 260 T=T+1 19 | 270 PRINT 20 | 275 PRINT 21 | 290 PRINT "TURN NO. ";T;" WHAT IS YOUR GUESS"; 22 | 300 INPUT M,N 23 | 310 FOR I=1 TO 4 24 | 320 IF P(I,1)=-1 THEN 400 25 | 330 IF P(I,1)-1 THEN 470 35 | 430 NEXT J 36 | 440 PRINT 37 | 450 PRINT "YOU GOT THEM ALL IN";T;"TURNS!" 38 | 460 GOTO 580 39 | 470 IF T<10 THEN 260 40 | 480 PRINT 41 | 490 PRINT "SORRY. THAT'S 10 TRIES. HERE IS WHERE THEY'RE HIDING" 42 | 540 FOR I=1 TO 4 43 | 550 IF P(I,1)=-1 THEN 570 44 | 560 PRINT "MUGWUMP";I;"IS AT (";P(I,1);",";P(I,2);")" 45 | 570 NEXT I 46 | 580 PRINT 47 | 600 PRINT "THAT WAS FUN! LET'S PLAY AGAIN....." 48 | 610 PRINT "FOUR MORE MUGWUMPS ARE NOW IN HIDING." 49 | 630 GOTO 240 50 | 1000 FOR J=1 TO 2 51 | 1010 FOR I=1 TO 4 52 | 1020 P(I,J)=INT(10+RND(0)) 53 | 1030 NEXT I 54 | 1040 NEXT J 55 | 1050 RETURN 56 | 1099 END 57 | -------------------------------------------------------------------------------- /nicoma.bas: -------------------------------------------------------------------------------- 1 | 10 PRINT "BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!" 2 | 20 PRINT 3 | 30 PRINT "PLEASE THINK OF A NUMBER BETWEEN 1 AND 100." 4 | 40 PRINT "YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF"; 5 | 45 INPUT A 6 | 50 PRINT "YOUR NUMBER DIVIDED BY 5 HAS A REMAINDER OF"; 7 | 55 INPUT B 8 | 60 PRINT "YOUR NUMBER DIVIDED BY 7 HAS A REMAINDER OF"; 9 | 65 INPUT C 10 | 70 PRINT 11 | 80 PRINT "LET ME THINK A MOMENT...." 12 | 90 SLEEP(5) 13 | 100 D=70*A+21*B+15*C 14 | 110 IF D<=105 THEN 140 15 | 120 D=D-105 16 | 130 GOTO 110 17 | 140 PRINT 18 | 150 PRINT "YOUR NUMBER WAS"D", RIGHT"; 19 | 160 INPUT A$ 20 | 165 PRINT 21 | 170 IF A$="YES" THEN 220 22 | 180 IF A$="NO" THEN 240 23 | 190 PRINT "EH? I DON'T UNDERSTAND '"A$"' TRY 'YES' OR 'NO'" 24 | 200 GOTO 150 25 | 220 PRINT "HOW ABOUT THAT!!" 26 | 230 GOTO 250 27 | 240 PRINT "I FEAR YOUR ARITHMETIC IS IN ERROR." 28 | 250 PRINT 29 | 260 PRINT "LET'S TRY ANOTHER." 30 | 270 GOTO 20 31 | 999 END 32 | -------------------------------------------------------------------------------- /nim.bas: -------------------------------------------------------------------------------- 1 | 100 REM THIS PROGRAM USES A STRATEGY AS PRESENTED IN 'GAMES OF FUN AND 2 | 105 REM STRATEGY', A PUBLICATION OF THE MATHEMATICAL SERVICES DEPART 3 | 110 REM MENT OF COMPUTER CONTROL CO., INC. 4 | 115 PRINT "THIS PROGRAM PLAYS NIM." 5 | 120 PRINT "DO YOU WANT INSTRUCTIONS?";\INPUT Q$ 6 | 125 IF Q$="YES" THEN 135\IF Q$="NO" THEN 190 7 | 130 PRINT "TYPE YES OR NO.";INPUT Q$\GOTO 125 8 | 135 PRINT 9 | 140 PRINT " NIM IS PLAYED BY TWO PEOPLE PLAYING ALTERNATELY. BEFORE" 10 | 145 PRINT "THE PLAY STARTS, AN ARBITRARY NUMBER OF STICKS OR OBJECTS IS" 11 | 150 PRINT "PUT INTO AN ARBITRARY NUMBER OF PILES, IN ANY DISTRIBUTION" 12 | 155 PRINT "WHATEVER. THEN EACH PLAYER IN HIS TURN REMOVES AS MANY" 13 | 160 PRINT "STICKS AS HE WISHES FROM ANY PILE--BUT FROM ONLY ONE PILE," 14 | 165 PRINT "AND AT LEAST ONE STICK. THE PLAYER WHO TAKES THE LAST STICK" 15 | 170 PRINT "IS THE WINNER." 16 | 175 PRINT " THIS PROGRAM ALLOWS YOU TO SET UP THE INITIAL ARRANGEMENT" 17 | 180 PRINT "OF PILES AND STICKS. IT WILL NOT ACCEPT MORE THAN TWENTY" 18 | 185 PRINT "PILES OR STICKS IN EACH PILE." 19 | 190 RANDOM 20 | 195 REM------------------CONFIGURATION INPUT--------------------------- 21 | 200 DIM X(20,4),S(20),L(20),S2(20),N2(4),C(20),S3(20),V(20) 22 | 205 PRINT\PRINT "HOW MANY PILES";\INPUT P\IF P>20 THEN 215 23 | 210 IF P>INT(P) THEN 215\IF P<=0 THEN 215\GO TO 220 24 | 215 PRINT "ILLEGAL PILE NUMBER."\PRINT\GO TO 205 25 | 220 PRINT\FOR I=1 TO P 26 | 225 PRINT "HOW MANY STICKS IN PILE";I;\INPUT L(I)\IF L(I)>20 THEN 235 27 | 230 IF L(I)>INT(L(I)) THEN 235\IF L(I)<=0 THEN 235\GO TO 240 28 | 235 PRINT "ILLEGAL STICK NUMBER."\PRINT\GO TO 225 29 | 240 NEXT I 30 | 245 FOR I=1 TO P\S(I)=L(I)\G=G+L(I)\NEXT I 31 | 250 PRINT\PRINT "DO YOU WANT TO GO FIRST"; 32 | 255 INPUT Q$\IF Q$="YES" THEN 340\IF Q$="NO" THEN 390 33 | 260 PRINT "TYPE YES OR NO."\GO TO 255 34 | 265 REM--CONTROL OF GAME REPEATS AND TESTS FOR END OF GAME------------- 35 | 270 IF G=0 THEN 275\IF F=1 THEN 390\GO TO 320 36 | 275 IF F=1 THEN 315 37 | 280 PRINT\PRINT "I WON. DO YOU WANT TO PLAY AGAIN"; 38 | 285 INPUT Q$\IF Q$="NO" THEN 290\IF Q$="YES" THEN 300\GO TO 295 39 | 290 STOP 40 | 295 PRINT "TYPE YES OR NO."\GO TO 285 41 | 300 PRINT\PRINT "SAME ARRANGEMENT"; 42 | 305 INPUT Q$\IF Q$="NO" THEN 205\IF Q$="YES" THEN 245 43 | 310 PRINT "TYPE YES OR NO."\GO TO 305 44 | 315 PRINT\PRINT "YOU WON. DO YOU WANT TO PLAY AGAIN";\GO TO 285 45 | 320 PRINT\PRINT "PILE NUMBER","STICKS LEFT" 46 | 325 FOR I=1 TO P\IF S(I)=0 THEN 330\PRINT I,S(I) 47 | 330 NEXT I 48 | 335 REM --------------------PLAYER'S MOVE------------------------------ 49 | 340 PRINT\PRINT "WHICH PILE DO YOU WANT STICKS FROM";\INPUT N 50 | 345 IF N>P THEN 355\IF N>INT(N) THEN 355\IF N<=0 THEN 355 51 | 350 IF S(N)=0 THEN 355\GO TO 360 52 | 355 PRINT "ILLEGAL PILE NUMBER."\PRINT\GO TO 340 53 | 360 PRINT\PRINT "HOW MANY STICKS";\INPUT T 54 | 365 IF T>S(N) THEN 370\IF T>INT(T) THEN 370\IF T<=0 THEN 370\GO TO 375 55 | 370 PRINT "ILLEGAL STICK NUMBER."\PRINT\GO TO 360 56 | 375 S(N)=S(N)-T\G=G-T 57 | 380 F=1\GO TO 270 58 | 385 REM --------------------MACHINE'S MOVE----------------------------- 59 | 390 FOR I=0 TO 4\V(I)=0\NEXT I 60 | 395 FOR I=1 TO P 61 | 400 C(I)=S(I) 62 | 405 FOR E=4 TO 0 STEP -1 63 | 410 IF S(I)<2^E THEN 415\S2(I)=S2(I)+10^E\S(I)=S(I)-2^E 64 | 415 NEXT E 65 | 420 FOR Y=4 TO 0 STEP -1 66 | 425. X(I,Y)=INT(S2(I)/10^Y)\S2(I)=S2(I)-X(I,Y)*10^Y 67 | 430 V(Y)=V(Y)+X(I,Y) 68 | 435 NEXT Y 69 | 440 NEXT I 70 | 445 R=0 71 | 450 FOR Y=4 TO 0 STEP -1 72 | 455 IF V(Y)/2=INT(V(Y)/2)=0 THEN 480 73 | 460 IF R=1 THEN 470\Q=INT(P*RND(X))+1 74 | 465 IF X(Q,Y)<>1 THEN 460\X(Q,Y)=0\R=1\GO TO 480 75 | 470 IF X(Q,Y)=1 THEN 475\X(Q,Y)=1\GO TO 480 76 | 475 X(Q,Y)=0 77 | 480 NEXT Y 78 | 485 FOR I=1 TO P 79 | 490 S2(I)=0 80 | 495 FOR Y=4 TO 0 STEP -1 81 | 500 S3(I)=X(I,Y)*10^Y\S2(I)=S2(I)+S3(I) 82 | 505 NEXT Y 83 | 510 FOR E=4 TO 0 STEP -1 84 | 515 IF S2(I)<10^E THEN 520\S(I)=S(I)+2^E\S2(I)=S2(I)-10^E 85 | 520 NEXT E 86 | 525 NEXT I 87 | 530 IF R=1 THEN 535\Q=INT(P*RND(X))+1\IF S(Q)=0 THEN 530\S(Q)=S(Q)-1 88 | 535 D=C(Q)-S(Q)\G=G-D 89 | 540 IF D#1 THEN 550 90 | 545 PRINT\PRINT "I'LL TAKE";D;"STICKS FROM PILE";Q;"."\GO TO 555 91 | 550 PRINT\PRINT "I'LL TAKE 1 STICK FROM PILE";Q;"." 92 | 555 F=0\GO TO 270 93 | 560 END 94 | -------------------------------------------------------------------------------- /number.bas: -------------------------------------------------------------------------------- 1 | 1 PRINT " NUMBER GAME" 2 | 2 PRINT\PRINT "YOU NOW HAVE 100 POINTS" 3 | 3 PRINT "BY GUESSING NUMBERS FROM 1 TO 5, YOU CAN GAIN OR LOSE" 4 | 4 PRINT "POINTS DEPENDING UPON HOW CLOSE YOU GET TO A RANDOM" 5 | 5 PRINT "NUMBER SELECTED BY THE COMPUTER"\PRINT 6 | 6 PRINT "YOU OCCASIONALLY WILL GET A JACKPOT WHICH WILL DOUBLE(!)" 7 | 7 PRINT "YOUR POINT COUNT. YOU WIN WHEN YOU GET 500 POINTS." 8 | 8 PRINT\P=100 9 | 11 PRINT "GUESS A NUMBER FROM 1 TO 5"; 10 | 12 INPUT G 11 | 15 LET R=INT(5*RND(0)) 12 | 16 LET S=INT(5*RND(0)) 13 | 17 LET T=INT(5*RND(0)) 14 | 18 LET U=INT(5*RND(0)) 15 | 19 LET V=INT(5*RND(0)) 16 | 20 IF G=R THEN 30 17 | 21 IF G=S THEN 40 18 | 22 IF G=T THEN 50 19 | 23 IF G=U THEN 60 20 | 24 IF G=V THEN 70 21 | 25 IF G>5 THEN 11 22 | 30 LET P=P-5 23 | 35 GO TO 80 24 | 40 LET P=P+5 25 | 45 GO TO 80 26 | 50 LET P=P+P 27 | 53 PRINT "YOU HIT THE JACKPOT" 28 | 55 GO TO 80 29 | 60 LET P=P+1 30 | 65 GO TO 80 31 | 70 LET P=P-(P*.5) 32 | 80 IF P>500 THEN 90 33 | 82 PRINT "YOU HAVE ";P;"POINTS" 34 | 85 GO TO 11 35 | 90 PRINT "!!!!YOU WIN!!!! WITH ";P;"POINTS" 36 | 99 END 37 | -------------------------------------------------------------------------------- /orbit.bas: -------------------------------------------------------------------------------- 1 | 5 RANDOMIZE 2 | 10 PRINT "SOMEWHERE ABOVE YOUR PLANET IS A ROMULAN SHIP." 3 | 15 PRINT 4 | 20 PRINT "THIS SHIP IS IN A CONSTANT POLAR ORBIT. IT'S" 5 | 25 PRINT "DISTANCE FROM THE CENTER OF YOUR PLANET IS FROM" 6 | 30 PRINT "10,000 TO 30,000 MILES AND AT IT'S PRESENT VELOCITY CAN" 7 | 31 PRINT "CIRCLE YOUR PLANET ONCE EVERY 12 TO 36 HOURS." 8 | 35 PRINT 9 | 40 PRINT "UNFORTUNATELY THEY ARE USING A CLOAKING DEVICE SO" 10 | 45 PRINT "YOU ARE UNABLE TO SEE THEM, BUT WITH A SPECIAL " 11 | 50 PRINT "INSTRUMENT YOU CAN TELL HOW NEAR THEIR SHIP YOUR" 12 | 55 PRINT "PHOTON BOMB EXPLODED. YOU HAVE SEVEN HOURS UNTIL THEY" 13 | 60 PRINT "HAVE BUILT UP SUFFICIENT POWER IN ORDER TO ESCAPE " 14 | 65 PRINT "YOUR PLANET'S GRAVITY." 15 | 70 PRINT 16 | 75 PRINT "YOUR PLANET HAS ENOUGH POWER TO FIRE ONE BOMB AN HOUR." 17 | 80 PRINT 18 | 85 PRINT "AT THE BEGINNING OF EACH HOUR YOU WILL BE ASKED TO GIVE AN" 19 | 90 PRINT "ANGLE (BETWEEN 0 AND 360) AND A DISTANCE IN UNITS OF" 20 | 95 PRINT "100 MILES (BETWEEN 100 AND 300), AFTERWHICH YOUR BOMB'S" 21 | 100 PRINT "DISTANCE FROM THE ENEMY SHIP WILL BE GIVEN." 22 | 105 PRINT 23 | 110 PRINT "AN EXPLOSION WITHIN 5,000 MILES OF THE ROMULAN SHIP" 24 | 111 PRINT "WILL DESTROY IT." 25 | 114 PRINT 26 | 115 PRINT "BELOW IS A DIAGRAM TO HELP YOU VISUALIZE YOUR PLIGHT." 27 | 116 PRINT 28 | 117 PRINT 29 | 168 PRINT " 90" 30 | 169 PRINT " ^" 31 | 170 PRINT " 0000000000000" 32 | 171 PRINT " 0000000000000000000" 33 | 172 PRINT " 000000 000000" 34 | 173 PRINT " 00000 00000" 35 | 174 PRINT " 00000 XXXXXXXXXXX 00000" 36 | 175 PRINT " 00000 XXXXXXXXXXXXX 00000" 37 | 176 PRINT " 0000 XXXXXXXXXXXXXXX 0000" 38 | 177 PRINT " 0000 XXXXXXXXXXXXXXXXX 0000" 39 | 178 PRINT " 0000 XXXXXXXXXXXXXXXXXXX 0000" 40 | 179 PRINT "180<== 00000 XXXXXXXXXXXXXXXXXXX 00000 ==>0" 41 | 180 PRINT " 0000 XXXXXXXXXXXXXXXXXXX 0000" 42 | 181 PRINT " 0000 XXXXXXXXXXXXXXXXX 0000" 43 | 182 PRINT " 0000 XXXXXXXXXXXXXXX 0000" 44 | 183 PRINT " 00000 XXXXXXXXXXXXX 00000" 45 | 184 PRINT " 00000 XXXXXXXXXXX 00000" 46 | 185 PRINT " 00000 00000" 47 | 186 PRINT " 000000 000000" 48 | 187 PRINT " 0000000000000000000" 49 | 188 PRINT " 0000000000000" 50 | 189 PRINT " !" 51 | 190 PRINT " 270" 52 | 191 PRINT 53 | 192 PRINT 54 | 195 PRINT "X - YOUR PLANET" 55 | 196 PRINT "O - THE ORBIT OF THE ROMULAN SHIP" 56 | 197 PRINT 57 | 198 PRINT "ON THE ABOVE DIAGRAM, THE ROMULAN SHIP IS CIRCLING" 58 | 199 PRINT "COUNTERCLOCKWISE AROUND YOUR PLANET. DON'T FORGET" 59 | 200 PRINT "WITHOUT SUFFICIENT POWER THE ROMULAN SHIP'S ALTITUDE" 60 | 201 PRINT "AND ORBITAL RATE WILL REMAIN CONSTANT." 61 | 203 PRINT 62 | 204 PRINT "GOOD LUCK. THE FEDERATION IS COUNTING ON YOU." 63 | 270 LET A=INT(RND*360) 64 | 280 LET D=INT(RND*200) +100 65 | 290 LET R=INT(RND*20) +10 66 | 300 LET H=0 67 | 310 IF H=7 GOTO 490 68 | 320 LET H=H+1 69 | 325 PRINT 70 | 326 PRINT 71 | 330 PRINT "HOUR";H;", AT WHAT ANGLE DO YOU WISH TO SEND" 72 | 335 PRINT "YOUR PHOTON BOMB?" 73 | 340 INPUT A1 74 | 350 PRINT "HOW FAR OUT DO YOU WISH TO DETONATE IT?" 75 | 360 INPUT D1 76 | 365 PRINT 77 | 366 PRINT 78 | 370 LET A=A+R 79 | 380 IF A<360 GOTO 400 80 | 390 LET A=A-360 81 | 400 LET T=ABS(A-A1) 82 | 410 IF T<180 GOTO 430 83 | 420 LET T=360-T 84 | 430 LET C=SQR(D*D+D1*D1-2*D*D1*COS(T*3.14159/180)) 85 | 440 PRINT "YOUR PHOTON BOMB EXPLODED ";C;"*10^2 MILES FROM THE" 86 | 445 PRINT "THE ROMULAN SHIP" 87 | 450 IF C<=50 GOTO 470 88 | 460 GOTO 310 89 | 470 PRINT "YOU HAVE SUCCESSFULLY COMPLETED YOUR MISSION." 90 | 480 GOTO 500 91 | 490 PRINT "YOU HAVE ALLOWED THE ROMULANS TO ESCAPE." 92 | 500 PRINT "ANOTHER ROMULAN SHIP HAS GONE INTO ORBIT." 93 | 510 PRINT "DO YOU WISH TO TRY TO DESTROY IT?" 94 | 520 INPUT C$ 95 | 530 IF C$="YES" GOTO 270 96 | 540 PRINT "PLEASE LOGOUT" 97 | 999 END -------------------------------------------------------------------------------- /pizza.bas: -------------------------------------------------------------------------------- 1 | 10 DIM A%(26),S$(16),N$(4),A(10),M$(4) 2 | 20 RANDOMIZE 3 | 30 PRINT "PIZZA DELIVERY GAME": PRINT 4 | 50 INPUT "WHAT IS YOUR FIRST NAME";N$:PRINT 5 | 80 PRINT "HI, "N$". IN THIS GAME YOU ARE TO TAKE ORDERS" 6 | 90 PRINT "FOR PIZZAS. THEN YOU ARE TO TELL A DELIVERY BOY" 7 | 100 PRINT "WHERE TO DELIVER THE ORDERED PIZZAS.":PRINT:PRINT 8 | 140 FOR I=1 TO 16 9 | 150 READ S$(I) 10 | 160 NEXT I 11 | 170 FOR I=1 TO 4 12 | 180 READ M$(I) 13 | 190 NEXT I 14 | 200 DATA "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P" 15 | 220 DATA "1","2","3","4" 16 | 230 PRINT "MAP OF THE CITY OF HYATTSVILLE":PRINT 17 | 250 PRINT " ----1----2----3----4----" 18 | 260 K=4 19 | 270 FOR I=1 TO 4 20 | 280 PRINT "-":PRINT "-":PRINT "-":PRINT "-" 21 | 320 PRINT M$(K); 22 | 330 S1=16-4*I+1 23 | 340 PRINT " ";S$(S1);" ";S$(S1+1);" ";S$(S1+2);" ";S$(S1+3); 24 | 350 PRINT " ";M$(K) 25 | 380 K=K-1 26 | 390 NEXT I 27 | 400 PRINT "-":PRINT "-":PRINT "-":PRINT "-" 28 | 440 PRINT "0----1----2----3----4----":PRINT 29 | 460 PRINT "THE ABOVE IS A MAP OF THE HOMES WHERE" 30 | 470 PRINT "YOU ARE TO SEND PIZZAS.":PRINT 31 | 490 PRINT "YOUR JOB IS TO GIVE A TRUCK DRIVER" 32 | 500 PRINT "THE LOCATION OR COORDINATES OF THE" 33 | 510 PRINT "HOME ORDERING THE PIZZA.":PRINT 34 | 520 INPUT "DO YOU NEED MORE DIRECTIONS";A$ 35 | 530 IF A$="YES" THEN 590 36 | 540 IF A$="NO" THEN 750 37 | 550 PRINT "'YES' OR 'NO' PLEASE, NOW THEN,":GOTO 520 38 | 590 PRINT:PRINT "SOMEBODY WILL ASK FOR A PIZZA TO BE" 39 | 600 PRINT "DELIVERED. THEN A DELIVERY BOY WILL" 40 | 610 PRINT "ASK YOU FOR THE LOCATION.":PRINT " EXAMPLE:" 41 | 620 PRINT "THIS IS J. PLEASE SEND A PIZZA." 42 | 640 PRINT "DRIVER TO "N$". WHERE DOES J LIVE?" 43 | 650 PRINT "YOUR ANSWER SHOULD BE 2,3":PRINT 44 | 660 INPUT "UNDERSTAND";A$ 45 | 670 IF A$="YES" THEN 690 46 | 680 PRINT "THIS JOB IS TOO DIFFICULT FOR YOU. THANKS ANYWAY.":GOTO 999 47 | 690 PRINT "GOOD. YOU ARE NOW READY TO START TAKING ORDERS.":PRINT 48 | 700 PRINT "GOOD LUCK!!!":PRINT 49 | 750 FOR I=1 TO 5 50 | 760 S=INT(RND*16+1):PRINT 51 | 770 PRINT "HELLO "N$"'S PIZZA. THIS IS "S$(S); 52 | 775 PRINT " PLEASE SEND A PIZZA." 53 | 780 PRINT " DRIVER TO "N$". WHERE DOES "S$(S)" LIVE"; 54 | 790 INPUT A(1),A(2) 55 | 870 T=A(1)+(A(2)-1)*4 56 | 880 IF T=S THEN 920 57 | 890 PRINT "THIS IS "S$(T)". I DID NOT ORDER A PIZZA." 58 | 900 PRINT "I LIVE AT "A(1)", "A(2) 59 | 910 GOTO 780 60 | 920 PRINT "HELLO "N$". THIS IS "S$(S)", THANKS FOR THE PIZZA." 61 | 930 NEXT I 62 | 940 PRINT:INPUT "DO YOU WANT TO DELIVER MORE PIZZAS";A$ 63 | 960 IF A$="YES" THEN 750 64 | 970 PRINT:PRINT "O.K. "N$", SEE YOU LATER!" 65 | 999 END -------------------------------------------------------------------------------- /poet.bas: -------------------------------------------------------------------------------- 1 | 90 RANDOMIZE 2 | 100 IF I<>1 THEN 101 ELSE PRINT "MIDNIGHT DREARY"; 3 | 101 IF I<>2 THEN 102 ELSE PRINT "FIREY EYES"; 4 | 102 IF I<>3 THEN 103 ELSE PRINT "BIRD OR FIEND"; 5 | 103 IF I<>4 THEN 104 ELSE PRINT "THING OF EVIL"; 6 | 104 IF I<>5 THEN 210 ELSE PRINT "PROPHET"; 7 | 105 GOTO 210 8 | 110 IF I<>1 THEN 111 ELSE PRINT "BEGUILING ME"; 9 | 111 IF I<>2 THEN 112 ELSE PRINT "THRILLED ME"; 10 | 112 IF I<>3 THEN 113 ELSE PRINT "STILL SITTING..." \GOTO 212 11 | 113 IF I<>4 THEN 114 ELSE PRINT "BURNED. " \GOTO 212 12 | 114 IF I<>5 THEN 210 ELSE PRINT "NEVER FLITTING"; 13 | 115 GOTO 210 14 | 120 IF I<>1 THEN 121 ELSE IF U=0 THEN 210 ELSE PRINT "SIGN OF PARTING"; 15 | 121 IF I<>2 THEN 122 ELSE PRINT "AND MY SOUL"; 16 | 122 IF I<>3 THEN 123 ELSE PRINT "DARKNESS THERE"; 17 | 123 IF I<>4 THEN 124 ELSE PRINT "SHALL BE LIFTED"; 18 | 124 IF I<>5 THEN 210 ELSE PRINT "QUOTH THE RAVEN"; 19 | 125 GOTO 210 20 | 130 IF I<>1 THEN 131 ELSE PRINT "NOTHING MORE"; 21 | 131 IF I<>2 THEN 132 ELSE PRINT "YET AGAIN"; 22 | 132 IF I<>3 THEN 133 ELSE PRINT "SLOWLY CREEPING"; 23 | 133 IF I<>4 THEN 134 ELSE PRINT "...NEVERMORE"; 24 | 134 IF I<>5 THEN 210 ELSE PRINT "EVERMORE."; 25 | 210 IF U=0 THEN 212 ELSE IF RND>.19 THEN 212 ELSE PRINT ",";\U=2 26 | 212 IF RND>.65 THEN 214 ELSE PRINT " ";\U=U+1\GOTO 215 27 | 214 PRINT\U=0 28 | 215 I=INT(5*RND+1) 29 | 220 J=J+1\K=K+1 30 | 230 IF U>0 THEN 240 ELSE IF INT(J/2)<>J/2 THEN 240 ELSE PRINT " "; 31 | 240 ON J GOTO 100,110,120,130,250 32 | 250 J=0\PRINT\IF K>20 THEN 270 ELSE GOTO 215 33 | 270 PRINT\U=0\K=0\GOTO 110 34 | 999 END -------------------------------------------------------------------------------- /queen.bas: -------------------------------------------------------------------------------- 1 | 1 REM PLAYS QUEEN GAME. 2 | 2 PRINT "DO YOU WISH INSTRUCTIONS"; 3 | 9 RANDOMIZE 4 | 10 DIM S(64) 5 | 11 FOR I = 1 TO 64 6 | 12 READ S(I) 7 | 13 NEXT I 8 | 14 DATA 81, 71, 61, 51, 41, 31, 21, 11 9 | 15 DATA 92, 82, 72, 62, 52, 42, 32, 22 10 | 16 DATA 103, 93, 83, 73, 63, 53, 43, 33 11 | 17 DATA 114, 104, 94, 84, 74, 64, 54, 44 12 | 18 DATA 125, 115, 105, 95, 85, 75, 65, 55 13 | 19 DATA 136, 126, 116, 106, 96, 86, 76, 66 14 | 20 DATA 147, 137, 127, 117, 107, 97, 87, 77 15 | 21 DATA 158, 148, 138, 128, 118, 108, 98, 88 16 | 22 INPUT W$ 17 | 23 IF W$="NO" THEN 30 18 | 24 IF W$="YES" THEN 28 19 | 25 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'!"; 20 | 26 GOTO 22 21 | 28 GOSUB 5000 22 | 29 GO TO 100 23 | 30 GOSUB 5100 24 | 90 REM ERROR CHECKS. 25 | 100 PRINT "WHERE WOULD YOU LIKE TO START"; 26 | 110 INPUT M1 27 | 115 IF M1 = 0 THEN 232 28 | 120 LET T1 = INT(M1/10) 29 | 130 LET U1 = M1 - 10*T1 30 | 140 IF U1 = 1 THEN 200 31 | 150 IF U1 = T1 THEN 200 32 | 160 PRINT "PLEASE READ THE DIRECTIONS AGAIN." 33 | 165 PRINT "YOU HAVE BEGUN ILLEGALLY." 34 | 170 PRINT 35 | 180 GO TO 100 36 | 200 GO SUB 2000 37 | 210 PRINT "MACHINE MOVES TO SQUARE"M 38 | 215 IF M = 158 THEN 3400 39 | 220 PRINT "WHAT IS YOUR MOVE"; 40 | 230 INPUT M1 41 | 231 IF M1 <> 0 THEN 239 42 | 232 PRINT 43 | 233 PRINT "IT LOOKS LIKE I HAVE WON BY FORFEIT." 44 | 234 PRINT 45 | 235 GO TO 4000 46 | 239 IF M1 <= M THEN 3200 47 | 240 LET T1 = INT(M1/10) 48 | 250 LET U1 = M1 - 10*T1 49 | 260 LET P = U1 - U 50 | 270 IF P <> 0 THEN 300 51 | 280 LET L = T1 - T 52 | 290 IF L <= 0 THEN 3200 53 | 295 GO TO 200 54 | 300 IF T1 - T <> P THEN 320 55 | 310 GO TO 200 56 | 320 IF T1 + T <> 2*P THEN 3200 57 | 330 GO TO 200 58 | 1990 REM LOCATE MOVE FOR MACHINE. 59 | 2000 IF M1 = 41 THEN 2180 60 | 2010 IF M1 = 44 THEN 2180 61 | 2020 IF M1 = 73 THEN 2180 62 | 2030 IF M1 = 75 THEN 2180 63 | 2040 IF M1 = 126 THEN 2180 64 | 2050 IF M1 = 127 THEN 2180 65 | 2060 IF M1 = 158 THEN 3300 66 | 2065 LET C = 0 67 | 2070 FOR K = 7 TO 1 STEP -1 68 | 2080 LET U = U1 69 | 2090 LET T = T1 + K 70 | 2100 GO SUB 3500 71 | 2105 IF C = 1 THEN 2160 72 | 2110 LET T = T1 - K 73 | 2120 GO SUB 3500 74 | 2125 IF C = 1 THEN 2160 75 | 2130 LET T = T + K 76 | 2140 GO SUB 3500 77 | 2145 IF C = 1 THEN 2160 78 | 2150 NEXT K 79 | 2155 GO TO 2180 80 | 2160 LET C = 0 81 | 2170 RETURN 82 | 2180 GO SUB 3000 83 | 2190 RETURN 84 | 2990 REM RANDOM MOVE. 85 | 3000 LET Z=RND 86 | 3010 IF Z > .6 THEN 3110 87 | 3020 IF Z > .3 THEN 3070 88 | 3030 LET U = U1 89 | 3040 LET T = T1 + 1 90 | 3050 LET M = 10*T + U 91 | 3060 RETURN 92 | 3070 LET U = U1 + 1 93 | 3080 LET T = T1 + 2 94 | 3090 LET M = 10*T + U 95 | 3100 RETURN 96 | 3110 LET U = U1 + 1 97 | 3120 LET T = T1 + 1 98 | 3130 LET M = 10*T + U 99 | 3140 RETURN 100 | 3190 REM ILLEGAL MOVE MESSAGE. 101 | 3200 PRINT 102 | 3210 PRINT "Y O U C H E A T . . . TRY AGAIN"; 103 | 3220 GO TO 230 104 | 3290 REM PLAYER WINS. 105 | 3300 PRINT 106 | 3310 PRINT "C O N G R A T U L A T I O N S . . . " 107 | 3320 PRINT 108 | 3340 PRINT "YOU HAVE WON--VERY WELL PLAYED." 109 | 3340 PRINT "IT LOOKS LIKE I HAVE MET MY MATCH." 110 | 3350 PRINT "THANKS FOR PLAYING--I CAN'T WIN ALL THE TIME." 111 | 3360 PRINT 112 | 3370 GO TO 4000 113 | 3390 REM MACHINE WINS. 114 | 3400 PRINT 115 | 3410 PRINT "NICE TRY, BUT IT LOOKS LIKE I HAVE WON." 116 | 3420 PRINT "THANKS FOR PLAYING." 117 | 3430 PRINT 118 | 3440 GO TO 4000 119 | 3490 REM TEST FOR MACHINE MOVE. 120 | 3500 LET M = 10*T + U 121 | 3510 IF M = 150 THEN 3570 122 | 3520 IF M = 127 THEN 3570 123 | 3530 IF M = 126 THEN 3570 124 | 3540 IF M = 75 THEN 3570 125 | 3550 IF M = 73 THEN 3570 126 | 3560 RETURN 127 | 3570 LET C = 1 128 | 3580 GO TO 3560 129 | 3990 REM ANOTHER GAME? 130 | 4000 PRINT "ANYONE ELSE CARE TO TRY"; 131 | 4020 INPUT Q$ 132 | 4030 PRINT 133 | 4040 IF Q$="YES" THEN100 134 | 4042 IF Q$="NO" THEN 4050 135 | 4045 PRINT "INCORRECT ANSWER, PLEASE TYPE 'YES' OR 'NO'"; 136 | 4046 GOTO 4020 137 | 4050 PRINT "OK -- THANKS AGAIN." 138 | 4060 STOP 139 | 4990 REM DIRECTIONS, ETC. * * 140 | 5000 PRINT "WE ARE GOING TO PLAY A GAME BASED ON ONE OF THE CHESS MOVES," 141 | 5010 PRINT "OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE LEFT," 142 | 5020 PRINT "DOWN, AND DIAGONALLY DOWN TO THE LEFT." 143 | 5030 PRINT 144 | 5040 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE" 145 | 5050 PRINT "LOWER LEFT-HAND SQUARE BY ALTERNATING MOVES BETWEEN" 146 | 5060 PRINT "YOU AND THE MACHINE/ THE FIRST ONE TO PLACE THE QUEEN" 147 | 5070 PRINT "THERE, WINS." 148 | 5080 PRINT 149 | 5090 PRINT "YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE" 150 | 5100 PRINT "SQUARES ON THE TOP ROW OR THE RIGHT-HAND COLUMN," 151 | 5110 PRINT "THAT WILL BE YOUR FIRST MOVE." 152 | 5120 PRINT "WE WILL THEN ALTERNATE MOVES." 153 | 5130 PRINT "YOU MAY FORFEIT AT ANY TIME BY TYPING '0' AS YOUR MOVE." 154 | 5140 PRINT "BE SURE TO PUSH THE 'RETURN' KEY AFTER EACH RESPONSE." 155 | 5150 PRINT 156 | 5160 FOR A = 0 TO 7 157 | 5170 FOR B = 1 TO 8 158 | 5180 LET I = 8*A + B 159 | 5190 PRINT S(I); 160 | 5200 NEXT B 161 | 5210 PRINT 162 | 5220 PRINT 163 | 5225 PRINT 164 | 5230 NEXT A 165 | 5240 PRINT 166 | 5250 RETURN 167 | 99999 END 168 | -------------------------------------------------------------------------------- /reverse.bas: -------------------------------------------------------------------------------- 1 | 100 PRINT\PRINT "REVERSE -- A GAME OF SKILL"\PRINT 2 | 120 RANDOMIZE 3 | 130 DIM A(20) 4 | 140 REM *** N=NUMBER OF NUMBERS 5 | 150 N=9 6 | 160 INPUT "DO YOU WANT THE RULES (YES OR NO)"; A$ 7 | 170 IF A$="NO" THEN 210 8 | 190 GOSUB 710 9 | 200 REM *** MAKE A RANDOM LIST A(1) TO A(N) 10 | 210 A(1)=INT((N-1)*RND)+2 11 | 220 FOR K=2 TO N 12 | 230 A(K)=INT(N*RND)+1 13 | 240 FOR J=1 TO K-1 14 | 250 IF A(K)=A(J) THEN 230 15 | 260 NEXT J\NEXT K 16 | 280 REM *** PRINT ORIGINAL LIST AND START GAME 17 | 290 PRINT\PRINT "HERE WE GO ... THE LIST IS:" 18 | 310 T=0 19 | 320 GOSUB 610 20 | 330 INPUT "HOW MANY SHALL I REVERSE";R 21 | 350 IF R=0 THEN 520 22 | 360 IF R<=N THEN 390 23 | 370 PRINT "OOPS! TOO MANY - I CAN REVERSE AT MOST "N\GOTO 330 24 | 390 T=T+1 25 | 400 REM *** REVERSE R NUMBERS AND PRINT NEW LIST 26 | 410 FOR I=1 TO INT(R/2) 27 | 420 S=A(K) 28 | 430 A(K)=A(R-K+1) 29 | 440 A(R-K+1)=Z 30 | 450 NEXT K 31 | 460 GOSUB 610 32 | 470 REM *** CHECK FOR A WIN 33 | 480 FOR K=1 TO N 34 | 490 IF A(K)<>K THEN 330 35 | 500 NEXT K 36 | 510 PRINT "YOU WON IT IN "T" MOVES !!!"\PRINT 37 | 530 INPUT "TRY AGAIN (YES OR NO)";A$ 38 | 550 IF A$="YES" THEN 210 39 | 560 PRINT\PRINT "O.K. HOPE YOU HAD FUN!!"\GOTO 999 40 | 600 REM *** SUBROUTINE TO PRINT LIST 41 | 610 PRINT\FOR K=1 TO N\PRINT A(K);\NEXT K 42 | 650 PRINT\PRINT\RETURN 43 | 700 REM *** SUBROUTINE TO PRINT THE RULES 44 | 710 PRINT\PRINT "THIS IS THE GAME OF 'REVERSE'. TO WIN, ALL YOU HAVE" 45 | 720 PRINT "TO DO IS ARRANGE A LIST OF NUMBERS (1 THROUGH "N")" 46 | 730 PRINT "IN NUMERICAL ORDER FROM LEFT TO RIGHT. TO MOVE, YOU" 47 | 740 PRINT "TELL ME HOW MANY NUMBERS (COUNTING FROM THE LEFT) TO" 48 | 750 PRINT "REVERSE. FOR EXAMPLE, IF THE CURRENT LIST IS " 49 | 760 PRINT\PRINT "2 3 4 5 1 6 7 8 9" 50 | 770 PRINT\PRINT "AND YOU REVERSE 4, THE RESULT WILL BE:" 51 | 780 PRINT\PRINT "5 4 3 2 1 6 7 8 9" 52 | 790 PRINT\PRINT "NOW, IF YOU REVERSE 5, YOU WIN!" 53 | 800 PRINT\PRINT "1 2 3 4 5 6 7 8 9"\PRINT 54 | 810 PRINT "NO DOUBT YOU WILL LIKE THIS GAME OF SKILL, BUT" 55 | 820 PRINT "IF YOU WANT TO QUIT, REVERSE 0 (ZERO)."\PRINT\RETURN 56 | 999 END -------------------------------------------------------------------------------- /rocket.bas: -------------------------------------------------------------------------------- 1 | 2 PRINT "THIS IS A COMPUTER SIMULATION OF AN APOLLO LUNAR" 2 | 3 PRINT "LANDING CAPSULE."\PRINT\PRINT 3 | 4 PRINT "THE ON-BOARD COMPUTER HAS FAILED (IT WASN'T MADE BY" 4 | 5 PRINT "DIGITAL) SO YOU HAVE TO LAND THE CAPSULE MANUALLY" 5 | 6 PRINT\PRINT "SET BURN RATE OF RETRO ROCKETS TO ANY VALUE BETWEEN" 6 | 7 PRINT "0 (FREE FALL) AND 200 (MAXIMUM BURN) POUNDS PER SECOND" 7 | 8 PRINT "SET NEW BURN RATE EVERY 10 SECONDS."\PRINT 8 | 9 PRINT "CAPSULE WEIGHT 32,500 LBS; FUEL WEIGHT 16,500 LBS" 9 | 10 PRINT\PRINT\PRINT "GOOD LUCK!!!" 10 | 11 L=0 11 | 13 PRINT\PRINT "SEC", "MI + FT", "MPH", "LB FUEL", "BURN RATE"\PRINT 12 | 15 A=120\V=1\M=33000\N=16500\G=1E-3\Z=1.8 13 | 21 PRINT L,INT(A);INT(5280*(A-INT(A))),3600*V,M-N,\INPUT K\T=10 14 | 31 IF M-N<.001 THEN 41\IF T<.001 THEN 21\S=T\IF M>=N+S*K THEN 35 15 | 32 S=(M-N)/K 16 | 35 GOSUB 91\IF I<=0 THEN 71\IF V<=0 THEN 38\IF J<0 THEN 81 17 | 38 GOSUB 61\GOTO 31 18 | 41 PRINT "FUEL OUT AT"L"SEC"\S=(-V+SQR(V*V+2*A*G))/G\V=V+G*S\L=L+S 19 | 51 W=3600*V\PRINT"ON MOON AT"L"SEC - IMPACT VELOCITY" W "MPH" 20 | 52 IF W>1.2 THEN 53\PRINT "PERFECT LANDING! (LUCKY)"\GOTO 95 21 | 53 IF W>10 THEN 56\PRINT "GOOD LANDING (COULD BE BETTER)"\GOTO 95 22 | 56 IF W>60 THEN 58 \PRINT "CRAFT DAMAGE.....YOU'RE STRANDED HERE UNTIL" 23 | 57 PRINT "A RESCUE PARTY ARRIVES. HOPE YOU HAVE ENOUGH OXYGEN!"\GOTO 95 24 | 58 PRINT "SORRY, BUT THERE WERE NO SURVIVORS...YOU BLEW IT!" 25 | 59 PRINT "IN FACT, YOU BLASTED A NEW LUNAR CRATER"W*2777"FT DEEP" 26 | 60 GOTO 95 27 | 61 L=L+S\T=T-S\M=M-S*K\A=I=V=J\RETURN 28 | 71 IF S<5E-3 THEN 51\D=V+SQR(V*V+2*A*(G-Z/K/M))\S=2*A/D 29 | 73 GOSUB 91\GOSUB 61\GOTO 71 30 | 81 W=(-1-M*G/(Z/K))\Z/S=(M*V/(Z/K)+W*SQR(W+W+V/Z)))+.05\GOSUB 91 31 | 83 IF I<=0 THEN 71\GOSUB 61\IF J>0 THEN 31\IF V>0 THEN 81\GOTO 31 32 | 91 Q=S*K/M\J=V+G*S+Z*(-Q-Q*Q/2-Q/3-3-Q/4-4-Q/5) 33 | 94 I=A-G*S/2-V*S+Z*S*(Q/2+Q/2+Q/3+Q/3+12*Q/4+20*Q/5+30)\RETURN 34 | 95 PRINT\PRINT\PRINT\PRINT "TRY AGAIN??"\GOTO 6 35 | 99 END -------------------------------------------------------------------------------- /rocksp.bas: -------------------------------------------------------------------------------- 1 | 1 PRINT "THIS PROGRAM ALLOWS YOU TO PLAY THE OLD GAME OF" 2 | 2 PRINT "ROCKS, PAPER, AND SCISSORS AGAINST THE COMPUTER." 3 | 5 RANDOMIZE 4 | 6 INPUT "HOW MANY GAMES DO YOU WANT";Q 5 | 8 IF Q<1 THEN 11 6 | 9 PRINT "SORRY, BUT WE AREN'T ALLOWED TO PLAY THAT MANY."\GOTO 6 7 | 11 FOR G=1 TO Q 8 | 15 PRINT\PRINT "GAME NUMBER"G 9 | 20 X=INT(RND*3+1) 10 | 25 PRINT "3=ROCK...2=SISSORS...1=PAPER" 11 | 30 INPUT "1....2....3....WHAT'S YOUR CHOICE";K 12 | 32 IF (K-1)*(K-2)*(K-3)<>0 THEN PRINT "INVALID"\GOTO 25 13 | 35 PRINT "THIS IS MY CHOICE..." 14 | 40 ON X GOTO 50,60,70 15 | 50 PRINT "...PAPER"\GOTO 80 16 | 60 PRINT "...SCISSORS"\GOTO 80 17 | 70 PRINT "...ROCK" 18 | 80 IF X=K THEN 155 19 | 85 IF X>K THEN 125 20 | 90 IF X=1 THEN 105 21 | 95 PRINT "YOU WIN!!!"\H=H+1\GOTO 160 22 | 105 IF K=3 THEN 115 ELSE GOTO 95 23 | 115 PRINT "WOW! I WIN!!"\C=C+1\GOTO 160 24 | 125 IF K<>1 THEN 115 25 | 140 IF X<>3 THEN 115 ELSE 95 26 | 155 PRINT "TIE GAME, NO WINNER." 27 | 160 NEXT G 28 | 170 PRINT\PRINT "HERE IS THE FINAL SCORE:" 29 | 175 PRINT "I HAVE WON"C"GAME(S)." 30 | 180 PRINT "YOU HAVE WON"H"GAME(S)" 31 | 195 PRINT "AND"G-(C+H)"GAME(S) ENDED IN A TIE." 32 | 190 PRINT\PRINT "THANKS FOR PLAYING!!" 33 | 200 END 34 | -------------------------------------------------------------------------------- /rockt1.bas: -------------------------------------------------------------------------------- 1 | 70 PRINT "LUNAR LANDING SIMULATION" 2 | 80 PRINT "-------------------------" 3 | 100 INPUT "DO YOU WANT INSTRUCTIONS (YES OR NO)"; A$ 4 | 120 IF A$="NO" THEN 390 5 | 160 PRINT 6 | 200 PRINT "YOU ARE LANDING ON THE MOON AND HAVE TAKEN OVER MANUAL" 7 | 210 PRINT "CONTROL 500 FEET ABOVE A GOOD LANDING SPOT. YOU HAVE A" 8 | 220 PRINT "DOWNWARD VELOCITY OF 50 FT/SEC. 120 UNITS OF FUEL REMAIN." 9 | 230 PRINT "HERE ARE THE RULES THAT GOVERN YOUR SPACE VEHICLE:" 10 | 240 PRINT "(1) AFTER EACH SECOND, THE HEIGHT, VELOCITY, AND REMAINING" 11 | 250 PRINT " FUEL WILL BE REPORTED." 12 | 260 PRINT "(2) AFTER THE REPORT, A '?' WILL BE TYPED. ENTER THE" 13 | 270 PRINT " NUMBER OF UNITS OF FUEL YOU WISH TO BURN DURING THE" 14 | 280 PRINT " NEXT SECOND. EACH UNIT OF FUEL WILL SLOW YOUR DESCENT" 15 | 290 PRINT " BY 1 FT/SEC." 16 | 310 PRINT "(3) THE MAXIMUM THRUST OF YOUR ENGINE IS 30 FT/SEC/SEC OR" 17 | 320 PRINT " 30 UNITS OF FUEL PER SECOND." 18 | 330 PRINT "(4) WHEN YOU CONTACT THE LUNAR SURFACE, YOUR DESCENT ENGINE" 19 | 340 PRINT " WILL AUTOMATICALLY CUT OFF AND YOU WILL BE GIVEN A" 20 | 350 PRINT " REPORT OF YOUR LANDING SPEED AND REMAINING FUEL." 21 | 360 PRINT "(5) IF YOU RUN OUT OF FUEL, THE '?' WILL NO LONGER APPEAR," 22 | 370 PRINT " BUT YOU SECOND BY SECOND REPORT WILL CONTINUE UNTIL" 23 | 380 PRINT " YOU CONTACT THE LUNAR SURFACE." 24 | 390 PRINT "BEGINNING LANDING PROCEDURE ..." 25 | 410 PRINT "G O O D L U C K ! ! !" 26 | 420 PRINT 27 | 440 PRINT "SEC FEET SPEED FUEL PLOT OF DISTANCE" 28 | 450 PRINT 29 | 455 T=0\H=500\V=50\F=120 30 | 490 PRINT T;TAB(4);H;TAB(12);V;TAB(20);F;TAB(29);"!";TAB(H/12+29);"*" 31 | 500 INPUT B 32 | 510 IF B<0 THEN 650 33 | 520 IF B>30 THEN B=30 34 | 530 IF B>F THEN B=F 35 | 540 V1=V-B+5 36 | 560 F=F-B 37 | 570 H=H- 5*(V+V1) 38 | 580 IF H<=0 THEN 670 39 | 590 T=T+1 40 | 600 V=V1 41 | 610 IF F>0 THEN 490 42 | 615 IF B=0 THEN 640 43 | 620 PRINT "*** OUT OF FUEL ***" 44 | 640 PRINT T;TAB(4);H;TAB(12);V;TAB(20);F;TAB(29);"!";TAB(H/12+29);"*" 45 | 650 B=0 46 | 660 GOTO 540 47 | 670 PRINT "*** CONTACT ***" 48 | 680 H=H+.5*(V+V1) 49 | 690 IF B=5 THEN 720 50 | 700 D=(-V+SQR(V*V+H*(10-2*B)))/(5-B) 51 | 710 GOTO 730 52 | 720 D=H/V 53 | 730 V1=V+(5-B)*D 54 | 760 PRINT "TOUCHDOWN AT";T+D;"SECONDS." 55 | 770 PRINT "LANDING VELOCITY =";V1;"FT/SEC" 56 | 780 PRINT F;"UNITS OF FUEL REMAINING." 57 | 790 IF V1<>0 THEN 810 58 | 800 PRINT "CONGRATULATIONS!! A PERFECT LANDING!" 59 | 805 PRINT "YOUR LICENSE WILL BE RENEWED.......LATER." 60 | 810 IF ABS(V1)<2 THEN 840 61 | 820 PRINT "***** SORRY, BUT YOU BLEW IT!!!!" 62 | 830 PRINT "APPROPRIATE CONDOLENCES WILL BE SENT TO YOUR NEXT OF KIN." 63 | 840 PRINT\PRINT\PRINT 64 | 850 INPUT "ANOTHER MISSION";A$ 65 | 870 IF A$="YES" THEN 390 66 | 880 PRINT\PRINT "CONTROL OUT.\PRINT 67 | 999 END -------------------------------------------------------------------------------- /rusrou.bas: -------------------------------------------------------------------------------- 1 | 5 RANDOMIZE 2 | 8 PRINT "THIS IS A GAME OF >>>>>>>>>>>RUSSIAN ROULETTE" 3 | 10 PRINT\PRINT "HERE IS A REVOLVER" 4 | 20 PRINT "HIT '1' TO SPIN CHAMBER AND PULL TRIGGER." 5 | 22 PRINT " (HIT '2' TO GIVE UP)"\PRINT "GO:"; 6 | 25 N=0 7 | 30 INPUT I 8 | 31 IF I<>2 THEN 35 9 | 32 PRINT " CHICKEN !!!"\GOTO 72 10 | 35 N=N+1 11 | 40 IF RND(0)>83333 THEN 70 12 | 45 IF N>10 THEN 80 13 | 50 PRINT "- CLICK -" 14 | 60 PRINT\GOTO 30 15 | 70 PRINT " BANG!!!! YOU'RE DEAD!" 16 | 71 PRINT "CONDOLENCES WILL BE SENT TO YOUR RELATIVES." 17 | 72 PRINT\PRINT\PRINT\PRINT "...NEXT VICTIM..."\GOTO 20 18 | 80 PRINT "YOU WIN !!!" 19 | 85 PRINT "LET SOMEONE ELSE BLOW HIS BRAINS OUT." 20 | 90 GOTO 10 21 | 99 END -------------------------------------------------------------------------------- /salvo1.bas: -------------------------------------------------------------------------------- 1 | 100 PRINT "YOU ARE ON A BATTLEFIELD WITH 4 PLATOONS AND YOU" 2 | 110 PRINT "HAVE 25 OUTPOSTS AVAILABLE WHERE THEY MAY BE PLACED." 3 | 120 PRINT "YOU CAN ONLY PLACE ONE PLATOON AT ANY ONE OUTPOST." 4 | 130 PRINT "THE COMPUTER DOES THE SAME WITH ITS FOUR PLATOONS." 5 | 135 PRINT 6 | 140 PRINT "THE OBJECT OF THE GAME IS TO FIRE MISSILES AT THE" 7 | 150 PRINT "OUTPOSTS OF THE COMPUTER. IT WILL DO THE SAME TO YOU." 8 | 160 PRINT "THE ONE WHO DESTROYS ALL FOUR OF THE ENEMY'S PLATOONS " 9 | 170 PRINT "FIRST IS THE WINNER." 10 | 180 PRINT 11 | 190 PRINT "GOOD LUCK... AND TELL US WHERE YOU WANT THE BODIES SENT!" 12 | 200 PRINT 13 | 210 PRINT "TEAR OFF THE MATRIX AND USE IT TO CHECK OFF THE NUMBERS." 14 | 220 FOR R=1 TO 5\PRINT\NEXT R 15 | 250 RANDOMIZE 16 | 260 DIM M(100) 17 | 270 FOR R=1 TO 5 18 | 280 I=(R-1)*5+1 19 | 290 PRINT I,I+1,I+2,I+3,I+4 20 | 300 NEXT R 21 | 350 FOR R=1 TO 10 22 | 360 PRINT "NEXT R 23 | 380 LET C = INT(RND(N) * 25) + 1 24 | 390 D = INT(RND(N) * 25) + 1 25 | 400 E = INT(RND(N) *25) + 1 26 | 410 F = INT(RND(N) * 25) + 1 27 | 420 IF C = D GOTO 390 28 | 430 IF C = E GOTO 400 29 | 440 IF C = F GOTO 410 30 | 450 IF D = E GOTO 400 31 | 460 IF D = F GOTO 410 32 | 470 IF E = F GOTO 410 33 | 480 PRINT "WHAT ARE YOUR FOUR POSITIONS" 34 | 490 INPUT G,H,K,L 35 | 495 PRINT 36 | 500 PRINT "WHERE DO YOU WISH TO FIRE YOUR MISSILE"; 37 | 510 INPUT Y 38 | 520IF Y = C GOTO 710 39 | 530 IF Y = D GOTO 710 40 | 540 IF Y = E GOTO 710 41 | 550 IF Y = F GOTO 710 42 | 560 GOTO 630 43 | 570 M = INT(RND(N) * 25) + 1 44 | 575 GOTO 1160 45 | 580 IF X = G GOTO 920 46 | 590 IF X = H GOTO 920 47 | 600 IF X = L GOTO 920 48 | 610 IF X = K GOTO 920 49 | 620 GOTO 670 50 | 630 PRINT " HA,HA YOU MISSED, MY TURN NOW" 51 | 640 PRINT\PRINT\GOTO 570 52 | 670 PRINT "I MISSED YOU, YOU DIRTY RAT, I PICKED";M;". YOUR TURN." 53 | 680 PRINT\PRINT\GOTO 500 54 | 710 Q = Q + 1 55 | 720 IF Q = 4 GOTO 890 56 | 730 PRINT "YOU GOT ONE OF MY OUTPOSTS." 57 | 740 IF Q = 1 GOTO 770 58 | 750 IF Q = 2 GOTO 810 59 | 760 IF Q = 3 GOTO 850 60 | 770 PRINT " ONE DOWN THREE TO GO" 61 | 780 PRINT\PRINT\GOTO 570 62 | 810 PRINT " TWO DOWN TWO TO GO" 63 | 780 PRINT\PRINT\GOTO 570 64 | 850 PRINT " THREE DOWN ONE TO GO" 65 | 780 PRINT\PRINT\GOTO 570 66 | 890 PRINT " YOU GOT ME, I'M GOING FAST, BUT I'LL GET YOU WHEN " 67 | 900 PRINT " Y TRANSISTORS $ECUPERA E" 68 | 910 GOTO 1235 69 | 920 Z=Z+1 70 | 930 IF Z=4 THEN 1110 71 | 940 PRINT "I GOT YOU. IT WON'T BE LONG NOW, POST"X"WAS HIT." 72 | 950 IF Z=1 THEN 990 73 | 960 IF Z=2 THEN 1030 74 | 970 IF Z=3 THEN 1070 75 | 990 PRINT "YOU HAVE ONLY THREE OUTPOSTS LEFT" 76 | 1000 PRINT\PRINT\GOTO 500 77 | 1030 PRINT "YOU HAVE ONLY TWO OUTPOSTS LEFT." 78 | 1040 PRINT\PRINT\GOTO 500 79 | 1070 PRINT "YOU HAVE ONLY ONE OUTPOST LEFT." 80 | 1080 PRINT\PRINT\GOTO 500 81 | 1110 PRINT " YOU'RE DEAD. YOUR LAST OUTPOST WAS AT"X". HA, HA, HA!" 82 | 1120 PRINT " BETTER LUCK NEXT TIME." 83 | 1150 GOTO 1235 84 | 1160 P=P+1 85 | 1170 N=P-1 86 | 1180 FOR T = 1 TO N 87 | 1190 IF M = M(T) GOTO 570 88 | 1200 NEXT T 89 | 1210 X = M 90 | 1220 M(P) = M 91 | 1230 GOTO 580 92 | 1235 END 93 | 94 | -------------------------------------------------------------------------------- /slots.bas: -------------------------------------------------------------------------------- 1 | 100 RANDOMIZE 2 | 110 DIM D(3) 3 | 120 PRINT"THIS IS A SIMULATION OF A SLOT MACHINE USING A COMPUTER." 4 | 130 PRINT "EACH TIME YOU 'PULL' I WILL ASK YOU IF YOU WISH TO PLAY AGAIN." 5 | 140 PRINT "JUST ANSWER WITH A 'Y' FOR YES OR A 'N' FOR NO." 6 | 150 PRINT "PLEASE PLACE 4 QUARTERS ON MY CPU FOR EACH PLAY." 7 | 160 PRINT 8 | 170 FOR B1=1 TO 3 9 | 180 LET D(B1)=INT(RND(0)*6)+1 10 | 190 NEXT B1 11 | 200 FOR G1=1 TO 3 12 | 210 IF D(G1)=1 THEN 280 13 | 220 IF D(G1)=2 THEN 300 14 | 230 IF D(G1)=3 THEN 320 15 | 240 IF D(G1)=4 THEN 340 16 | 250 IF D(G1)=5 THEN 360 17 | 260 IF D(G1)=6 THEN 380 18 | 270 GOTO 390 19 | 280 PRINT TAB(G1*7);" BELL"; 20 | 290 GOTO 390 21 | 300 PRINT TAB(G1*7);" BAR"; 22 | 310 GOTO 390 23 | 320 PRINT TAB(G1*7);"CHERRY"; 24 | 330 GOTO 390 25 | 340 PRINT TAB(G1*7);"APPLE"; 26 | 350 GOTO 390 27 | 360 PRINT TAB(G1*7);"LEMON"; 28 | 370 GOTO 390 29 | 380 PRINT TAB(G1*7);" #"; 30 | 390 NEXT G1 31 | 400 PRINT TAB(28) 32 | 410 IF D(1)<>D(2) THEN 440 33 | 420 IF D(2)=D(3) THEN 530 34 | 430 IF D(1)=D(3) THEN 460 35 | 440 IF D(1)<>D(3) THEN 490 36 | 450 GO TO 510 37 | 460 IF D(1)/2<>INT(D(1)/2) THEN 510 38 | 470 LET B=B+5\PRINT "KENO..YOU WIN $5..TOTAL=$";B; 39 | 480 GO TO 550 40 | 490 LET B=B-1\PRINT "YOU HAVE LOST $1 -- TOTAL=$";B; 41 | 500 GOTO 550 42 | 510 LET B=B+1\PRINT "YOU HAVE WON $1 --- TOTAL=$";B; 43 | 520 GOTO 550 44 | 530 LET B=B+20\PRINT CHR$(7);"JACKPOT...$20...TOTAL=$";B;CHR$(7); 45 | 540 GOTO 550 46 | 550 PRINT "AGAIN?"; 47 | 560 INPUT $A\PRINT\IF A=#"Y" THEN 160\IF A<>#"N" THEN 560 48 | 570 PRINT "IT'S BEEN NICE OPERATING FOR YOU COME BACK SOON!" 49 | 580 END -------------------------------------------------------------------------------- /splat.bas: -------------------------------------------------------------------------------- 1 | 30 OPEN "PARACH.UTE" AS FILE 1% 2 | 40 DIM #1%,A(4000) 3 | 55 RANDOMIZE 4 | 95 PRINT "WELCOME TO ISPLAT! -- THE GAME THAT SIMULATES A PARACHUTE" 5 | 96 PRINT "JUMP, TRY TO OPEN YOUR CHUTE AT THE LAST POSSIBLE" 6 | 97 PRINT "MOMENT WITHOUT GOING SPLAT." 7 | 118 PRINT\PRINT\D1=0\V=0\A=0\N=0\M=0\D1=INT(9001*RND(1))+1000 8 | 119 PRINT "S ELECT YOUR OWN TERMINAL VELOCITY (YES OR NO)";\INPUT A1$ 9 | 120 IF A1$="NO" THEN 128 ELSE IF A1$="YES" THEN 123 10 | 121 PRINT "'YES' OR 'NO' PLEASE";\INPUT A1$\GOTO 120 11 | 123 PRINT "WHAT TERMINAL VELOCITY (MI/HR)";\INPUT V1 12 | 125 V1=V1*(5280/3600)\V=V1*((V1*RND(0))/20)=((V1*RND(0))/20)\GOTO 135 13 | 128 V1=INT(1000*RND(0)) 14 | 130 PRINT "OK. TERMINAL VELOCITY ="V1"MI/HR" 15 | 131 V1=V1*(5280/3600)\V#V1*((V1*RND(0))/20)=((V1*RND(0))/20) 16 | 135 PRINT "WANT TO SELECT ACCELERATION DUE TO GRAVITY (YES OR NO)"; 17 | 136 INPUT B1$ 18 | 140 IF B1$="NO" THEN 150 ELSE IF B1$="YES" THEN 143 19 | 141 PRINT "'YES' OR 'NO' PLEASE";\INPUT B1$\GOTO 140 20 | 143 PRINT "WHAT ACCELERATION (FT/SEC/SEC)";\INPUT A2 21 | 145 A=A2*((A2*RND(0))/20)-((A2*RND(0))/20)\GOTO 205 22 | 150 ON INT(1+(10*RND(0)))\GOTO 151,152,153,154,155,156,157,158,159,160 23 | 151 PRINT "FINE, YOU'RE ON MERCURY. ACCELERATION=12.2FT/SEC/SEC"\GOTO 161 24 | 152 PRINT "ALRIGHT, YOU'RE ON VENUS. ACCELERATION=28.3 FT/SEC/SEC"\GOTO 162 25 | 153 PRINT "THEN YOU'RE ON EARTH. ACCELERATION=32.16 FT/SEC/SEC"\GOTO 163 26 | 154 PRINT "FINE, YOU'RE ON THE MOON. ACCELERATION=5.15FT/SEC/SEC"\GOTO 164 27 | 155 PRINT "ALRIGHT, YOU'RE ON MARS. ACCELERATION=12.5FT/SEC/SEC"\GOTO 165 28 | 156 PRINT "THEN YOU'RE ON JUPITER. ACCELERATION=85.2FT/SEC/SEC"\GOTO 166 29 | 157 PRINT "FINE, YOU'RE ON SATURN. ACCELERATION=37.6FT/SEC/SEC"\GOTO 167 30 | 158 PRINT "ALRIGHT, YOU'RE ON URANUS. ACCELERATION=33.8FT/SEC/SEC"\GOTO 168 31 | 159 PRINT "THEN YOU'RE ON NEPTUNE. ACCELERATION=39.6FT/SEC/SEC"\GOTO 169 32 | 160 PRINT "FINE, YOU'RE ON THE SUN. ACCELERATION=896FT/SEC/SEC"\GOTO 170 33 | 161 A2=12.2\GOTO 145 34 | 162 A2=28.3\GOTO 145 35 | 163 A2=32.16\GOTO 145 36 | 164 A2=5.15\GOTO 145 37 | 165 A2=12.5\GOTO 145 38 | 166 A2=85.2\GOTO 145 39 | 167 A2=37.6\GOTO 145 40 | 168 A2=33.8\GOTO 145 41 | 169 A2=39.6\GOTO 145 42 | 170 A2=896\GOTO 145 43 | 205 PRINT 44 | 206 PRINT " ALTITUDE ="D1"FT" 45 | 207 PRINT " TERM.VELOCITY ="V1"FT/SEC +-5%" 46 | 208 PRINT " ACCELERATION ="A2"FT/SEC/SEC +-5%" 47 | 210 PRINT "SET THE TIMER FOR YOUR FREEFALL." 48 | 211 PRINT "HOW MANY SECONDS";\INPUT T 49 | 215 PRINT "HERE WE GO." 50 | 217 PRINT 51 | 218 PRINT "TIME (SEC)","DIST TO FALL (FT)" 52 | 219 PRINT "**********","*****************" 53 | 300 FOR I=0 TO T STEP (T/8) 54 | 310 IF I>=V/A GOTO 400 55 | 320 D=D1-((A/2)*I^2) 56 | 330 IF D<=0 GOTO 1000 57 | 340 PRINT I,D 58 | 350 NEXT I 59 | 360 GOTO 500 60 | 400 PRINT "TERMINAL VELOCITY REACHED AT T PLUS"V/A"SECONDS" 61 | 405 FOR I=1 TO T STEP (T/8) 62 | 410 D=D1-((V^2/(2*A))+(V*(I-(V/A)))) 63 | 420 IF D<=0 GOTO 1010 64 | 430 PRINT I,D 65 | 440 NEXT I 66 | 450 GOTO 500 67 | 500 PRINT "CHUTE OPEN" 68 | 510 K#0\K1=0 69 | 530 FOR I=1 TO 4000 70 | 550 IF A(I)=0 GOTO 620 71 | 560 K=K+1 72 | 570 IF D>=A(I) GOTO 600 73 | 580 K1=K1+1 74 | 600 NEXT I 75 | 620 A(I)=D 76 | 630 I=I-1 77 | 650 IF K=K1<=.1*K GOTO 700 78 | 660 IF K=K1<=.25*K GOTO 710 79 | 670 IF K=K1<=.5*K GOTO 720 80 | 680 IF K=K1<=.75*K GOTO 730 81 | 690 IF K=K1<=.9*K GOTO 740 82 | 695 GOTO 750 83 | 700 PRINT "WOW! THAT'S SOME JUMPING. OF THE"K"SUCCESSFUL JUMPS" 84 | 701 PRINT "BEFORE YOURS, ONLY"K-K1"OPENED THEIR CHUTES LOWER THAN" 85 | 702 PRINT "YOU DID." 86 | 703 GOTO 2000 87 | 710 PRINT "PRETTY GOOD! " K"SUCCESSFUL JUMPS PRECEDED YOURS AND ONLY" 88 | 711 PRINT K-K1" OF THEM GOT LOWER THAN YOU DID BEFORE THEIR CHUTES" 89 | 712 PRINT "OPENED." \GOTO 2000 90 | 720 PRINT "NOT BAD. THERE HAVE BEEN"K"SUCCESSFUL JUMPS BEFORE YOURS." 91 | 721 PRINT "YOU WERE BEATEN OUT BY"K-K1"OF THEM."\GOTO 2000 92 | 730 PRINT "CONSERVATIVE AREN'T YOU? YOU RANKED ONLY"K-K1"IN THE" 93 | 731 PRINT K"SUCCESSFUL JUMPS BEFORE YOURS."\GOTO 2000 94 | 740 PRINT "HUMPH! DON'T YOU HAVE ANY SPORTING BLOOD? THERE WERE" 95 | 741 PRINT K"SUCCESSFUL JUMPS BEFORE YOURS AND YOU CAME IN"K1"JUMPS" 96 | 742 PRINT "BETTER THAN THE WORST. SHAPE UP!!!"\GOTO 2000 97 | 750 PRINT "HEY! YOU PULLED THE RIP CORD MUCH TOO SOON. "K"SUCCESSFUL" 98 | 751 PRINT "JUMPS BEFORE YOURS AND YOU CAME IN NUMBER"K-K1"! GET WITH IT!" 99 | 752 GOTO 2000 100 | 800 PRINT "REQUIESCAT IN PACE."\GOTO 1950 101 | 801 PRINT "MAY THE ANGEL OF HEAVEN LEAD YOU INTO PARADISE"\GOTO 1950 102 | 802 PRINT "REST IN PEACE"\GOTO 1950 103 | 803 PRINT "SON-OF-A-GUN"\GOTO 1950 104 | 804 PRINT "#$%&&%!$"\GOTO 1950 105 | 805 PRINT "A KICK IN THE PANTS IS A BOOST IF YOU'RE HEADED RIGHT"\GOTO 1950 106 | 806 PRINT "HMMM, SHOULD HAVE PICKED A SHORTER TIME."\GOTO 1950 107 | 807 PRINT "MUTTER, MUTTER, MUTTER."\GOTO 1950 108 | 808 PRINT "PUSHING UP DAISIES."\GOTO 1950 109 | 809 PRINT "EASY COME, EASY GO."\GOTO 1950 110 | 1000 PRINT SQR(2*D1/A),"SPLAT" 111 | 1005 ON INT(1+ (10*RND(0))) GOTO 800,801,802,803,804,805,806,807,808,809 112 | 1010 PRINT (V/A) +((D1-(V^2/(2*A)))/V). "SPLAT" 113 | 1020 GOTO 1005 114 | 1950 PRINT "I'LL GIVE YOU ANOTHER CHANCE."\GOTO 2000 115 | 2000 PRINT "DO YOU WANT TO PLAY AGAIN?";\INPUT Z$ 116 | 2001 IF Z$="YES" GOTO 118 117 | 2002 IF Z$="NO" GOTO 2005 118 | 2003 PRINT "YES OR NO"\GOTO 2000 119 | 2005 PRINT "PLEASE";\INPUT Z$\IF Z$="YES" THEN 118 ELSE 2007 120 | 2007 PRINT "SSSSSSSSSS."\GOTO 2046 121 | 2046 CLOSE 1% 122 | 9999 END 123 | -------------------------------------------------------------------------------- /stars.bas: -------------------------------------------------------------------------------- 1 | 100 REM *** STARS - PEOPLE'S COMPUTER CENTER, MENLO PARK, CA 2 | 110 PRINT "STARS - A NUMBER GUESSING GAME" 3 | 120 PRINT 4 | 130 RANDOMIZE 5 | 140 REM *** A IS LIMIT ON NUMBER, M IS NUMBER OF GUESSES 6 | 150 LET A=100 7 | 160 LET M=7 8 | 170 PRINT "DO YOU WANT INSTRUCTIONS (1=YES 0=NO)" 9 | 180 INPUT Z 10 | 190 IF Z=0 THEN 280 11 | 200 REM *** INSTRUCTIONS ON HOW TO PLAY 12 | 210 PRINT "I AM THINKING OF A WHOLE NUMBER FROM 1 TO";A 13 | 220 PRINT "TRY TO GUESS MY NUMBER. AFTER YOU GUESS, I" 14 | 230 PRINT "WILL TYPE ONE OR MORE STARS (*). THE MORE" 15 | 240 PRINT "STARS I TYPE, THE CLOSER YOU ARE TO MY NUMBER." 16 | 250 PRINT "ONE STAR (*) MEANS FAR AWAY. SEVEN STARS (*******)" 17 | 260 PRINT "MEANS REALLY CLOSE! YOU GET";M;"GUESSES." 18 | 270 REM *** COMPUTER 'THINKS' OF A NUMBER 19 | 280 PRINT 20 | 290 PRINT 21 | 300 LET X=INT(A*RND(0))+1 22 | 310 PRINT "OK, I AM THINKING OF A NUMBER. START GUESSING." 23 | 320 REM *** GUESSING BEGINS. HUMAN GETS M GUESSES 24 | 330 FOR K=1 TO M 25 | 340 PRINT 26 | 350 PRINT "YOUR GUESS"; 27 | 360 INPUT G 28 | 370 IF G=X THEN 600 29 | 380 LET D=ABS(X-G) 30 | 390 IF D >= 64 THEN 510 31 | 400 IF D >= 32 THEN 500 32 | 410 IF D >= 16 THEN 490 33 | 420 IF D >= 8 THEN 480 34 | 430 IF D >= 4 THEN 470 35 | 440 IF D >= 2 THEN 460 36 | 450 PRINT "*"; 37 | 460 PRINT "*"; 38 | 470 PRINT "*"; 39 | 480 PRINT "*"; 40 | 490 PRINT "*"; 41 | 500 PRINT "*"; 42 | 510 PRINT "*"; 43 | 520 PRINT 44 | 530 NEXT K 45 | 540 REM *** DID NOT GUESS NUMBER IN M GUESSES 46 | 550 PRINT 47 | 560 PRINT "SORRY, THAT'S";M;"GUESSES. NUMBER WAS";X 48 | 570 GOTO 280 49 | 580 REM *** WE HAVE A WINNER 50 | 600 FOR N=1 TO 50 51 | 610 PRINT "*"; 52 | 620 NEXT N 53 | 630 PRINT "!!!" 54 | 640 PRINT "YOU GOT IT IN ";K;"GUESSES!! LET'S PLAY AGAIN..." 55 | 650 GOTO 280 56 | 660 END -------------------------------------------------------------------------------- /synonm.bas: -------------------------------------------------------------------------------- 1 | 5 REM *** SYNONM CONVERTED TO RSTS/E BASIC-PLUS BY DAVE AHL, DIGITAL 2 | 10 DIM R$(5),W$(10),L(30),R(30) 3 | 20 R$(1)="RIGHT":R$(2)="CORRECT":R$(3)="FINE":R$(4)="GOOD!":R$(5)="CHECK" 4 | 70 RANDOMIZE:C=0:PRINT:PRINT "SYNONYMS":PRINT 5 | 90 PRINT "A SYNONYM OF A WORD MEANS ANOTHER WORD IN THE ENGLISH" 6 | 100 PRINT "LANGUAGE WHICH HAS THE SAME OR VERY NEARLY THE SAME" 7 | 110 PRINT "MEANING":PRINT 8 | 130 PRINT "I CHOOSE A WORD -- YOU TYPE A SYNONYM." 9 | 140 PRINT "IF YOU CAN'T THINK OF A SYNONYM. TYPE THE WORD 'HELP'" 10 | 145 PRINT "AND I WILL TELL YOU A SYNONYM.":PRINT 11 | 150 RESTORE:C=C+1:READ N 12 | 160 IF C>N THEN 420 13 | 170 N1=INT(RND*N+1) 14 | 174 IF R(N1)=1 THEN 170 15 | 176 R(N1)=1 16 | 180 FOR I=1 TO N1 17 | 190 READ N2 18 | 200 FOR J=1 TO N2 19 | 210 READ W$(J) 20 | 220 NEXT J 21 | 230 NEXT I 22 | 232 L(J)=J FOR J=1 TO N2 23 | 235 L(0)=N2:G=1:PRINT 24 | 237 L(G)=L(L(0)):L(0)=N2-1:PRINT 25 | 240 PRINT " WHAT IS A SYNONYM OF "W$(G);:INPUT A$ 26 | 250 IF A$="HELP" THEN 340 27 | 260 FOR J=1 TO N2 28 | 270 IF G=J THEN 290 29 | 280 IF A$=W$(J) THEN 320 30 | 290 NEXT J 31 | 300 PRINT " TRY AGAIN." 32 | 310 GOTO 240 33 | 320 PRINT R$(RND*5+1) 34 | 330 GOTO 150 35 | 340 G1=INT(RND*L(0)+1) 36 | 360 PRINT "**** A SYNONYM OF "W$(G)" IS "W$(L(G1))"." 37 | 365 PRINT 38 | 370 L(G1)=L(L(0)):L(0)=L(0)-1 39 | 390 GOTO 240 40 | 420 PRINT:PRINT "SYNONYM DRILL COMPLETED.":STOP 41 | 500 DATA 10 42 | 510 DATA 5,"FIRST","START","BEGINNING","ONSET","INITIAL" 43 | 520 DATA 5,"SIMILAR","ALIKE","SAME","LIKE","RESEMBLING" 44 | 530 DATA 5,"MODEL","PATTERN","PROTOTYPE","STANDARD","CRITERION" 45 | 540 DATA 5,"SMALL","INSIGNIFICANT","LITTLE","TINY","MINUTE" 46 | 550 DATA 6,"STOP","HALT","STAY","ARREST","CHECK","STANDSTILL" 47 | 560 DATA 6,"HOUSE","DWELLING","RESIDENCE","DOMICILE","LODGING","HABITATION" 48 | 570 DATA 7,"PIT","HOLE","HOLLOW","WELL","GULF","CHASM","ABYSS" 49 | 580 DATA 7,"PUSH","SHOVE","THRUST","PROD","POKE","BUTT","PRESS" 50 | 590 DATA 6,"RED","ROUGE","SCARLET","CRIMSON","FLAME","RUBY" 51 | 600 DATA 7,"PAIN","SUFFERING","HURT","MISERY","DISTRESS","ACHE","DISCOMFORT" 52 | 999 END 53 | -------------------------------------------------------------------------------- /target.bas: -------------------------------------------------------------------------------- 1 | 100 R=1\R1=57,296\RANDOMIZE 2 | 110 PRINT "YOU ARE THE WEAPONS OFFICER ON THE STAR SHIP ENTERPRISE" 3 | 120 PRINT "AND THIS IS A TEST TO SEE HOW ACCURATE A SHOT YOU" 4 | 130 PRINT "ARE IN A THREE-DIMENSIONAL RANGE. YOU WILL BE TOLD" 5 | 140 PRINT "THE RADIAN OFFSET FOR THE X AND Z AXES, THE LOCATION" 6 | 150 PRINT "OF THE TARGET IN THREE-DIMENSIONAL RECTANGULAR COORDINATES," 7 | 160 PRINT "THE APPROXIMATE NUMBER OF DEGREES FROM THE X AND Z" 8 | 170 PRINT "AXES, AND THE APPROXIMATE DISTANCE TO THE TARGET." 9 | 180 PRINT "YOU WILL THEN PROCEED TO SHOOT AT THE TARGET UNTIL IT IS" 10 | 190 PRINT "DESTROYED!"\PRINT\PRINT "GOOD LUCK!!"\PRINT\PRINT 11 | 220 A=RND*2*PI\B=RND*2*PI\Q=INT(A*R1)\W=INT(B*R1) 12 | 260 PRINT "RADIANS FROM X AXIS ="A" FROM Z AXIS ="B 13 | 270 PRINT "APPROX DEGREES FROM X AXIS ="Q" FROM Z AXIS ="W 14 | 280 P=100000*RND+RND\X=SIN(B)*COS(A)*P\Y=SIN(B)*SIN(A)*P\Z=COS(B)*P 15 | 340 PRINT "TARGET SIGHTED: APPROX COORDINATES X="X" Y="Y" Z="Z 16 | 345 R=R+1\IF R>5 THEN 390 17 | 350 ON R GOTO 355,360,365,370,375 18 | 355 P3=INT(P*.05)+20\GOTO 390 19 | 360 P3=INT(P*.1)+10\GOTO 390 20 | 365 P3=INT(P*.5)+2\GOTO 390 21 | 370 P3=INT(P)\GOTO 390 22 | 375 P3=P 23 | 390 PRINT " ESTIMATED DISTANCE="P3 24 | 400 INPUT "INPUT ANGLE DEVIATION FROM X, DEVIATION FROM Z, DISTANCE";A1,B1,P2 25 | 410 PRINT\IF P2<20 THEN PRINT "YOU BLEW YOURSELF UP!!"\GOTO 580 26 | 420 A1=A1/R1\B1=B1/R1\PRINT "RADIANS FROM X AXIS ="A1" FROM Z AXIS "B1 27 | 480 X1=P2*SIN(B1)*COS(A1)\Y1=P2*SIN(B1)*SIN(A1)\Z1=P2*COS(B1) 28 | 510 D=((X1-X)^2+(Y1-Y)^2+(Z1-Z)^2)^(1/2) 29 | 520 IF D>20 THEN 670 30 | 530 PRINT\PRINT " * * * HIT * * * TARGET IS NON-FUNCTIONAL"\PRINT 31 | 550 PRINT "DISTANCE OF EXPLOSION FROM TARGET WAS"D"KILOMETERS" 32 | 570 PRINT\PRINT "MISSION ACCOMPLISHED IN"R"SHOTS." 33 | 580 R=0\FOR I=1 TO 5\PRINT\NEXT I\PRINT "NEXT TARGET...."\PRINT\GOTO 220 34 | 670 X2=X1-X\Y2=Y1-Y\Z2=Z1-Z\IF X2<0 THEN 730 35 | 710 PRINT "SHOT IN FRONT OF TARGET"X2"KILOMETERS,"\GOTO 740 36 | 730 PRINT "SHOT BEHIND TARGET";-X2"KILOMETERS." 37 | 740 IF Y2<0 THEN 770 38 | 750 PRINT "SHOT TO LEFT OF TARGET"Y2"KILOMETERS,"\GOTO 780 39 | 770 PRINT "SHOT TO RIGHT OF TARGET";-Y2"KILOMETERS." 40 | 780 IF Z2<0 THEN 810 41 | 790 PRINT "SHOT ABOVE TARGET"Z2"KILOMETERS,"\GOTO 8220 42 | 810 PRINT "SHOT BELOW TARGET";-Z2"KILOMETERS." 43 | 820 PRINT "APPROX POSITION OF EXPLOSION: X="X1" Y="Y1" Z="Z1 44 | 830 PRINT " DISTANCE FROM TARGET ="D\PRINT\PRINT\PRINT\GOTO 345 45 | 999 END -------------------------------------------------------------------------------- /tictac.bas: -------------------------------------------------------------------------------- 1 | 130 PRINT"YOU HAVE THE OPPORTUNITY OF TRYING TO BEAT THE COMPUTER" 2 | 130 PRINT"AT TIC-TAC-TOE. ENTER YOUR MOVES AS FOLLOWS:" 3 | 140 PRINT 4 | 150 DIM C(11) 5 | 160 DIM D(11) 6 | 170 FOR K=1 TO 11 7 | 180 READ C(K), D(K) 8 | 190 NEXT K 9 | 200 PRINT "...ROW NUMBER...COMMA...COLUMN NUMBER..." 10 | 210 PRINT 11 | 220 PRINT"ROWS ARE HORIZONTAL(ACROSS)...COLUMNS ARE VERTICAL(UP + DOWN)" 12 | 230 DIM B(9) 13 | 240 DIM A(3,3) 14 | 250 PRINT 15 | 260 PRINT "NEW GAME STARTED NOW..........................." 16 | 270 FOR J=1 TO 3 17 | 280 FOR I=1 TO 3 18 | 290 LET A(I,J)=0 19 | 300 NEXT I 20 | 301 LET I=I-1 21 | 310 NEXT J 22 | 311 LET J=J-1 23 | 320 LET Z = 0 24 | 330 PRINT "YOUR MOVE", 25 | 340 INPUT R,C 26 | 350 PRINT 27 | 360 IF R>3 THEN 620 28 | 370 IF C>3 THEN 620 29 | 380 IF A(R,C) <> 0 THEN 620 30 | 390 LET A(R,C)=-1 31 | 400 GOSUB 1660 32 | 410 IF Z =1 THEN 2070 33 | 420 REM MACHINE MOVE... 34 | 430 GOSUB 1100 35 | 440 REM TEST FOR GAME WIN... 36 | 450 GOSUB 1660 37 | 460 IF Z=0 THEN 650 38 | 470 REM PRINT GAME BOARD... 39 | 480 GO TO 490 40 | 490 PRINT 41 | 42 | 500 FOR K=1 TO 3 43 | 510 LET B=A(K,1) 44 | 520 LET D=A(K,2) 45 | 530 LET F=A(K,3) 46 | 540 GOSUB 840 47 | 550 IF K>2 THEN 570 48 | 560 PRINT "***************" 49 | 570 NEXT K 50 | 571 LET K=K-1 51 | 580 PRINT 52 | 590 IF Z <>0 THEN 2070 53 | 600 GO TO 330 54 | 610 STOP 55 | 620 PRINT "---- ILLEGAL MOVE -- TRY AGAIN ----" 56 | 630 PRINT 57 | 640 GO TO 330 58 | 650LET T2=0 59 | 660 FOR J=1 TO 3 60 | 670 FOR I=1 TO 3 61 | 680 IF A(I,J)<>0 THEN 700 62 | 690 LET T2=T2+1 63 | 700 NEXT I 64 | 701 LET I=I-1 65 | 710 NEXT J 66 | 711 LET J=J-1 67 | 720 IF T2<>0 THEN 750 68 | 730 GOSUB 1340 69 | 740 GO TO 480 70 | 750 IF T2>1 THEN 480 71 | 760 FOR J=1 TO 8 72 | 770 IF B(J)=-2 THEN 800 73 | 780 NEXT J 74 | 781 LET J=J-1 75 | 790 GO TO 730 76 | 800 GOSUB 2000 77 | 810 GO TO 480 78 | 820 REM PRINT TIC-TAC-TOE BOARD ROW..... 79 | 830 REM 80 | 840 IF B<>0 THEN 910 81 | 850 PRINT " * "; 82 | 860 IF D<>0 THEN 940 83 | 870 PRINT " * "; 84 | 880 IF F<>0 THEN 970 85 | 890 PRINT " " 86 | 900 GO TO 1070 87 | 910 IF B>0 THEN 1000 88 | 920 PRINT "YOU * "; 89 | 930 GO TO 860 90 | 940 IF D>0 THEN 1020 91 | 950 PRINT "YOU * "; 92 | 960 GO TO 880 93 | 970 IF F>0 THEN 1040 94 | 980 PRINT "YOU" 95 | 990 GO TO 900 96 | 1000 PRINT"PDP * "; 97 | 1010 GO TO 860 98 | 1020 PRINT "PDP * "; 99 | 1030 GO TO 880 100 | 1040 PRINT "PDP" 101 | 1050 GO TO900 102 | 1060 REM PRINT LEGENDS.. 103 | 1070 PRINT " * * " 104 | 1080 RETURN 105 | 1090 REM PROGRAM TO MAKE MOVE FOR THE MACHINE.... 106 | 1100 LET M=INT(3.33*RND(M)) 107 | 1110 LET N=INT(3.33333*RND(N)) 108 | 1120 IF M=0 THEN 1100 109 | 1130 IF M>3 THEN 1100 110 | 1140 IF N=0 THEN 1110 111 | 1150 IF N>3 THEN 1110 112 | 1160 LET C(2)=M 113 | 1170 LET D(2)=N 114 | 1180 LET C(3)=N 115 | 1190 LET D(3)=M 116 | 1200 FOR I=1 TO 8 117 | 1210 IF B(I)>1 THEN 1370 118 | 1220 NEXT I 119 | 1221 LET I=I-1 120 | 1230 FOR I=1 TO 8 121 | 1240 IF B(I)<-1 THEN 1370 122 | 1250 NEXT I 123 | 1251 LET I=I-1 124 | 1260 IF R+C=0 THEN 1550 125 | 1270 FOR K=1 TO 11 126 | 1280 LET I=C(K) 127 | 1290 LET J=D(K) 128 | 1300 IF A(I,J)<>0 THEN 1330 129 | 1310 LET A(I,J)=1 130 | 1320 GO TO 1360 131 | 1330 NEXT K 132 | 1331 LET K=K-1 133 | 1340 PRINT " ... TIE GAME ... " 134 | 1350 LET Z=3 135 | 1360 RETURN 136 | 1370 IF I>3 THEN 1440 137 | 1380 FOR J=1 TO 3 138 | 1390 IF A(I,J)=0 THEN 1420 139 | 1400 NEXT J 140 | 1401 LET J=J-1 141 | 1410 GO TO 1360 142 | 1420 LET A(I,J)=1 143 | 1430 GO TO 1360 144 | 1440 IF I>6 THEN 1510 145 | 1450 FOR J=1 TO 3 146 | 1460 IF A(J,I-3)=0 THEN 1490 147 | 1470 NEXT J 148 | 1471 LET J=J-1 149 | 1480 GO TO 1360 150 | 1490 LET A(J,I-3)=1 151 | 1500 GO TO 1360 152 | 1510 IF I>7 THEN 1550 153 | 1520 FOR J=1 TO 3 154 | 1530 IF A(J,J)=0 THEN 1590 155 | 1540 NEXT J 156 | 1541 LET J=J-1 157 | 1550 IF A(1,3)=0 THEN 1610 158 | 1560 IF A(3,1)=0 THEN 1630 159 | 1570 LET A(2,2)=1 160 | 1580 GO TO 1360 161 | 1590 LET A(J,J)=1 162 | 1600 GO TO 1360 163 | 1610 LET A(1,3)=1 164 | 1620 GO TO 1360 165 | 1630 LET A(3,1)=1 166 | 1640 GO TO 1360 167 | 1650 REM PROGRAM TO TEST FOR GAME WINNER.... 168 | 1660 LET T1=0 169 | 1670 FOR J=1 TO 9 170 | 1680 LET B(J)=0 171 | 1690 NEXT J 172 | 1691 LET J=J-1 173 | 1700 FOR J=1 TO 3 174 | 1710 FOR I=1 TO 3 175 | 1720 IF A(J,1)<>A(J,I) THEN 1750 176 | 1730 NEXT I 177 | 1731 LET I=I-1 178 | 1740 LET T1=A(J,I) 179 | 1750 NEXT J 180 | 1751 LET J=J-1 181 | 1760 FOR J=1 TO 3 182 | 1770 FOR I=1 TO 3 183 | 1780 IF A(1,J)<>A(I,J) THEN 1810 184 | 1790 NEXT I 185 | 1791 LET I=I-1 186 | 1800 LET T1=A(I,J) 187 | 1810 NEXT J 188 | 1811 LET J=J-1 189 | 1820 IF A(1,1)=A(3,3) THEN 1930 190 | 1830 IF A(3,1)=A(1,3) THEN 1970 191 | 1840 IF T1<>0 THEN 1990 192 | 1850 FOR J=1 TO 3 193 | 1860 FOR I=1 TO 3 194 | 1870 LET B(J)=B(J)+A(J,I) 195 | 1880 LET B(J+3)=B(J+3)+A(I,J) 196 | 1890 NEXT I 197 | 1891 LET I=I-1 198 | 1900 NEXT J 199 | 1901 LET J=J-1 200 | 1910 LET B(7)=A(1,1)+A(2,2)+A(3,3) 201 | 1920 RETURN 202 | 1930 IF A(2,2)=A(3,3) THEN 1950 203 | 1940 GO TO 1830 204 | 1950 LET T1=A(2,2) 205 | 1960 GO TO 1840 206 | 1970 IF A(2,2)=A(1,3) THEN 1950 207 | 1980 GO TO 1840 208 | 1990 IF T1>0 THEN 2030 209 | 2000 PRINT " ...YOU WIN THIS TIME..." 210 | 2010 LET Z=1 211 | 2020 GO TO 1850 212 | 2030 PRINT " ... THE PDP-8 WINS THIS TIME ..." 213 | 2040 LET Z=2 214 | 2050 GO TO 1850 215 | 2060 REM END OF TEST WINNER PROGRAM...... 216 | 2070 PRINT "DO YOU WANT TO PLAY ANOTHER GAME: YES(1), NO(0)", 217 | 2080 INPUT X1 218 | 2090 IF X1 = 1 THEN 250 219 | 2100 IF X1 = 0 THEN 2130 220 | 2110 PRINT "I SAID ONE OR ZERO: TRY AGAIN", 221 | 2120 GO TO 2080 222 | 2130 PRINT"IT'S BEEN FUN, COME AGAIN SOMETIME" 223 | 2140 GO TO 2160 224 | 2150 DATA 2,2,0,0,0,1,1,3,3,1,3,3,1,1,2,3,2,2,3,2,1 225 | 2160 CHAIN "DEMON " 226 | 2170 END -------------------------------------------------------------------------------- /tower.bas: -------------------------------------------------------------------------------- 1 | 90 PRINT 2 | 100 REM *** INITIALIZE 3 | 110 DIM T(7,3) 4 | 120 Z=0 5 | 130 FOR D=1 TO 7 6 | 140 FOR N=1 TO 3 7 | 150 T(D,N)=0 8 | 160 NEXT N 9 | 170 NEXT D 10 | 180 PRINT "TOWERS OF HANOI PUZZLE"\PRINT 11 | 200 PRINT "YOU MUST TRANSFER THE DISKS FROM THE LEFT TO THE RIGHT" 12 | 205 PRINT "TOWER, ONE AT A TIME, NEVER PUTTING A LARGER ON A" 13 | 210 PRINT "SMALLER DISK."\PRINT 14 | 215 PRINT "HOW MANY DISKS DO YOU WANT TO MOVE (7 IS MAX)"; 15 | 220 INPUT S\PRINT 16 | 230 M=0 17 | 240 FOR Q=1 TO 7 18 | 250 IF Q>S THEN 350 19 | 260 NEXT Q 20 | 270 E=E+1 21 | 280 IF E>2 THEN 310 22 | 290 PRINT "SORRY, BUT I CAN'T DO THAT JOB FOR YOU "\GOTO 215 23 | 300 PRINT "ALRIGHT, WISE GUY. IF YOU CAN'T PLAY THE GAME RIGHT, I'LL" 24 | 310 PRINT "JUST TAKE MY PUZZLE AND GO HOME. SO LONG."\STOP 25 | 340 REM *** STORE DISKS FROM SMALLEST TO LARGEST 26 | 350 PRINT "IN THIS PROGRAM, WE SHALL REFER TO DISKS BY A NUMERICAL CODE." 27 | 355 PRINT "3 WILL REPRESENT THE SMALLEST DISK, 5 THE NEXT SIZE, 7 THE NEXT," 28 | 360 PRINT "AND SO ON. UP TO 15. IF YOU DO THE PUZZLE WITH 2 DISKS, THEIR" 29 | 365 PRINT "CODE NAMES WOULD BE 13 AND 15. WITH THREE DISKS, THE CODE" 30 | 370 PRINT "NAMES WOULD BE 11, 13, AND 15. ETC. THE NEEDLES ARE" 31 | 375 PRINT "NUMBERED FROM LEFT TO RIGHT, 1 TO 3. WE WILL START WITH THE" 32 | 380 PRINT "DISKS ON NEEDLE 1, AND ATTEMPT TO MOVE THEM TO NEEDLE 3." 33 | 390 PRINT\PRINT "GOOD LUCK!!!"\PRINT 34 | 400 Y=7\D=15 35 | 420 FOR X=S TO 1 STEP -1 36 | 430 T(Y,1)=D\D=D-2\Y=Y-1 37 | 460 NEXT X 38 | 470 GOSUB 1230 39 | 480 PRINT "WHICH DISK WOULD YOU LIKE TO MOVE";\E=0 40 | 500 INPUT D 41 | 510 IF (D-3)*(D-5)*(D-7)*(D-9)*(D-11)*(D-13)*(D-15)=0 THEN 580 42 | 520 PRINT "ILLEGAL ENTRY... YOU MAY ONLY TYPE 3,5,7,9,11,13, OR 15." 43 | 530 E=E+1\IF E>1 THEN 560 44 | 550 GOTO 500 45 | 560 PRINT\PRINT "STOP WASTING MY TIME. GO BOTHER SOMEONE ELSE."\STOP 46 | 580 REM *** CHECK IF REQUESTED DISK IS BELOW ANOTHER 47 | 590 FOR R=1 TO 7 48 | 600 FOR C=1 TO 3 49 | 610 IF T(R,C)=D THEN 640 50 | 620 NEXT C\NEXT R 51 | 640 FOR Q=R TO 1 STEP -1 52 | 645 IF T(Q,C)=0 THEN 660 53 | 650 IF T(Q,C)1 THEN 780 62 | 750 PRINT "I'LL ASSUME YOU HIT THE WRONG KEY THIS TIME. BUT WATCH IT." 63 | 760 PRINT "I ONLY ALLOW ONE MISTAKE."\GOTO 705 64 | 780 PRINT "I TRIED TO WARN YOU, BUT YOU WOULDN'T LISTEN." 65 | 790 PRINT "BYE, BYE, BIG SHOT."\STOP 66 | 795 REM *** LOCATE DISK TO BE MOVED 67 | 800 FOR R=1 TO ? 68 | 810 IF T(R,N)<>0 THEN 840 69 | 820 NEXT R 70 | 830 GOTO 880 71 | 835 REM *** CHECK IF DISK TO BE PLACED ON A LARGER ONE 72 | 840 IF D(T(R,N)) THEN 880 73 | 850 PRINT "YOU CAN'T PLACE A LARGER DISK ON TOP OF A SMALLER ONE." 74 | 860 PRINT "IT MIGHT CRUSH IT!"\PRINT "NOW THEN, ";\GOTO 480 75 | 875 REM *** RELOCATE MOVED DISK 76 | 880 FOR V=1 TO ?\FOR W=1 TO 3 77 | 900 IF T(V,W)=D THEN 930 78 | 910 NEXT W\NEXT V 79 | 925 REM *** LOCATE FIRST EMPTY SPACE ON NEEDLE N 80 | 930 FOR U=1 TO ? 81 | 940 IF T(U,N)<>0 THEN 970 82 | 950 NEXT U 83 | 960 GOTO 980 84 | 965 REM *** MOVE DISK AND SET OLD LOCATION TO 0 85 | 970 U=U-1 86 | 980 T(U,N)=T(V,W)\T(V,W)=0 87 | 995 REM *** PRINT OUT CURRENT STATUS 88 | 1000 GOSUB 1230 89 | 1010 REM *** CHECK IF DONE 90 | 1020 M=M+1 91 | 1030 FOR R=1 TO ?\FOR C=1 TO 2 92 | 1050 IF T(R,C)<>0 THEN 1090 93 | 1060 NEXT C\NEXT R 94 | 1080 GOTO 1120 95 | 1090 IF M<=128 THEN 480 96 | 1100 PRINT "SORRY, BUT I HAVE ORDERS TO STOP IF YOU MAKE MORE THAN" 97 | 1110 PRINT "128 MOVES."\STOP 98 | 1120 IF M<>2^S-1 THEN 1140 99 | 1130 PRINT "CONGRATULATIONS!! "; 100 | 1140 PRINT "YOU HAVE PERFORMED THE TASK IN"M"MOVES." 101 | 1150 PRINT\PRINT "TRY ANOTHER ONE (YES OR NO)";\INPUT A$ 102 | 1160 IF A$="NO" THEN 1390 103 | 1170 IF A$="YES" THEN 90 104 | 1180 PRINT\PRINT "'YES' OR 'NO' PLEASE";\INPUT A$\GOTO 1160 105 | 1230 REM *** PRINT SUBROUTINE 106 | 1240 FOR K=1 TO ? 107 | 1250 Z=10 108 | 1260 FOR J=1 TO 3 109 | 1270 IF T(K,J)=0 THEN 1330 110 | 1280 PRINT TAB(Z-INT(T(K,J)/2)); 111 | 1290 FOR V=1 TO T(K,J) 112 | 1300 PRINT "*"; 113 | 1310 NEXT V 114 | 1320 GOTO 1340 115 | 1330 PRINT TAB(Z);"*"; 116 | 1340 Z=Z+21 117 | 1350 NEXT J 118 | 1360 PRINT 119 | 1370 NEXT K 120 | 1380 RETURN 121 | 1390 PRINT\PRINT "THANKS FOR THE GAME!"\PRINT\END 122 | 123 | -------------------------------------------------------------------------------- /train.bas: -------------------------------------------------------------------------------- 1 | 4 PRINT "TIME - SPEED - DISTANCE EXERCISE"\PRINT 2 | 5 RANDOMIZE 3 | 10 C=INT(RND*25)+40 4 | 15 D=INT(RND*15)+5 5 | 20 T=INT(RND*19)+20 6 | 25 PRINT " A CAR TRAVELING"C"MPH CAN MAKE A CERTAIN TRIP IN" 7 | 30 PRINT D"HOURS LESS THAN A TRAIN TRAVELING AT"T"MPH." 8 | 35 PRINT "HOW LONG DOES THE TRIP TAKE BY CAR"; 9 | 40 INPUT A 10 | 45 V=D*T/(C-T) 11 | 50 E=INT(ABS((V-A)*100)/A)+.5) 12 | 55 IF E>5 THEN 70 13 | 60 PRINT "GOOD! ANSWER WITHIN"E"PERCENT." 14 | 65 GOTO 80 15 | 70 PRINT "SORRY. YOU WERE OFF BY"E"PERCENT." 16 | 80 PRINT "CORRECT ANSWER IS"V"HOURS." 17 | 90 PRINT 18 | 95 PRINT "ANOTHER PROBLEM (YES OR NO)" 19 | 100 INPUT A$\PRINT 20 | 105 IF A$="YES" THEN 10 21 | 999 END 22 | -------------------------------------------------------------------------------- /trap.bas: -------------------------------------------------------------------------------- 1 | 10 G=6 2 | 20 N=100 3 | 30 REM-TRAP 4 | 40 REM-STEVE ULLMAN, 8-1-73 5 | 50 PRINT "WANT INSTRUCTIONS (1 FOR YES)"; 6 | 60 INPUT Z 7 | 70 IF Z<>1 THEN 180 8 | 80 PRINT "I AM THINKING OF A NUMBER BETWEEN 1 AND";N 9 | 90 PRINT "TRY TO GUESS MY NUMBER. ON EACH GUESS," 10 | 100 PRINT "YOU ARE TO ENTER 2 NUMBERS. TRYING TO TRAP" 11 | 110 PRINT "MY NUMBER BETWEEN THE TWO NUMBERS. I WILL" 12 | 120 PRINT "TELL YOU IF YOU HAVE TRAPPED MY NUMBER. IF MY" 13 | 130 PRINT "NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF" 14 | 140 PRINT "MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS." 15 | 150 PRINT "IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE" 16 | 160 PRINT "YOUR GUESS FOR BOTH YOUR TRAP NUMBERS." 17 | 170 PRINT "YOU GET";G;"GUESSES TO GET MY NUMBER." 18 | 180 X=INT(N*RND(0))+1 19 | 190 FOR Q=1 TO G 20 | 200 PRINT 21 | 210 PRINT "GUESS #";Q; 22 | 220 INPUT A,B 23 | 230 IF A<>B THEN 240 24 | 235 IF X=A THEN 400 25 | 240 IF A<=B THEN 260 26 | 250 GOSUB 360 27 | 260 IF X=A-2 THEN 60 23 | 55 GOTO 40 24 | 60 PRINT "X" 25 | 65 PRINT TAB(15)"X"; 26 | 70 D=1 27 | 75 D=D+1 28 | 80 PRINT "X"; 29 | 85 IF D=A-1 THEN 95 30 | 90 GOTO 75 31 | 95 PRINT "X)." 32 | 100 PRINT TAB(15)"X"; 33 | 105 D=1 34 | 110 D=D+1 35 | 115 PRINT "X"; 36 | 120 IF D>=A-2 THEN 130 37 | 125 GOTO 110 38 | 130 PRINT "X" 39 | 135 PRINT TAB(15)"X"; 40 | 140 E=E+1 41 | 150 PRINT "X";; 42 | 155 IF E=B-1 THEN 165 43 | 160 GOTO 140 44 | 165 PRINT "X" 45 | 170 PRINT TAB(15)"X"; 46 | 175 E=1 47 | 180 E=E+1 48 | 185 PRINT "X"; 49 | 190 IF E=B-1 THEN 205 50 | 200 GOTO 180 51 | 205 PRINT "X" 52 | 210 PRINT TAB(15)"X"; 53 | 215 E=1 54 | 220 E=E+1 55 | 225 PRINT "X"; 56 | 230 IF E=B-1 THEN 240 57 | 235 GOTO 220 58 | 240 PRINT "X" 59 | 245 PRINT TAB(15)"X"; 60 | 250 F=F+1 61 | 255 PRINT "X";; 62 | 260 IF F>=C-2 THEN 270 63 | 265 GOTO 250 64 | 270 PRINT "X" 65 | 275 PRINT TAB(15)"X"; 66 | 280 F=1 67 | 285 F=F+1 68 | 290 PRINT "X"; 69 | 295 IF F=C-1 THEN 305 70 | 300 GOTO 285 71 | 305 PRINT "X" 72 | 310 PRINT TAB(15)"X"; 73 | 315 F=1 74 | 316 GOTO 320 75 | 317 F=F+3 76 | 320 F=F+1 77 | 325 PRINT "X"; 78 | 327 IF F=? THEN 323 79 | 328 GOTO 331 80 | 329 PRINT "()"; 81 | 330 GOTO 317 82 | 331 IF F=C-1 THEN 340 83 | 335 GOTO 320 84 | 340 PRINT "X" 85 | 345 PRINT TAB(19)"XX XX" 86 | 350 PRINT TAB(18)"XX XX" 87 | 355 PRINT TAB(17)"XX. XX" 88 | 360 PRINT TAB(16)"XX XX" 89 | 365 PRINT TAB(15)"XX XX" 90 | 370 PRINT TAB(13)"XXXX XXXX" 91 | 380 PRINT\PRINT 92 | 385 IF BL(J) THEN 340 28 | 320 LET J=J-1 29 | 330 GO TO 350 30 | 340 NEXT K 31 | 350 NEXT J 32 | 360 LET P=P+1 33 | 370 LET M1=L(P) 34 | 380 LET P=P+1 35 | 390 LET M2=L(P) 36 | 400 PRINT 37 | 410 PRINT 38 | 420 PRINT "YOU: ";A$(M1), "COMPUTER: ";A$(M2), 39 | 430 LET N1=INT((M1-.5)/4) 40 | 440 LET N2=INT((M2-.5)/4) 41 | 450 IF N1>=N2 THEN 490 42 | 460 LET A1=A1+1 43 | 470 PRINT "COMPUTER WINS.^G^G^G^G^G YOU HAVE";B1;"; COMPUTER HAS";A1 44 | 480 GO TO 540 45 | 490 IF N1=N2 THEN 530 46 | 500 LET B1=B1+1 47 | 510 PRINT "YOU WIN. YOU HAVE";B1;"; COMPUTER HAS";A1 48 | 520 GO TO 540 49 | 530 PRINT "TIE. NO SCORE CHANGE."; 50 | 540 IF L(P+1)<>0 THEN 610 51 | 550 PRINT "DO YOU WANT TO CONTINUE"; 52 | 560 INPUT V$ 53 | 570 IF V$="YES" THEN 360 54 | 580 IF V$="NO" THEN 650 55 | 590 PRINT "YES OR NO, PLEASE. "; 56 | 600 GO TO 540 57 | 610 PRINT 58 | 620 PRINT 59 | 630 PRINT "YOU HAVE RUN OUT OF CARDS. FINAL SCORE: YOU--";B1; 60 | 640 PRINT "; COMPUTER--";A1 61 | 650 PRINT "THANKS FOR PLAYING. IT WAS FUN.^G^G" 62 | 660 DATA S-2,H-2,C-2,D-2,S-3,H-3,C-3,D-3,S-4,H-4,C-4,D-4,S-5,H-5,C-5 63 | 670 DATA D-5,S-6,H-6,C-6,D-6,S-7,H-7,C-7,D-7,S-8,H-8,C-8,D-8,S-9,H-9 64 | 680 DATA C-9,D-9,S-10,H-10,C-10,D-10,S-J,H-J,C-J,D-J,S-Q,H-Q,C-Q,D-Q 65 | 690 DATA S-K,H-K,C-K,D-K,S-A,H-A,C-A,D-A 66 | 700 END 67 | -------------------------------------------------------------------------------- /war2.bas: -------------------------------------------------------------------------------- 1 | 1 REM BOB DORES/WAR 2 | 2 PRI "I AM AT WAR WITH YOU." 3 | 4 PRI "WE HAVE 72000 SOLDIERS A PIECE." 4 | 5 PRI "DISTRIBUTE YOUR FORCES." 5 | 6 PRI ,"ME","YOU" 6 | 7 PRI"ARMY","30000", 7 | 8 INPUT A 8 | 9 PRI"NAVY","20000" 9 | 10 INPUT B 10 | 11 PRI"A.F.","22000" 11 | 12 INPUT C 12 | 13 IF A+B+C>72000 THEN 5 13 | 14 D=30000 14 | 15 E=20000 15 | 16 F=22000 16 | 17 PRI "YOU ATTACK FIRST. TYPE 1 FOR ARMY 2 FOR NAVY" 17 | 18 PRI "AND 3 FOR AIR FORCE." 18 | 19 INPUT Y 19 | 20 PRI "HOW MANY MEN" 20 | 21 INPUT X 21 | 22 IF X<0 THEN 20 22 | 23 ON Y GOTO 100,200,300 23 | 100 IF X>A THEN 20 24 | 105 IF XB THEN 20 35 | 210 IF XC THEN 20 51 | 310 IF XA THEN 1030 80 | 1610 IF TB THEN 1030 88 | 1710 IF TC THEN 1030 101 | 1810 IF T>F/2 THEN 1830 102 | 1820 GOT 1850 103 | 1830 PRI "MY NAVY AND AIR FORCE IN A COMBINED ATTACK LEFT" 104 | 1831 PRI "YOUR COUNTRY IN SHAMBLES." 105 | 1835 A=A/3 106 | 1837 B=B/3 107 | 1840 C=C/3 108 | 1845 GOTO 2000 109 | 1850 PRI "ONE OF YOUR PLANES CRASHED INTO MY HOUSE. I AM DEAD." 110 | 1851 PRI "MY COUNTRY FELL APART." 111 | 1860 GOTO 2010 112 | 2000 PRI 113 | 2001 PRI "FROM THE RESULTS OF BOTH OF YOUR ATTACKS," 114 | 2002 IF A+B+C>3/2*(D+E+F) THEN 2010 115 | 2005 IF A+B+C<2/3*(D+E+F) THEN 2015 116 | 2006 PRI"THE TREATY OF PARIS CONCLUDED THAT WE TAKE OUR" 117 | 2007 PRI"RESPECTIVE COUNTRIES, AND LIVE IN PEACE." 118 | 2008 GOTO 2020 119 | 2010 PRI "YOU WON, OH! SHUCKS!!!!!" 120 | 2012 GOTO 2020 121 | 2015 PRI "YOU LOST-I CONQUERED YOUR COUNTRY. IT SERVES YOU " 122 | 2016 PRI "RIGHT FOR PLAYING THIS STUPID GAME!!!" 123 | 2020 END 124 | 125 | -------------------------------------------------------------------------------- /wekday.bas: -------------------------------------------------------------------------------- 1 | 10 PRINT"" 2 | 120PRINT 3 | 124 LET Y1 = 1970 4 | 130 PRINT "ENTER TODAY'S DATE IN THIS FORM: MONTH, DAY, YEAR"; 5 | 140 INPUT M1,D1, 1 6 | 150 IF Y1>100 THEN 170 7 | 160 LET Y1 = Y1 + 1900 8 | 170 DEF FNA(A)=INT(A/4) 9 | 180 DIM T(12) 10 | 190 DEF FNB(A)=INT(A/7) 11 | 210 FOR I= 1 TO 12 12 | 220 READ T(I) 13 | 230 NEXT I 14 | 240 PRINT 15 | 241PRINT"THIS PROGRAM DEMONSTRATES PDP-11 BASIC AND ALSO GIVES " 16 | 242PRINT"FACTS ABOUT A DATE OF INTEREST TO YOU" 17 | 244 PRINT 18 | 245 PRINT"ENTER DATE OF BIRTH IN THIS FORM: MO,DAY,YEAR"; 19 | 250 INPUT M,D,Y 20 | 260 PRINT 21 | 270 IF Y - 75 >0 THEN 280 22 | 275 LET Y = Y+1900 23 | 280 LET I1 = INT((Y-1500)/100) 24 | 290 IF Y-1582<0 THEN 1300 25 | 300 LET A = I1*5+(I1+3)/4 26 | 310LET I2 = INT(A-FNB(A)*7) 27 | 320 LET Y2= INT(Y/100) 28 | 330 LET Y3 = INT(Y-Y2*100) 29 | 340 LET A = Y3/4+Y3+D+T(M)+I2 30 | 350 LET B = INT(A-FNB(A)*7)+1 31 | 360 IF M>2 THEN 470 32 | 370 IF Y3= 0 THEN 440 33 | 380 LET T1 = INT(Y-FNA(Y)*4) 34 | 390 IF T1<> 0 THEN 470 35 | 400 IF B <> 0 THEN 420 36 | 410 LET B = 6 37 | 420 LET B = B - 1 38 | 430 GOTO 470 39 | 440 LET A = I1 - 1 40 | 450 LET T1 = INT(A-FNA(A)*4) 41 | 460 IF T1 = 0 THEN 400 42 | 470 IF B <> 0 THEN 490 43 | 480 LET B = 7 44 | 490 IF (Y1*12+M1)-31*D1<(Y*12+M)*31+D THEN 550 45 | 500 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 530 46 | 510 PRINT M;"/";D;"/";Y;" WAS A "; 47 | 520 GOTO 570 48 | 530 PRINT M;"/";D;"/";Y;" IS A "; 49 | 540 GOTO 570 50 | 550 PRINT M;"/";D;"/";Y1" WILL BE A "; 51 | 570 IF B<>1 THEN 590 52 | 580 PRINT "SUNDAY" 53 | 590 IF B<>2 THEN 610 54 | 600 PRINT "MONDAY" 55 | 610 IF B<>3 THEN 630 56 | 620 PRINT "TUESDAY" 57 | 630 IF B<>4 THEN 650 58 | 640 PRINT "WEDNESDAY" 59 | 650 IF B<>5 THEN 670 60 | 660 PRINT "THURSDAY" 61 | 670 IF B<>6 THEN 690 62 | 680 GOTO 1250 63 | 690 IF B<>7 THEN 710 64 | 700 PRINT "SATURDAY" 65 | 710 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 1120 66 | 720 LET I5=Y1-Y 67 | 730 PRINT 68 | 740 LET I6=M1-M 69 | 750 LET I7=D1-D 70 | 760 IF I7>=0 THEN 790 71 | 770 LET I6=I6-1 72 | 780 LET I7=I7+30 73 | 790 IF I6>=0 THEN 820 74 | 800 LET I5=I5-1 75 | 810 LET I6=I6+12 76 | 820 IF I5<0 THEN 1310 77 | 830 IF I7<>0 THEN 850 78 | 835 IF I6<>0 THEN 850 79 | 840 PRINT "****HAPPY BIRTHDAY*****" 80 | 850 PRINT " "," ","YEARS","MONTHS","DAYS" 81 | 860 PRINT "YOUR AGE ",I5,I6,I7 82 | 870 LET A8= (I5*365)+(I6*30)+I7+INT(I6/2) 83 | 880 LET K5=I5 84 | 890 LET K6=I6 85 | 900 LET K7=I7 86 | 920 LET E=Y+65 87 | 940 LET F=.35 88 | 950 PRINT "YOU HAVE SLEPT ", 89 | 960 GOSUB 1370 90 | 970 LET F=.17 91 | 980 PRINT "YOU HAVE EATEN ", 92 | 990 GOSUB 1370 93 | 1000 LET F=.23 94 | 1010 IF K5 > 3 THEN 1040 95 | 1020 PRINT "YOU HAVE PLAYED ", 96 | 1030 GOTO 1080 97 | 1040 IF K5 > 9 THEN 1070 98 | 1050 PRINT "YOU HAVE PLAYED/STUDIED", 99 | 1060 GOTO 1080 100 | 1070 PRINT "YOU HAVE WORKED/STUDIED", 101 | 1080 GOSUB 1370 102 | 1090 PRINT "YOU HAVE RELAXED ",K5,K6,K7 103 | 1100 PRINT 104 | 1110 PRINT " ","**YOU MAY RETIRE IN";E;"**" 105 | 1120 PRINT 106 | 1130 PRINT "C ALCULATED BY THE BEST MINICOMPUTER TODAY - THE PDP-11" 107 | 1140 FOR Q=1 TO 2 108 | 1150 PRINT 109 | 1160 NEXT Q 110 | 1170 PRINT 111 | 1240 GOTO 240 112 | 1250 IF D=13 THEN 1280 113 | 1260 PRINT "FRIDAY " 114 | 1270 GOTO 710 115 | 1280 PRINT "FRIDAY THE THIRTEENTH@---BEWARE!" 116 | 1290 GOTO 710 117 | 1300 PRINT "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO MDLXPXII -" 118 | 1305 PRINT " THE CURRENT CALENDAR DID NOT EXIST BEFORE THAT YEAR." 119 | 1310 GOTO 1140 120 | 1330 DATA 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 121 | 1370 LET K1= INT(F*A8) 122 | 1380 LET I5 = INT(K1/365) 123 | 1390 LET K1 = K1-(I5*365) 124 | 1400 LET I6 = INT(K1/30) 125 | 1410 LET I7 = K1-(I6*30) 126 | 1420 LET K5 = K5-I5 127 | 1430 LET K6 = K6-I6 128 | 1440 LET K7 = K7-I7 129 | 1450 IF K7 >= 0 THEN 1480 130 | 1460 LET K7 = K7+30 131 | 1470 LET K6 = K6-1 132 | 1480 IF K6 > 0 THEN 1510 133 | 1490 LET K6 = K6+12 134 | 1500 LET K5 = K5-1 135 | 1510 PRINT I5, I6, I7 136 | 1520 RETURN 137 | 1530 IF K6 = 12 THEN 1550 138 | 1540 GOTO 1090 139 | 1550 LET K5 = K5+1 140 | 1560 LET K6=0 141 | 1570 GOTO 1090 142 | 1580 END 143 | -------------------------------------------------------------------------------- /word.bas: -------------------------------------------------------------------------------- 1 | 2 PRINT:PRINT:PRINT "PROGRAM 'WORD'" 2 | 3 REM *** WRITTEN BY CHRIS REID, LEXINGTON HS. CLASS OF '73 3 | 5 DIM S$(7),A(7),L(7),D(7),P(7) 4 | 10 PRINT:PRINT "I AM THINKING OF A WORD -- YOU GUESS IT. I WILL GIVE YOU" 5 | 15 PRINT "CLUES TO HELP YOU GET IT. GOOD LUCK!!":PRINT:PRINT 6 | 20 RANDOMIZE 7 | 30 PRINT:PRINT:PRINT "YOU ARE STARTING A NEW GAME..." 8 | 35 RESTORE 9 | 40 READ N 10 | 50 C=INT(RND*N+1) 11 | 60 FOR I=1 TO C 12 | 70 READ S$ 13 | 80 NEXT I 14 | 90 G=0 15 | 100 CHANGE S$ TO S 16 | 110 FOR I=1 TO 5 17 | 120 A(I)=45 18 | 130 NEXT I 19 | 140 FOR J=1 TO 5 20 | 144 P(J)=0 21 | 146 NEXT J 22 | 150 PRINT "GUESS A FIVE-LETTER WORD"; 23 | 160 INPUT L$ 24 | 170 G=G+1 25 | 172 IF L$="$" THEN 500 26 | 180 CHANGE L$ TO L 27 | 190 IF L(1)<65 THEN 300 28 | 200 IF L(0)<>5 THEN 400 29 | 205 M=0:Q=1 30 | 210 FOR I=1 TO 5 31 | 220 FOR J=1 TO 5 32 | 230 IF S(I)<>L(J) THEN 260 33 | 231 P(J)=L(J) 34 | 232 Q=0+1 35 | 233 IF I<>J THEN 250 36 | 240 A(J)=L(J) 37 | 250 M=M+1 38 | 260 NEXT J 39 | 265 NEXT I 40 | 270 A(0)=5 41 | 272 P(0)=M 42 | 275 CHANGE A TO A$ 43 | 277 CHANGE P TO P$ 44 | 280 PRINT "THERE WERE "M" MATCHES AND THE COMMON LETTERS WERE...",P$ 45 | 285 PRINT "FROM THE EXACT LETTER MATCHES, YOU KNOW...............",A$ 46 | 286 IF A$=S$ THEN 500 47 | 287 IF M>1 THEN 289 48 | 288 PRINT:PRINT "IF YOU GIVE UP, TYPE '?' FOR YOUR NEXT GUESS" 49 | 289 PRINT 50 | 290 GOTO 150 51 | 300 CHANGE S TO S$ 52 | 310 PRINT "THE SECRET WORD IS "S$":PRINT 53 | 320 GOTO 30 54 | 400 PRINT:PRINT "YOU MUST GUESS A 5-LETTER WORD. START AGAIN" 55 | 410 PRINT:G=G-1:GOTO 150 56 | 500 PRINT "YOU HAVE GUESSED THE WORD. IT TOOK "G"GUESSES!":PRINT 57 | 510 INPUT "WANT TO PLAY AGAIN";Q$ 58 | 520 IF Q$="YES" THEN 30 59 | 530 DATA 12,"DINKY","SMOKE","WATER","GRASS","TRAIN","MIGHT","FIRST" 60 | 540 DATA "CANDY","CHAMP","WOULD","CLUMP","DOPEY" 61 | 999 END -------------------------------------------------------------------------------- /zoop.bas: -------------------------------------------------------------------------------- 1 | 100PRINT\PRINT"READY"\"PRINT 2 | 110 INPUT $A\IF A=253 THEN 300\INPUT $B\IF B=253 THEN 300 3 | 120LETK=10*A+B 4 | 130IFK<>2313THEN140\PRINT"N NO FILE YOU BOOB"\GOTO100 5 | 140IFK<>2143THEN150\PRINT"TALOG TRY MONTGOMERY WARD'S"\GOTO100 6 | 150IFK<>2241THEN160\PRINT"STNH I DON'T FEEL LIKE IT"\GOTO100 7 | 160IFK<>2257THEN170\PRINT"W YES I'M QUITE NEW"\GOTO100 8 | 170IFK<>2274THEN190\PRINT"D I'M NOT THAT OLD, BUT I'M OLD ENOUGH!!!" 9 | 180GOTO100 10 | 190IFK<>2297THEN210\PRINT"NAME WHY? I LIKE MY NAME"\GOTO100 11 | 200IFK<>207THEN210\PRINT"NAME WHY? I LIKE MY NAME"\GOTO100 12 | 210IFK<>2157THEN220\PRINT"BUG GET A CAN OF RAID"\GOTO100 13 | 220IFK<>2322THEN230\PRINT"OP THE FUN IS JUST STARTING"\GOTO100 14 | 230IFK<>2303THEN240\PRINT"VE I DON'T LIKE BANKS"\GOTO100 15 | 240IFK<>2336THEN250\PRINT"SAVE O.K., THE WHOLE DEC TAPE"\CHAIN "ZOOP " 16 | 250IFK<>2305THEN260\PRINT"RATCH GOT AN ITCH?"\GOTO100 17 | 260IFK<>2166THEN270\PRINT"IT THIS IS NO NEWSPAPER"\GOTO100 18 | 270 INPUT $C\IF C=253 THEN 300 19 | 280IFC<>141THEN270 20 | 290PRINT\PRINT"WHAT???"\GOTO100 21 | 300 PRINT " WIPED OUT COMPLETELY!!!" 22 | 310 CHAIN "DEMON " 23 | 320END --------------------------------------------------------------------------------