diff --git a/dec/23MTCH.BAS b/dec/23MTCH.BAS new file mode 100644 index 0000000..6f3c1c1 --- /dev/null +++ b/dec/23MTCH.BAS @@ -0,0 +1,44 @@ +100 REM ***23 MATCHES +110 PRINT "LET'S PLAY 23 MATCHES. WE START WITH 23 MATCHES." +115 PRINT "YOU MOVE FIRST. YOU MAY TAKE 1,2 OR 3 MATCHES." +120 PRINT "THEN I MOVE...I MAY TAKE 1,2 OR 3 MATCHES." +125 PRINT "YOU MOVE, I MOVE AND SO ON. THE ONE WHO HAS TO" +130 PRINT "TAKE THE LAST MATCH LOSES." +135 PRINT "GOOD LUCK AND MAY THE BEST COMPUTER (HA HA) WIN." +140 PRINT +150 LET M=23 +200 REM ***THE HUMAN MOVES +205 PRINT +210 PRINT "THERE ARE NOW";M;"MATCHES." +215 PRINT +220 PRINT "HOW MANY DO YOU TAKE"; +230 INPUT H +240 IF H>M THEN 510 +250 IF H<>INT(H) THEN 510 +260 IF H<=0 THEN 510 +270 IF H>=4 THEN 510 +280 LET M=M-H +290 IF M=0 THEN 410 +300 REM ***THE COMPUTER MOVES +305 IF M=1 THEN 440 +310 LET R=M-4*INT(M/4) +320 IF R<>1 THEN 350 +330 LET C=INT(3*RND(0))+1 +340 GO TO 360 +350 LET C=(R+3)-4*INT((R+3)/4) +360 LET M=M-C +370 IF M=0 THEN 440 +375 PRINT +380 PRINT "I TOOK";C;"..."; +390 GO TO 210 +400 REM ***SOMEBODY WON (SEE LINES 290,305,370) +410 PRINT +420 PRINT "I WON!!! BETTER LUCK NEXT TIME." +430 GO TO 140 +440 PRINT +450 PRINT "O.K. SO YOU WON. LET'S PLAY AGAIN." +460 GO TO 140 +500 REM ***THE HUMAN CHEATED! (SEE LINES 240 THRU 270) +510 PRINT "YOU CHEATED! BUT I'LL GIVE YOU ANOTHER CHANCE." +520 GO TO 215 +999 END diff --git a/dec/3DPLOT.BAS b/dec/3DPLOT.BAS new file mode 100644 index 0000000..5ee6847 --- /dev/null +++ b/dec/3DPLOT.BAS @@ -0,0 +1,14 @@ +5 DEF FNA(Z)=30*EXP(-Z*Z/100) +100 PRINT +110 FOR X=-30 TO 30 STEP 1.5 +120 L=0 +130 Y1=5*INT(SQR(900-X*X)/5) +140 FOR Y=Y1 TO -Y1 STEP -5 +150 Z=INT(25+FNA(SQR(X*X+Y*Y))-.7*Y) +160 IF Z<=L THEN 190 +170 L=Z +180 PRINT TAB(Z)"*"; +190 NEXT Y +200 PRINT +210 NEXTX +300 END diff --git a/dec/TRAIN.BAS b/dec/TRAIN.BAS new file mode 100644 index 0000000..8762661 --- /dev/null +++ b/dec/TRAIN.BAS @@ -0,0 +1,21 @@ +4 PRINT "TIME - SPEED - DISTANCE EXERCISE"\PRINT +5 RANDOMIZE +10 C=INT(RND*25)+40 +15 D=INT(RND*15)+5 +20 T=INT(RND*19)+20 +25 PRINT " A CAR TRAVELING"C"MPH CAN MAKE A CERTAIN TRIP IN" +30 PRINT D"HOURS LESS THAN A TRAIN TRAVELING AT"T"MPH." +35 PRINT "HOW LONG DOES THE TRIP TAKE BY CAR"; +40 INPUT A +45 V=D*T/(C-T) +50 E=INT(ABS((V-A)*100/A)+.5) +55 IF E>5 THEN 70 +60 PRINT "GOOD! ANSWER WITHIN"E"PERCENT." +65 GOTO 80 +70 PRINT "SORRY. YOU WERE OFF BY"E"PERCENT." +80 PRINT "CORRECT ANSWER IS"V"HOURS." +90 PRINT +95 PRINT "ANOTHER PROBLEM (YES OR NO)"; +100 INPUT A$\PRINT +105 IF A$="YES" THEN 10 +999 END diff --git a/dec/TRAP.BAS b/dec/TRAP.BAS new file mode 100644 index 0000000..cbf79cb --- /dev/null +++ b/dec/TRAP.BAS @@ -0,0 +1,46 @@ +10 G=6 +20 N=100 +30 REM-TRAP +40 REM-STEVE ULLMAN, 8-1-72 +50 PRINT "WANT INSTRUCTIONS (1 FOR YES)"; +60 INPUT Z +70 IF Z<>1 THEN 180 +80 PRINT "I AM THINKING OF A NUMBER BETWEEN 1 AND";N +90 PRINT "TRY TO GUESS MY NUMBER. ON EACH GUESS," +100 PRINT "YOU ARE TO ENTER 2 NUMBERS, TRYING TO TRAP" +110 PRINT "MY NUMBER BETWEEN THE TWO NUMBERS. I WILL" +120 PRINT "TELL YOU IF YOU HAVE TRAPPED MY NUMBER, IF MY" +130 PRINT "NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF" +140 PRINT "MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS." +150 PRINT "IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE" +160 PRINT "YOUR GUESS FOR BOTH YOUR TRAP NUMBERS." +170 PRINT "YOU GET";G;"GUESSES TO GET MY NUMBER." +180 X=INT(N*RND(0))+1 +190 FOR Q=1 TO G +200 PRINT +210 PRINT "GUESS #";Q; +220 INPUT A,B +230 IF A<>B THEN 240 +235 IF X=A THEN 400 +240 IF A <=B THEB 260 +250 GOSUB 360 +260 IF XM THEN 510 + 250 IF H<>INT(H) THEN 510 + 260 IF H<=0 THEN 510 + 270 IF H>=4 THEN 510 + 280 LET M=M-H + 290 IF M=0 THEN 410 + 300 REM ***THE COMPUTER MOVES + 305 IF M=1 THEN 440 + 310 LET R=M-4*INT(M/4) + 320 IF R<>1 THEN 350 + 330 LET C=INT(3*RND(0))+1 + 340 GO TO 360 + 350 LET C=(R+3)-4*INT((R+3)/4) + 360 LET M=M-C + 370 IF M=0 THEN 440 + 375 PRINT + 380 PRINT "I TOOK";C;"..."; + 390 GO TO 210 + 400 REM ***SOMEBODY WON (SEE LINES 290,305,370) + 410 PRINT + 420 PRINT "I WON!!! BETTER LUCK NEXT TIME." + 430 GO TO 140 + 440 PRINT + 450 PRINT "O.K. SO YOU WON. LET'S PLAY AGAIN." + 460 GO TO 140 + 500 REM ***THE HUMAN CHEATED! (SEE LINES 240 THRU 270) + 510 PRINT "YOU CHEATED! BUT I'LL GIVE YOU ANOTHER CHANCE." + 520 GO TO 215 + 999 END diff --git a/port/3DPLOT.BAS b/port/3DPLOT.BAS new file mode 100644 index 0000000..891d02f --- /dev/null +++ b/port/3DPLOT.BAS @@ -0,0 +1,19 @@ + 5 DEF FNA(Z)=30*EXP(-Z*Z/100) + 10 ' DEF FNA(Z)=SQR(900.01-Z*Z)*.9-2 + 20 ' DEF FNA(Z)=30*(COS(Z/16))^2 + 30 ' DEF FNA(Z)=30-30*SIN(Z/18) + 40 ' DEF FNA(Z)=30*EXP(-COS(Z/16))-30 + 50 ' DEF FNA(Z)=30*SIN(Z/10) + 100 PRINT + 110 FOR X=-30 TO 30 STEP 1.5 + 120 L=0 + 130 Y1=5*INT(SQR(900-X*X)/5) + 140 FOR Y=Y1 TO -Y1 STEP -5 + 150 Z=INT(25+FNA(SQR(X*X+Y*Y))-.7*Y) + 160 IF Z<=L THEN 190 + 170 L=Z + 180 PRINT TAB(Z)"*"; + 190 NEXT Y + 200 PRINT + 210 NEXTX + 300 END diff --git a/port/TRAIN.BAS b/port/TRAIN.BAS new file mode 100644 index 0000000..da47d70 --- /dev/null +++ b/port/TRAIN.BAS @@ -0,0 +1,21 @@ + 4 PRINT "TIME - SPEED - DISTANCE EXERCISE"\PRINT + 5 RANDOMIZE + 10 C=INT(RND(1)*25)+40 + 15 D=INT(RND(1)*15)+5 + 20 T=INT(RND(1)*19)+20 + 25 PRINT " A CAR TRAVELING"C"MPH CAN MAKE A CERTAIN TRIP IN" + 30 PRINT D"HOURS LESS THAN A TRAIN TRAVELING AT"T"MPH." + 35 PRINT "HOW LONG DOES THE TRIP TAKE BY CAR"; + 40 INPUT A + 45 V=D*T/(C-T) + 50 E=INT(ABS((V-A)*100/A)+.5) + 55 IF E>5 THEN 70 + 60 PRINT "GOOD! ANSWER WITHIN"E"PERCENT." + 65 GOTO 80 + 70 PRINT "SORRY. YOU WERE OFF BY"E"PERCENT." + 80 PRINT "CORRECT ANSWER IS"V"HOURS." + 90 PRINT + 95 PRINT "ANOTHER PROBLEM (YES OR NO)"; + 100 INPUT A$\PRINT + 105 IF A$="YES" THEN 10 + 999 END diff --git a/port/TRAP.BAS b/port/TRAP.BAS new file mode 100644 index 0000000..e899f56 --- /dev/null +++ b/port/TRAP.BAS @@ -0,0 +1,47 @@ + 5 RANDOMIZE + 10 G=6 + 20 N=100 + 30 REM-TRAP + 40 REM-STEVE ULLMAN, 8-1-72 + 50 PRINT "WANT INSTRUCTIONS (1 FOR YES)"; + 60 INPUT Z + 70 IF Z<>1 THEN 180 + 80 PRINT "I AM THINKING OF A NUMBER BETWEEN 1 AND";N + 90 PRINT "TRY TO GUESS MY NUMBER. ON EACH GUESS," + 100 PRINT "YOU ARE TO ENTER 2 NUMBERS, TRYING TO TRAP" + 110 PRINT "MY NUMBER BETWEEN THE TWO NUMBERS. I WILL" + 120 PRINT "TELL YOU IF YOU HAVE TRAPPED MY NUMBER, IF MY" + 130 PRINT "NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF" + 140 PRINT "MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS." + 150 PRINT "IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE" + 160 PRINT "YOUR GUESS FOR BOTH YOUR TRAP NUMBERS." + 170 PRINT "YOU GET";G;"GUESSES TO GET MY NUMBER." + 180 X=INT(N*RND(0))+1 + 190 FOR Q=1 TO G + 200 PRINT + 210 PRINT "GUESS #";Q; + 220 INPUT A,B + 230 IF A<>B THEN 240 + 235 IF X=A THEN 400 + 240 IF A <=B THEB 260 + 250 GOSUB 360 + 260 IF X