mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2026-02-05 03:17:03 -08:00
add all BASIC source files and folders
This commit is contained in:
7
01 Acey Ducey/README.md
Normal file
7
01 Acey Ducey/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Acey Ducey
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=2
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
100
01 Acey Ducey/aceyducey.bas
Normal file
100
01 Acey Ducey/aceyducey.bas
Normal file
@@ -0,0 +1,100 @@
|
||||
10 PRINT TAB(26);"ACEY DUCEY CARD GAME"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
21 PRINT
|
||||
22 PRINT
|
||||
30 PRINT"ACEY-DUCEY IS PLAYED IN THE FOLLOWING MANNER "
|
||||
40 PRINT"THE DEALER (COMPUTER) DEALS TWO CARDS FACE UP"
|
||||
50 PRINT"YOU HAVE AN OPTION TO BET OR NOT BET DEPENDING"
|
||||
60 PRINT"ON WHETHER OR NOT YOU FEEL THE CARD WILL HAVE"
|
||||
70 PRINT"A VALUE BETWEEN THE FIRST TWO."
|
||||
80 PRINT"IF YOU DO NOT WANT TO BET, INPUT A 0"
|
||||
100 N=100
|
||||
110 Q=100
|
||||
120 PRINT "YOU NOW HAVE";Q;"DOLLARS."
|
||||
130 PRINT
|
||||
140 GOTO 260
|
||||
210 Q=Q+M
|
||||
220 GOTO 120
|
||||
240 Q=Q-M
|
||||
250 GOTO 120
|
||||
260 PRINT"HERE ARE YOUR NEXT TWO CARDS: "
|
||||
270 A=INT(14*RND(1))+2
|
||||
280 IF A<2 THEN 270
|
||||
290 IF A>14 THEN 270
|
||||
300 B=INT(14*RND(1))+2
|
||||
310 IF B<2 THEN 300
|
||||
320 IF B>14 THEN 300
|
||||
330 IF A>=B THEN 270
|
||||
350 IF A<11 THEN 400
|
||||
360 IF A=11 THEN 420
|
||||
370 IF A=12 THEN 440
|
||||
380 IF A=13 THEN 460
|
||||
390 IF A=14 THEN 480
|
||||
400 PRINT A
|
||||
410 GOTO 500
|
||||
420 PRINT"JACK"
|
||||
430 GOTO 500
|
||||
440 PRINT"QUEEN"
|
||||
450 GOTO 500
|
||||
460 PRINT"KING"
|
||||
470 GOTO 500
|
||||
480 PRINT"ACE"
|
||||
500 IF B<11 THEN 550
|
||||
510 IF B=11 THEN 570
|
||||
520 IF B=12 THEN 590
|
||||
530 IF B=13 THEN 610
|
||||
540 IF B=14 THEN 630
|
||||
550 PRINT B
|
||||
560 GOTO 650
|
||||
570 PRINT"JACK"
|
||||
580 GOTO 650
|
||||
590 PRINT"QUEEN"
|
||||
600 GOTO 650
|
||||
610 PRINT"KING"
|
||||
620 GOTO 650
|
||||
630 PRINT"ACE"
|
||||
640 PRINT
|
||||
650 PRINT
|
||||
660 INPUT"WHAT IS YOUR BET";M
|
||||
670 IF M<>0 THEN 680
|
||||
675 PRINT"CHICKEN!!"
|
||||
676 PRINT
|
||||
677 GOTO 260
|
||||
680 IF M<=Q THEN 730
|
||||
690 PRINT"SORRY, MY FRIEND, BUT YOU BET TOO MUCH."
|
||||
700 PRINT"YOU HAVE ONLY ";Q;" DOLLARS TO BET."
|
||||
710 GOTO 650
|
||||
730 C=INT(14*RND(1))+2
|
||||
740 IF C<2 THEN 730
|
||||
750 IF C>14 THEN 730
|
||||
760 IF C<11 THEN 810
|
||||
770 IF C=11 THEN 830
|
||||
780 IF C=12 THEN 850
|
||||
790 IF C=13 THEN 870
|
||||
800 IF C=14 THEN 890
|
||||
810 PRINT C
|
||||
820 GOTO 910
|
||||
830 PRINT"JACK"
|
||||
840 GOTO 910
|
||||
850 PRINT"QUEEN"
|
||||
860 GOTO 910
|
||||
870 PRINT"KING"
|
||||
880 GOTO 910
|
||||
890 PRINT "ACE"
|
||||
900 PRINT
|
||||
910 IF C>A THEN 930
|
||||
920 GOTO 970
|
||||
930 IF C>=B THEN 970
|
||||
950 PRINT"YOU WIN!!!"
|
||||
960 GOTO 210
|
||||
970 PRINT"SORRY, YOU LOSE"
|
||||
980 IF M<Q THEN 240
|
||||
990 PRINT
|
||||
1000 PRINT
|
||||
1010 PRINT"SORRY, FRIEND, BUT YOU BLEW YOUR WAD."
|
||||
1015 PRINT:PRINT
|
||||
1020 INPUT"TRY AGAIN (YES OR NO)";A$
|
||||
1025 PRINT:PRINT
|
||||
1030 IF A$="YES" THEN 110
|
||||
1040 PRINT"O.K., HOPE YOU HAD FUN!"
|
||||
1050 END
|
||||
7
02 Amazing/README.md
Normal file
7
02 Amazing/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Amazing
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=3
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
138
02 Amazing/amazing.bas
Normal file
138
02 Amazing/amazing.bas
Normal file
@@ -0,0 +1,138 @@
|
||||
10 PRINT TAB(28);"AMAZING PROGRAM"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT:PRINT
|
||||
100 INPUT "WHAT ARE YOUR WIDTH AND LENGTH";H,V
|
||||
102 IF H<>1 AND V<>1 THEN 110
|
||||
104 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN.":GOTO 100
|
||||
110 DIM W(H,V),V(H,V)
|
||||
120 PRINT
|
||||
130 PRINT
|
||||
140 PRINT
|
||||
150 PRINT
|
||||
160 Q=0:Z=0:X=INT(RND(1)*H+1)
|
||||
165 FOR I=1 TO H
|
||||
170 IF I=X THEN 173
|
||||
171 PRINT ".--";:GOTO 180
|
||||
173 PRINT ". ";
|
||||
180 NEXT I
|
||||
190 PRINT "."
|
||||
195 C=1:W(X,1)=C:C=C+1
|
||||
200 R=X:S=1:GOTO 260
|
||||
210 IF R<>H THEN 240
|
||||
215 IF S<>V THEN 230
|
||||
220 R=1:S=1:GOTO 250
|
||||
230 R=1:S=S+1:GOTO 250
|
||||
240 R=R+1
|
||||
250 IF W(R,S)=0 THEN 210
|
||||
260 IF R-1=0 THEN 530
|
||||
265 IF W(R-1,S)<>0 THEN 530
|
||||
270 IF S-1=0 THEN 390
|
||||
280 IF W(R,S-1)<>0 THEN 390
|
||||
290 IF R=H THEN 330
|
||||
300 IF W(R+1,S)<>0 THEN 330
|
||||
310 X=INT(RND(1)*3+1)
|
||||
320 ON X GOTO 790,820,860
|
||||
330 IF S<>V THEN 340
|
||||
334 IF Z=1 THEN 370
|
||||
338 Q=1:GOTO 350
|
||||
340 IF W(R,S+1)<>0 THEN 370
|
||||
350 X=INT(RND(1)*3+1)
|
||||
360 ON X GOTO 790,820,910
|
||||
370 X=INT(RND(1)*2+1)
|
||||
380 ON X GOTO 790,820
|
||||
390 IF R=H THEN 470
|
||||
400 IF W(R+1,S)<>0 THEN 470
|
||||
405 IF S<>V THEN 420
|
||||
410 IF Z=1 THEN 450
|
||||
415 Q=1:GOTO 430
|
||||
420 IF W(R,S+1)<>0 THEN 450
|
||||
430 X=INT(RND(1)*3+1)
|
||||
440 ON X GOTO 790,860,910
|
||||
450 X=INT(RND(1)*2+1)
|
||||
460 ON X GOTO 790,860
|
||||
470 IF S<>V THEN 490
|
||||
480 IF Z=1 THEN 520
|
||||
485 Q=1:GOTO 500
|
||||
490 IF W(R,S+1)<>0 THEN 520
|
||||
500 X=INT(RND(1)*2+1)
|
||||
510 ON X GOTO 790,910
|
||||
520 GOTO 790
|
||||
530 IF S-1=0 THEN 670
|
||||
540 IF W(R,S-1)<>0 THEN 670
|
||||
545 IF R=H THEN 610
|
||||
547 IF W(R+1,S)<>0 THEN 610
|
||||
550 IF S<>V THEN 560
|
||||
552 IF Z=1 THEN 590
|
||||
554 Q=1:GOTO 570
|
||||
560 IF W(R,S+1)<>0 THEN 590
|
||||
570 X=INT(RND(1)*3+1)
|
||||
580 ON X GOTO 820,860,910
|
||||
590 X=INT(RND(1)*2+1)
|
||||
600 ON X GOTO 820,860
|
||||
610 IF S<>V THEN 630
|
||||
620 IF Z=1 THEN 660
|
||||
625 Q=1:GOTO 640
|
||||
630 IF W(R,S+1)<>0 THEN 660
|
||||
640 X=INT(RND(1)*2+1)
|
||||
650 ON X GOTO 820,910
|
||||
660 GOTO 820
|
||||
670 IF R=H THEN 740
|
||||
680 IF W(R+1,S)<>0 THEN 740
|
||||
685 IF S<>V THEN 700
|
||||
690 IF Z=1 THEN 730
|
||||
695 Q=1:GOTO 830
|
||||
700 IF W(R,S+1)<>0 THEN 730
|
||||
710 X=INT(RND(1)*2+1)
|
||||
720 ON X GOTO 860,910
|
||||
730 GOTO 860
|
||||
740 IF S<>V THEN 760
|
||||
750 IF Z=1 THEN 780
|
||||
755 Q=1:GOTO 770
|
||||
760 IF W(R,S+1)<>0 THEN 780
|
||||
770 GOTO 910
|
||||
780 GOTO 1000
|
||||
790 W(R-1,S)=C
|
||||
800 C=C+1:V(R-1,S)=2:R=R-1
|
||||
810 IF C=H*V+1 THEN 1010
|
||||
815 Q=0:GOTO 260
|
||||
820 W(R,S-1)=C
|
||||
830 C=C+1
|
||||
840 V(R,S-1)=1:S=S-1:IF C=H*V+1 THEN 1010
|
||||
850 Q=0:GOTO 260
|
||||
860 W(R+1,S)=C
|
||||
870 C=C+1:IF V(R,S)=0 THEN 880
|
||||
875 V(R,S)=3:GOTO 890
|
||||
880 V(R,S)=2
|
||||
890 R=R+1
|
||||
900 IF C=H*V+1 THEN 1010
|
||||
905 GOTO 530
|
||||
910 IF Q=1 THEN 960
|
||||
920 W(R,S+1)=C:C=C+1:IF V(R,S)=0 THEN 940
|
||||
930 V(R,S)=3:GOTO 950
|
||||
940 V(R,S)=1
|
||||
950 S=S+1:IF C=H*V+1 THEN 1010
|
||||
955 GOTO 260
|
||||
960 Z=1
|
||||
970 IF V(R,S)=0 THEN 980
|
||||
975 V(R,S)=3:Q=0:GOTO 1000
|
||||
980 V(R,S)=1:Q=0:R=1:S=1:GOTO 250
|
||||
1000 GOTO 210
|
||||
1010 FOR J=1 TO V
|
||||
1011 PRINT "I";
|
||||
1012 FOR I=1 TO H
|
||||
1013 IF V(I,J)<2 THEN 1030
|
||||
1020 PRINT " ";
|
||||
1021 GOTO 1040
|
||||
1030 PRINT " I";
|
||||
1040 NEXT I
|
||||
1041 PRINT
|
||||
1043 FOR I=1 TO H
|
||||
1045 IF V(I,J)=0 THEN 1060
|
||||
1050 IF V(I,J)=2 THEN 1060
|
||||
1051 PRINT ": ";
|
||||
1052 GOTO 1070
|
||||
1060 PRINT ":--";
|
||||
1070 NEXT I
|
||||
1071 PRINT "."
|
||||
1072 NEXT J
|
||||
1073 END
|
||||
7
03 Animal/README.md
Normal file
7
03 Animal/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Animal
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=4
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
71
03 Animal/animal.bas
Normal file
71
03 Animal/animal.bas
Normal file
@@ -0,0 +1,71 @@
|
||||
10 PRINT TAB(32);"ANIMAL"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT: PRINT: PRINT
|
||||
40 PRINT "PLAY 'GUESS THE ANIMAL'"
|
||||
45 PRINT
|
||||
50 PRINT "THINK OF AN ANIMAL AND THE COMPUTER WILL TRY TO GUESS IT."
|
||||
60 PRINT
|
||||
70 DIM A$(200)
|
||||
80 FOR I=0 TO 3
|
||||
90 READ A$(I)
|
||||
100 NEXT I
|
||||
110 N=VAL(A$(0))
|
||||
120 REM MAIN CONTROL SECTION
|
||||
130 INPUT "ARE YOU THINKING OF AN ANIMAL";A$
|
||||
140 IF A$="LIST" THEN 600
|
||||
150 IF LEFT$(A$,1)<>"Y" THEN 120
|
||||
160 K=1
|
||||
170 GOSUB 390
|
||||
180 IF LEN(A$(K))=0 THEN 999
|
||||
190 IF LEFT$(A$(K),2)="\Q" THEN 170
|
||||
200 PRINT "IS IT A ";RIGHT$(A$(K),LEN(A$(K))-2);
|
||||
210 INPUT A$
|
||||
220 A$=LEFT$(A$,1)
|
||||
230 IF LEFT$(A$,1)="Y" THEN PRINT "WHY NOT TRY ANOTHER ANIMAL?": GOTO 120
|
||||
240 INPUT "THE ANIMAL YOU WERE THINKING OF WAS A ";V$
|
||||
250 PRINT "PLEASE TYPE IN A QUESTION THAT WOULD DISTINGUISH A"
|
||||
260 PRINT V$;" FROM A ";RIGHT$(A$(K),LEN(A$(K))-2)
|
||||
270 INPUT X$
|
||||
280 PRINT "FOR A ";V$;" THE ANSWER WOULD BE ";
|
||||
290 INPUT A$
|
||||
300 A$=LEFT$(A$,1): IF A$<>"Y" AND A$<>"N" THEN 280
|
||||
310 IF A$="Y" THEN B$="N"
|
||||
320 IF A$="N" THEN B$="Y"
|
||||
330 Z1=VAL(A$(0))
|
||||
340 A$(0)=STR$(Z1+2)
|
||||
350 A$(Z1)=A$(K)
|
||||
360 A$(Z1+1)="\A"+V$
|
||||
370 A$(K)="\Q"+X$+"\"+A$+STR$(Z1+1)+"\"+B$+STR$(Z1)+"\"
|
||||
380 GOTO 120
|
||||
390 REM SUBROUTINE TO PRINT QUESTIONS
|
||||
400 Q$=A$(K)
|
||||
410 FOR Z=3 TO LEN(Q$)
|
||||
415 IF MID$(Q$,Z,1)<>"\" THEN PRINT MID$(Q$,Z,1);: NEXT Z
|
||||
420 INPUT C$
|
||||
430 C$=LEFT$(C$,1)
|
||||
440 IF C$<>"Y" AND C$<>"N" THEN 410
|
||||
450 T$="\"+C$
|
||||
455 FOR X=3 TO LEN(Q$)-1
|
||||
460 IF MID$(Q$,X,2)=T$ THEN 480
|
||||
470 NEXT X
|
||||
475 STOP
|
||||
480 FOR Y=X+1 TO LEN(Q$)
|
||||
490 IF MID$(Q$,Y,1)="\" THEN 510
|
||||
500 NEXT Y
|
||||
505 STOP
|
||||
510 K=VAL(MID$(Q$,X+2,Y-X-2))
|
||||
520 RETURN
|
||||
530 DATA "4","\QDOES IT SWIM\Y2\N3\","\AFISH","\ABIRD"
|
||||
600 PRINT:PRINT "ANIMALS I ALREADY KNOW ARE:"
|
||||
605 X=0
|
||||
610 FOR I=1 TO 200
|
||||
620 IF LEFT$(A$(I),2)<>"\A" THEN 650
|
||||
624 PRINT TAB(15*X);
|
||||
630 FOR Z=3 TO LEN(A$(I))
|
||||
640 IF MID$(A$(I),Z,1)<>"\" THEN PRINT MID$(A$(I),Z,1);: NEXT Z
|
||||
645 X=X+1: IF X=4 THEN X=0: PRINT
|
||||
650 NEXT I
|
||||
660 PRINT
|
||||
670 PRINT
|
||||
680 GOTO 120
|
||||
999 END
|
||||
7
04 Awari/README.md
Normal file
7
04 Awari/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Awari
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=6
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
70
04 Awari/awari.bas
Normal file
70
04 Awari/awari.bas
Normal file
@@ -0,0 +1,70 @@
|
||||
5 PRINT TAB(34);"AWARI"
|
||||
7 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
10 DATA 0
|
||||
15 DIM B(13),G(13),F(50):READ N
|
||||
20 PRINT:PRINT:E=0
|
||||
25 FOR I=0 TO 12:B(I)=3:NEXT I
|
||||
30 C=0:F(N)=0:B(13)=0:B(6)=0
|
||||
35 GOSUB 500
|
||||
40 PRINT "YOUR MOVE";:GOSUB 110
|
||||
45 IF E=0 THEN 80
|
||||
50 IF M=H THEN GOSUB 100
|
||||
55 IF E=0 THEN 80
|
||||
60 PRINT "MY MOVE IS ";:GOSUB 800
|
||||
65 IF E=0 THEN 80
|
||||
70 IF M=H THEN PRINT ",";:GOSUB 800
|
||||
75 IF E>0 THEN 35
|
||||
80 PRINT:PRINT"GAME OVER"
|
||||
85 D=B(6)-B(13):IF D<0 THEN PRINT "I WIN BY";-D;"POINTS":GOTO 20
|
||||
90 N=N+1:IF D=0 THEN PRINT "DRAWN GAME":GOTO 20
|
||||
95 PRINT "YOU WIN BY";D;"POINTS":GOTO 20
|
||||
100 PRINT "AGAIN";
|
||||
110 INPUT M:IF M<7 THEN IF M>0 THEN M=M-1:GOTO 130
|
||||
120 PRINT "ILLEGAL MOVE":GOTO 100
|
||||
130 IF B(M)=0 THEN 120
|
||||
140 H=6:GOSUB 200
|
||||
150 GOTO 500
|
||||
200 K=M:GOSUB 600
|
||||
205 E=0:IF K>6 THEN K=K-7
|
||||
210 C=C+1:IF C<9 THEN F(N)=F(N)*6+K
|
||||
215 FOR I=0 TO 5:IF B(I)<>0 THEN 230
|
||||
220 NEXT I
|
||||
225 RETURN
|
||||
230 FOR I=7 TO 12:IF B(I)<>0 THEN E=1:RETURN
|
||||
235 GOTO 220
|
||||
500 PRINT:PRINT" ";
|
||||
505 FOR I=12 TO 7 STEP -1:GOSUB 580
|
||||
510 NEXT I
|
||||
515 PRINT:I=13:GOSUB 580
|
||||
520 PRINT " ";:PRINT B(6):PRINT " ";
|
||||
525 FOR I=0 TO 5:GOSUB 580
|
||||
530 NEXT I
|
||||
535 PRINT:PRINT:RETURN
|
||||
580 IF B(I)<10 THEN PRINT " ";
|
||||
585 PRINT B(I);:RETURN
|
||||
600 P=B(M):B(M)=0
|
||||
605 FOR P=P TO 1 STEP -1:M=M+1:IF M>13 THEN M=M-14
|
||||
610 B(M)=B(M)+1:NEXT P
|
||||
615 IF B(M)=1 THEN IF M<>6 THEN IF M<>13 THEN IF B(12-M)<>0 THEN 625
|
||||
620 RETURN
|
||||
625 B(H)=B(H)+B(12-M)+1:B(M)=0:B(12-M)=0:RETURN
|
||||
800 D=-99:H=13
|
||||
805 FOR I=0 TO 13:G(I)=B(I):NEXT I
|
||||
810 FOR J=7 TO 12:IF B(J)=0 THEN 885
|
||||
815 G=0:M=J:GOSUB 600
|
||||
820 FOR I=0 TO 5:IF B(I)=0 THEN 845
|
||||
825 L=B(I)+I:R=0
|
||||
830 IF L>13 THEN L=L-14:R=1:GOTO 830
|
||||
835 IF B(L)=0 THEN IF L<>6 THEN IF L<>13 THEN R=B(12-L)+R
|
||||
840 IF R>Q THEN Q=R
|
||||
845 NEXT I
|
||||
850 Q=B(13)-B(6)-Q:IF C>8 THEN 875
|
||||
855 K=J:IF K>6 THEN K=K-7
|
||||
860 FOR I=0 TO N-1:IF F(N)*6+K=INT(F(I)/6^(7-C)+.1) THEN Q=Q-2
|
||||
870 NEXT I
|
||||
875 FOR I=0 TO 13:B(I)=G(I):NEXT I
|
||||
880 IF Q>=D THEN A=J:D=Q
|
||||
885 NEXT J
|
||||
890 M=A:PRINT CHR$(42+M);:GOTO 200
|
||||
900 FOR I=0 TO N-1:PRINT B(I):NEXT I
|
||||
999 END
|
||||
7
05 Bagels/README.md
Normal file
7
05 Bagels/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bagels
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=9
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
81
05 Bagels/bagels.bas
Normal file
81
05 Bagels/bagels.bas
Normal file
@@ -0,0 +1,81 @@
|
||||
5 PRINT TAB(33);"BAGELS"
|
||||
10 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY":PRINT:PRINT
|
||||
15 REM *** BAGLES NUMBER GUESSING GAME
|
||||
20 REM *** ORIGINAL SOURCE UNKNOWN BUT SUSPECTED TO BE
|
||||
25 REM *** LAWRENCE HALL OF SCIENCE, U.C. BERKELY
|
||||
30 DIM A1(6),A(3),B(3)
|
||||
40 Y=0:T=255
|
||||
50 PRINT:PRINT:PRINT
|
||||
70 INPUT "WOULD YOU LIKE THE RULES (YES OR NO)";A$
|
||||
90 IF LEFT$(A$,1)="N" THEN 150
|
||||
100 PRINT:PRINT "I AM THINKING OF A THREE-DIGIT NUMBER. TRY TO GUESS"
|
||||
110 PRINT "MY NUMBER AND I WILL GIVE YOU CLUES AS FOLLOWS:"
|
||||
120 PRINT " PICO - ONE DIGIT CORRECT BUT IN THE WRONG POSITION"
|
||||
130 PRINT " FERMI - ONE DIGIT CORRECT AND IN THE RIGHT POSITION"
|
||||
140 PRINT " BAGELS - NO DIGITS CORRECT"
|
||||
150 FOR I=1 TO 3
|
||||
160 A(I)=INT(10*RND(1))
|
||||
165 IF I-1=0 THEN 200
|
||||
170 FOR J=1 TO I-1
|
||||
180 IF A(I)=A(J) THEN 160
|
||||
190 NEXT J
|
||||
200 NEXT I
|
||||
210 PRINT:PRINT "O.K. I HAVE A NUMBER IN MIND."
|
||||
220 FOR I=1 TO 20
|
||||
230 PRINT "GUESS #";I,
|
||||
240 INPUT A$
|
||||
245 IF LEN(A$)<>3 THEN 630
|
||||
250 FOR Z=1 TO 3:A1(Z)=ASC(MID$(A$,Z,1)):NEXT Z
|
||||
260 FOR J=1 TO 3
|
||||
270 IF A1(J)<48 THEN 300
|
||||
280 IF A1(J)>57 THEN 300
|
||||
285 B(J)=A1(J)-48
|
||||
290 NEXT J
|
||||
295 GOTO 320
|
||||
300 PRINT "WHAT?"
|
||||
310 GOTO 230
|
||||
320 IF B(1)=B(2) THEN 650
|
||||
330 IF B(2)=B(3) THEN 650
|
||||
340 IF B(3)=B(1) THEN 650
|
||||
350 C=0:D=0
|
||||
360 FOR J=1 TO 2
|
||||
370 IF A(J)<>B(J+1) THEN 390
|
||||
380 C=C+1
|
||||
390 IF A(J+1)<>B(J) THEN 410
|
||||
400 C=C+1
|
||||
410 NEXT J
|
||||
420 IF A(1)<>B(3) THEN 440
|
||||
430 C=C+1
|
||||
440 IF A(3)<>B(1) THEN 460
|
||||
450 C=C+1
|
||||
460 FOR J=1 TO 3
|
||||
470 IF A(J)<>B(J) THEN 490
|
||||
480 D=D+1
|
||||
490 NEXT J
|
||||
500 IF D=3 THEN 680
|
||||
505 IF C=0 THEN 545
|
||||
520 FOR J=1 TO C
|
||||
530 PRINT "PICO ";
|
||||
540 NEXT J
|
||||
545 IF D=0 THEN 580
|
||||
550 FOR J=1 TO D
|
||||
560 PRINT "FERMI ";
|
||||
570 NEXT J
|
||||
580 IF C+D<>0 THEN 600
|
||||
590 PRINT "BAGELS";
|
||||
600 PRINT
|
||||
605 NEXT I
|
||||
610 PRINT "OH WELL."
|
||||
615 PRINT "THAT'S TWNETY GUESSES. MY NUMBER WAS";100*A(1)+10*A(2)+A(3)
|
||||
620 GOTO 700
|
||||
630 PRINT "TRY GUESSING A THREE-DIGIT NUMBER.":GOTO 230
|
||||
650 PRINT "OH, I FORGOT TO TELL YOU THAT THE NUMBER I HAVE IN MIND"
|
||||
660 PRINT "HAS NO TWO DIGITS THE SAME.":GOTO 230
|
||||
680 PRINT "YOU GOT IT!!!":PRINT
|
||||
690 Y=Y+1
|
||||
700 INPUT "PLAY AGAIN (YES OR NO)";A$
|
||||
720 IF LEFT$(A$,1)="YES" THEN 150
|
||||
730 IF Y=0 THEN 750
|
||||
740 PRINT:PRINT "A";Y;"POINT BAGELS BUFF!!"
|
||||
750 PRINT "HOPE YOU HAD FUN. BYE."
|
||||
999 END
|
||||
7
06 Banner/README.md
Normal file
7
06 Banner/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Banner
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=10
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
94
06 Banner/banner.bas
Normal file
94
06 Banner/banner.bas
Normal file
@@ -0,0 +1,94 @@
|
||||
10 INPUT "HORIZONTAL";X
|
||||
20 INPUT "VERTICAL";Y
|
||||
21 INPUT "CENTERED";L$
|
||||
22 G1=0:IF L$>"P" THEN G1=1
|
||||
23 INPUT "CHARACTER (TYPE 'ALL' IF YOU WANT CHARACTER BEING PRINTED)";M$
|
||||
29 PRINT "STATEMENT";
|
||||
30 INPUT A$
|
||||
35 INPUT "SET PAGE";O$
|
||||
40 A=ASC(LEFT$(A$,1))
|
||||
50 REM
|
||||
60 REM
|
||||
70 FOR T=1 TO LEN(A$)
|
||||
80 P$=MID$(A$,T,1)
|
||||
90 FOR O=1 TO 50
|
||||
95 READ S$,S(1),S(2),S(3),S(4),S(5),S(6),S(7)
|
||||
96 IF P$=" " THEN 812
|
||||
100 IF P$=S$ THEN 200
|
||||
120 NEXT O
|
||||
200 RESTORE
|
||||
201 X$=M$
|
||||
202 IF M$="ALL" THEN X$=S$
|
||||
205 FOR U=1 TO 7
|
||||
210 FOR K=8 TO 0 STEP -1
|
||||
230 IF 2^K<S(U) THEN 270
|
||||
240 J(9-K)=0
|
||||
250 GOTO 280
|
||||
270 J(9-K)=1: S(U)=S(U)-2^K
|
||||
272 IF S(U)=1 THEN 815
|
||||
280 NEXT K
|
||||
445 FOR T1=1 TO X
|
||||
447 PRINT TAB((63-4.5*Y)*G1/(LEN(X$))+1);
|
||||
450 FOR B=1 TO F(U)
|
||||
460 IF J(B)=0 THEN 500
|
||||
465 FOR I=1 TO Y: PRINT X$;: NEXT I
|
||||
470 GOTO 600
|
||||
500 FOR I=1 TO Y
|
||||
510 FOR I1=1 TO LEN(X$)
|
||||
520 PRINT " ";: NEXT I1
|
||||
530 NEXT I
|
||||
600 NEXT B
|
||||
620 PRINT
|
||||
630 NEXT T1
|
||||
700 NEXT U
|
||||
750 FOR H=1 TO 2*X: PRINT: NEXT H
|
||||
800 NEXT T
|
||||
806 FOR H=1 TO 75: PRINT: NEXT H
|
||||
810 END
|
||||
812 FOR H=1 TO 7*X: PRINT: NEXT H
|
||||
813 GOTO 800
|
||||
815 F(U)=9-K: GOTO 445
|
||||
899 DATA " ",0,0,0,0,0,0,0
|
||||
900 DATA "A",505,37,35,34,35,37,505
|
||||
901 DATA "G",125,131,258,258,290,163,101
|
||||
902 DATA "E",512,274,274,274,274,258,258
|
||||
903 DATA "T",2,2,2,512,2,2,2
|
||||
904 DATA "W",256,257,129,65,129,257,256
|
||||
905 DATA "L",512,257,257,257,257,257,257
|
||||
906 DATA "S",69,139,274,274,274,163,69
|
||||
907 DATA "O",125,131,258,258,258,131,125
|
||||
908 DATA "N",512,7,9,17,33,193,512
|
||||
909 DATA "F",512,18,18,18,18,2,2
|
||||
910 DATA "K",512,17,17,41,69,131,258
|
||||
911 DATA "B",512,274,274,274,274,274,239
|
||||
912 DATA "D",512,258,258,258,258,131,125
|
||||
913 DATA "H",512,17,17,17,17,17,512
|
||||
914 DATA "M",512,7,13,25,13,7,512
|
||||
915 DATA "?",5,3,2,354,18,11,5
|
||||
916 DATA "U",128,129,257,257,257,129,128
|
||||
917 DATA "R",512,18,18,50,82,146,271
|
||||
918 DATA "P",512,18,18,18,18,18,15
|
||||
919 DATA "Q",125,131,258,258,322,131,381
|
||||
920 DATA "Y",8,9,17,481,17,9,8
|
||||
921 DATA "V",64,65,129,257,129,65,64
|
||||
922 DATA "X",388,69,41,17,41,69,388
|
||||
923 DATA "Z",386,322,290,274,266,262,260
|
||||
924 DATA "I",258,258,258,512,258,258,258
|
||||
925 DATA "C",125,131,258,258,258,131,69
|
||||
926 DATA "J",65,129,257,257,257,129,128
|
||||
927 DATA "1",0,0,261,259,512,257,257
|
||||
928 DATA "2",261,387,322,290,274,267,261
|
||||
929 DATA "*",69,41,17,512,17,41,69
|
||||
930 DATA "3",66,130,258,274,266,150,100
|
||||
931 DATA "4",33,49,41,37,35,512,33
|
||||
932 DATA "5",160,274,274,274,274,274,226
|
||||
933 DATA "6",194,291,293,297,305,289,193
|
||||
934 DATA "7",258,130,66,34,18,10,8
|
||||
935 DATA "8",69,171,274,274,274,171,69
|
||||
936 DATA "9",263,138,74,42,26,10,7
|
||||
937 DATA "=",41,41,41,41,41,41,41
|
||||
938 DATA "!",1,1,1,384,1,1,1
|
||||
939 DATA "0",57,69,131,258,131,69,57
|
||||
940 DATA ".",1,1,129,449,129,1,1
|
||||
1000 STOP
|
||||
1002 END
|
||||
7
07 Basketball/README.md
Normal file
7
07 Basketball/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Basketball
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=12
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
196
07 Basketball/basketball.bas
Normal file
196
07 Basketball/basketball.bas
Normal file
@@ -0,0 +1,196 @@
|
||||
5 PRINT TAB(31);"BASKETBALL"
|
||||
7 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
8 PRINT:PRINT:PRINT
|
||||
10 PRINT "THIS IS DARTMOUTH COLLEGE BASKETBALL. YOU WILL BE DARTMOUTH"
|
||||
20 PRINT " CAPTAIN AND PLAYMAKER. CALL SHOTS AS FOLLOWS: 1. LONG"
|
||||
30 PRINT " (30 FT.) JUMP SHOT; 2. SHORT (15 FT.) JUMP SHOT; 3. LAY"
|
||||
40 PRINT " UP; 4. SET SHOT."
|
||||
60 PRINT "BOTH TEAMS WILL USE THE SAME DEFENSE. CALL DEFENSE AS"
|
||||
70 PRINT "FOLLOWS: 6. PRESS; 6.5 MAN-TO MAN; 7. ZONE; 7.5 NONE."
|
||||
72 PRINT "TO CHANGE DEFENSE, JUST TYPE 0 AS YOUR NEXT SHOT."
|
||||
76 INPUT "YOUR STARTING DEFENSE WILL BE";D:IF D<6 THEN 2010
|
||||
79 PRINT
|
||||
80 INPUT "CHOOSE YOUR OPPONENT";O$
|
||||
370 PRINT "CENTER JUMP"
|
||||
390 IF RND(1)> 3/5 THEN 420
|
||||
400 PRINT O$;" CONTROLS THE TAP."
|
||||
410 GOTO 3000
|
||||
420 PRINT "DARTMOUTH CONTROLS THE TAP."
|
||||
425 PRINT
|
||||
430 INPUT "YOUR SHOT";Z
|
||||
440 P=0
|
||||
445 IF Z<>INT(Z) THEN 455
|
||||
446 IF Z<0 OR Z>4 THEN 455
|
||||
447 GOTO 460
|
||||
455 PRINT "INCORRECT ANSWER. RETYPE IT. ";:GOTO 430
|
||||
460 IF RND(1)<.5 THEN 1000
|
||||
480 IF T<100 THEN 1000
|
||||
490 PRINT
|
||||
491 IF S(1)<>S(0) THEN 510
|
||||
492 PRINT:PRINT " ***** END OF SECOND HALF *****":PRINT
|
||||
493 PRINT "SCORE AT END OF REGULATION TIME:"
|
||||
494 PRINT " DARTMOUTH:";S(1);" ";O$;":";S(0)
|
||||
495 PRINT
|
||||
496 PRINT "BEGIN TWO MINUTE OVERTIME PERIOD"
|
||||
499 T=93
|
||||
500 GOTO 370
|
||||
510 PRINT " ***** END OF GAME *****"
|
||||
515 PRINT "FINAL SCORE: DARTMOUTH:";S(1);" ";O$;":";S(0)
|
||||
520 STOP
|
||||
600 PRINT
|
||||
610 PRINT " *** TWO MINUTES LEFT IN THE GAME ***"
|
||||
620 PRINT
|
||||
630 RETURN
|
||||
1000 ON Z GOTO 1040,1040
|
||||
1030 GOTO 1300
|
||||
1040 T=T+1
|
||||
1041 IF T=50 THEN 8000
|
||||
1042 IF T=92 THEN 1046
|
||||
1043 GOTO 1050
|
||||
1046 GOSUB 600
|
||||
1050 PRINT "JUMP SHOT"
|
||||
1060 IF RND(1)>.341*D/8 THEN 1090
|
||||
1070 PRINT "SHOT IS GOOD."
|
||||
1075 GOSUB 7000
|
||||
1085 GOTO 3000
|
||||
1090 IF RND(1)>.682*D/8 THEN 1200
|
||||
1100 PRINT "SHOT IS OFF TARGET."
|
||||
1105 IF D/6*RND(1)>.45 THEN 1130
|
||||
1110 PRINT "DARTMOUTH CONTROLS THE REBOUND."
|
||||
1120 GOTO 1145
|
||||
1130 PRINT "REBOUND TO ";O$
|
||||
1140 GOTO 3000
|
||||
1145 IF RND(1)>.4 THEN 1158
|
||||
1150 GOTO 1300
|
||||
1158 IF D=6 THEN 5100
|
||||
1160 PRINT "BALL PASSED BACK TO YOU. ";
|
||||
1170 GOTO 430
|
||||
1180 IF RND(1)>.9 THEN 1190
|
||||
1185 PRINT "PLAYER FOULED, TWO SHOTS."
|
||||
1187 GOSUB 4000
|
||||
1188 GOTO 3000
|
||||
1190 PRINT "BALL STOLEN. ";O$;"'S BALL."
|
||||
1195 GOTO 3000
|
||||
1200 IF RND(1)>.782*D/8 THEN 1250
|
||||
1210 PRINT "SHOT IS BLOCKED. BALL CONTROLLED BY ";
|
||||
1230 IF RND(1)>.5 THEN 1242
|
||||
1235 PRINT "DARTMOUTH."
|
||||
1240 GOTO 430
|
||||
1242 PRINT O$;"."
|
||||
1245 GOTO 3000
|
||||
1250 IF RND(1)>.843*D/8 THEN 1270
|
||||
1255 PRINT "SHOOTER IS FOULED. TWO SHOTS."
|
||||
1260 GOSUB 4000
|
||||
1265 GOTO 3000
|
||||
1270 PRINT "CHARGING FOUL. DARTMOUTH LOSES BALL."
|
||||
1280 GOTO 3000
|
||||
1300 T=T+1
|
||||
1301 IF T=50 THEN 8000
|
||||
1302 IF T=92 THEN 1304
|
||||
1303 GOTO 1305
|
||||
1304 GOSUB 600
|
||||
1305 IF Z=0 THEN 2010
|
||||
1310 IF Z>3 THEN 1700
|
||||
1320 PRINT "LAY UP."
|
||||
1330 IF 7/D*RND(1)>.4 THEN 1360
|
||||
1340 PRINT "SHOT IS GOOD. TWO POINTS."
|
||||
1345 GOSUB 7000
|
||||
1355 GOTO 3000
|
||||
1360 IF 7/D*RND(1)>.7 THEN 1500
|
||||
1370 PRINT "SHOT IS OFF THE RIM."
|
||||
1380 IF RND(1)>2/3 THEN 1415
|
||||
1390 PRINT O$;" CONTROLS THE REBOUND."
|
||||
1400 GOTO 3000
|
||||
1415 PRINT "DARTMOUTH CONTROLS THE REBOUND."
|
||||
1420 IF RND(1)>.4 THEN 1440
|
||||
1430 GOTO 1300
|
||||
1440 PRINT "BALL PASSED BACK TO YOU.";
|
||||
1450 GOTO 430
|
||||
1500 IF 7/D*RND(1)>.875 THEN 1600
|
||||
1510 PRINT "SHOOTER FOULED. TWO SHOTS."
|
||||
1520 GOSUB 4000
|
||||
1530 GOTO 3000
|
||||
1600 IF 7/D*RND(1)>.925 THEN 1630
|
||||
1610 PRINT "SHOT BLOCKED. ";O$;"'S BALL."
|
||||
1620 GOTO 3000
|
||||
1630 PRINT "CHARGING FOUL. DARTMOUTH LOSES THE BALL."
|
||||
1640 GOTO 3000
|
||||
1700 PRINT "SET SHOT."
|
||||
1710 GOTO 1330
|
||||
2010 INPUT "YOUR NEW DEFENSIVE ALLIGNMENT IS";D
|
||||
2030 IF D<6 THEN 2010
|
||||
2040 GOTO 425
|
||||
3000 P=1
|
||||
3005 T=T+1
|
||||
3008 IF T=50 THEN 8000
|
||||
3012 GOTO 3018
|
||||
3015 GOSUB 600
|
||||
3018 PRINT
|
||||
3020 Z1=10/4*RND(1)+1
|
||||
3030 IF Z1>2 THEN 3500
|
||||
3040 PRINT "JUMP SHOT."
|
||||
3050 IF 8/D*RND(1)>.35 THEN 3100
|
||||
3060 PRINT "SHOT IS GOOD."
|
||||
3080 GOSUB 6000
|
||||
3090 GOTO 425
|
||||
3100 IF 8/D*RND(1)>.75 THEN 3200
|
||||
3105 PRINT "SHOT IS OFF RIM."
|
||||
3110 IF D/6*RND(1)>.5 THEN 3150
|
||||
3120 PRINT "DARTMOUTH CONTROLS THE REBOUND."
|
||||
3130 GOTO 425
|
||||
3150 PRINT O$;" CONTROLS THE REBOUND."
|
||||
3160 IF D=6 THEN 5000
|
||||
3165 IF RND(1)>.5 THEN 3175
|
||||
3168 PRINT "PASS BACK TO ";O$;" GUARD."
|
||||
3170 GOTO 3000
|
||||
3175 GOTO 3500
|
||||
3200 IF 8/D*RND(1)>.9 THEN 3310
|
||||
3210 PRINT "PLAYER FOULED. TWO SHOTS."
|
||||
3220 GOSUB 4000
|
||||
3230 GOTO 425
|
||||
3310 PRINT "OFFENSIVE FOUL. DARTMOUTH'S BALL."
|
||||
3320 GOTO 425
|
||||
3500 IF Z1>3 THEN 3800
|
||||
3510 PRINT "LAY UP."
|
||||
3520 IF 7/D*RND(1)>.413 THEN 3600
|
||||
3530 PRINT "SHOT IS GOOD."
|
||||
3540 GOSUB 6000
|
||||
3550 GOTO 425
|
||||
3600 PRINT "SHOT IS MISSED."
|
||||
3610 GOTO 3110
|
||||
3800 PRINT "SET SHOT."
|
||||
3810 GOTO 3520
|
||||
4000 REM FOUL SHOOTING
|
||||
4010 IF RND(1)>.49 THEN 4050
|
||||
4020 PRINT "SHOOTER MAKES BOTH SHOTS."
|
||||
4030 S(1-P)=S(1-P)+2
|
||||
4040 GOSUB 6010
|
||||
4041 RETURN
|
||||
4050 IF RND(1)>.75 THEN 4100
|
||||
4060 PRINT "SHOOTER MAKES ONE SHOT AND MISSES ONE."
|
||||
4070 S(1-P)=S(1-P)+1
|
||||
4080 GOTO 4040
|
||||
4100 PRINT "BOTH SHOTS MISSED."
|
||||
4110 GOTO 4040
|
||||
5000 IF RND(1)>.75 THEN 5010
|
||||
5005 GOTO 3165
|
||||
5010 PRINT "BALL STOLEN. EASY LAY UP FOR DARTMOUTH."
|
||||
5015 GOSUB 7000
|
||||
5030 GOTO 3000
|
||||
5100 IF RND(1)>.6 THEN 5120
|
||||
5110 GOTO 1160
|
||||
5120 PRINT "PASS STOLEN BY ";O$;" EASY LAYUP."
|
||||
5130 GOSUB 6000
|
||||
5140 GOTO 425
|
||||
6000 S(0)=S(0)+2
|
||||
6010 PRINT "SCORE: ";S(1);"TO";S(0)
|
||||
6020 RETURN
|
||||
7000 S(1)=S(1)+2
|
||||
7010 GOSUB 6010
|
||||
7020 RETURN
|
||||
8000 PRINT:PRINT " ***** END OF FIRST HALF *****":PRINT
|
||||
8010 PRINT "SCORE: DARTMOUTH:";S(1);" ";O$;":";S(0)
|
||||
8015 PRINT
|
||||
8016 PRINT
|
||||
8020 GOTO 370
|
||||
9999 END
|
||||
7
08 Batnum/README.md
Normal file
7
08 Batnum/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Batnum
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=14
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
90
08 Batnum/batnum.bas
Normal file
90
08 Batnum/batnum.bas
Normal file
@@ -0,0 +1,90 @@
|
||||
10 PRINT TAB(33);"BATNUM"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
110 PRINT "THIS PROGRAM IS A 'BATTLE OF NUMBERS' GAME, WHERE THE"
|
||||
120 PRINT "COMPUTER IS YOUR OPPONENT."
|
||||
130 PRINT
|
||||
140 PRINT "THE GAME STARTS WITH AN ASSUMED PILE OF OBJECTS. YOU"
|
||||
150 PRINT "AND YOUR OPPONENT ALTERNATELY REMOVE OBJECTS FROM THE PILE."
|
||||
160 PRINT "WINNING IS DEFINED IN ADVANCE AS TAKING THE LAST OBJECT OR"
|
||||
170 PRINT "NOT. YOU CAN ALSO SPECIFY SOME OTHER BEGINNING CONDITIONS."
|
||||
180 PRINT "DON'T USE ZERO, HOWEVER, IN PLAYING THE GAME."
|
||||
190 PRINT "ENTER A NEGATIVE NUMBER FOR NEW PILE SIZE TO STOP PLAYING."
|
||||
200 PRINT
|
||||
210 GOTO 330
|
||||
220 FOR I=1 TO 10
|
||||
230 PRINT
|
||||
240 NEXT I
|
||||
330 INPUT "ENTER PILE SIZE";N
|
||||
350 IF N>=1 THEN 370
|
||||
360 GOTO 330
|
||||
370 IF N<>INT(N) THEN 220
|
||||
380 IF N<1 THEN 220
|
||||
390 INPUT "ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST: ";M
|
||||
410 IF M=1 THEN 430
|
||||
420 IF M<>2 THEN 390
|
||||
430 INPUT "ENTER MIN AND MAX ";A,B
|
||||
450 IF A>B THEN 430
|
||||
460 IF A<1 THEN 430
|
||||
470 IF A<>INT(A) THEN 430
|
||||
480 IF B<>INT(B) THEN 430
|
||||
490 INPUT "ENTER START OPTION - 1 COMPUTER FIRST, 2 YOU FIRST ";S
|
||||
500 PRINT:PRINT
|
||||
510 IF S=1 THEN 530
|
||||
520 IF S<>2 THEN 490
|
||||
530 C=A+B
|
||||
540 IF S=2 THEN 570
|
||||
550 GOSUB 600
|
||||
560 IF W=1 THEN 220
|
||||
570 GOSUB 810
|
||||
580 IF W=1 THEN 220
|
||||
590 GOTO 550
|
||||
600 Q=N
|
||||
610 IF M=1 THEN 630
|
||||
620 Q=Q-1
|
||||
630 IF M=1 THEN 680
|
||||
640 IF N>A THEN 720
|
||||
650 W=1
|
||||
660 PRINT "COMPUTER TAKES";N;"AND LOSES."
|
||||
670 RETURN
|
||||
680 IF N>B THEN 720
|
||||
690 W=1
|
||||
700 PRINT "COMPUTER TAKES";N;"AND WINS."
|
||||
710 RETURN
|
||||
720 P=Q-C*INT(Q/C)
|
||||
730 IF P>=A THEN 750
|
||||
740 P=A
|
||||
750 IF P<=B THEN 770
|
||||
760 P=B
|
||||
770 N=N-P
|
||||
780 PRINT "COMPUTER TAKES";P;"AND LEAVES";N
|
||||
790 W=0
|
||||
800 RETURN
|
||||
810 PRINT:PRINT "YOUR MOVE ";
|
||||
820 INPUT P
|
||||
830 IF P<>0 THEN 870
|
||||
840 PRINT "I TOLD YOU NOT TO USE ZERO! COMPUTER WINS BY FORFEIT."
|
||||
850 W=1
|
||||
860 RETURN
|
||||
870 IF P<>INT(P) THEN 920
|
||||
880 IF P>=A THEN 910
|
||||
890 IF P=N THEN 960
|
||||
900 GOTO 920
|
||||
910 IF P<=B THEN 940
|
||||
920 PRINT "ILLEGAL MOVE, REENTER IT ";
|
||||
930 GOTO 820
|
||||
940 N=N-P
|
||||
950 IF N<>0 THEN 1030
|
||||
960 IF M=1 THEN 1000
|
||||
970 PRINT "TOUGH LUCK, YOU LOSE."
|
||||
980 W=1
|
||||
990 RETURN
|
||||
1000 PRINT "CONGRATULATIONS, YOU WIN."
|
||||
1010 W=1
|
||||
1020 RETURN
|
||||
1030 IF N>=0 THEN 1060
|
||||
1040 N=N+P
|
||||
1050 GOTO 920
|
||||
1060 W=0
|
||||
1070 RETURN
|
||||
1080 END
|
||||
7
09 Battle/README.md
Normal file
7
09 Battle/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Battle
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=15
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
196
09 Battle/battle.bas
Normal file
196
09 Battle/battle.bas
Normal file
@@ -0,0 +1,196 @@
|
||||
5 PRINT TAB(33);"BATTLE"
|
||||
7 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
10 REM -- BATTLE WRITTEN BY RAY WESTERGARD 10/70
|
||||
20 REM COPYRIGHT 1971 BY THE REGENTS OF THE UNIV. OF CALIF.
|
||||
30 REM PRODUCED AT THE LAWRENCE HALL OF SCIENCE, BERKELEY
|
||||
40 DIM F(6,6),H(6,6),A(4),B(4),C(6),L(3)
|
||||
50 FOR X=1 TO 6
|
||||
51 FOR Y=1 TO 6
|
||||
52 F(X,Y)=0
|
||||
53 NEXT Y
|
||||
54 NEXT X
|
||||
60 FOR I=1 TO 3
|
||||
70 N=4-I
|
||||
80 FOR J=1 TO 2
|
||||
90 A=INT(6*RND(1)+1)
|
||||
100 B=INT(6*RND(1)+1)
|
||||
110 D=INT(4*RND(1)+1)
|
||||
120 IF F(A,B)>0 THEN 90
|
||||
130 M=0
|
||||
140 ON D GOTO 150,340,550,740
|
||||
150 B(1)=B
|
||||
160 B(2)=7:B(3)=7
|
||||
170 FOR K=1 TO N
|
||||
180 IF M>1 THEN 240
|
||||
190 IF B(K)=6 THEN 230
|
||||
200 IF F(A,B(K)+1)>0 THEN 230
|
||||
210 B(K+1)=B(K)+1
|
||||
220 GOTO 280
|
||||
230 M=2
|
||||
240 IF B(1)<B(2) AND B(1)<B(3) THEN Z=B(1)
|
||||
242 IF B(2)<B(1) AND B(2)<B(3) THEN Z=B(2)
|
||||
244 IF B(3)<B(1) AND B(3)<B(2) THEN Z=B(3)
|
||||
250 IF Z=1 THEN 90
|
||||
260 IF F(A,Z-1)>0 THEN 90
|
||||
270 B(K+1)=Z-1
|
||||
280 NEXT K
|
||||
290 F(A,B)=9-2*I-J
|
||||
300 FOR K=1 TO N
|
||||
310 F(A,B(K+1))=F(A,B)
|
||||
320 NEXT K
|
||||
330 GOTO 990
|
||||
340 A(1)=A
|
||||
350 B(1)=B
|
||||
360 A(2)=0:A(3)=0:B(2)=0:B(3)=0
|
||||
370 FOR K=1 TO N
|
||||
380 IF M>1 THEN 460
|
||||
390 IF A(K)=1 OR B(K)=1 THEN 450
|
||||
400 IF F(A(K)-1,B(K)-1)>0 THEN 450
|
||||
410 IF F(A(K)-1,B(K))>0 AND F(A(K)-1,B(K))=F(A(K),B(K)-1) THEN 450
|
||||
420 A(K+1)=A(K)-1
|
||||
430 B(K+1)=B(K)-1
|
||||
440 GOTO 530
|
||||
450 M=2
|
||||
460 IF A(1)>A(2) AND A(1)>A(3) THEN Z1=A(1)
|
||||
462 IF A(2)>A(1) AND A(2)>A(3) THEN Z1=A(2)
|
||||
464 IF A(3)>A(1) AND A(3)>A(2) THEN Z1=A(3)
|
||||
470 IF B(1)>B(2) AND B(1)>B(3) THEN Z2=B(1)
|
||||
474 IF B(2)>B(1) AND B(2)>B(3) THEN Z2=B(2)
|
||||
476 IF B(3)>B(1) AND B(3)>B(2) THEN Z2=B(3)
|
||||
480 IF Z1=6 OR Z2=6 THEN 90
|
||||
490 IF F(Z1+1,Z2+1)>0 THEN 90
|
||||
500 IF F(Z1,Z2+1)>0 AND F(Z1,Z2+1)=F(Z1+1,Z2) THEN 90
|
||||
510 A(K+1)=Z1+1
|
||||
520 B(K+1)=Z2+1
|
||||
530 NEXT K
|
||||
540 GOTO 950
|
||||
550 A(1)=A
|
||||
560 A(2)=7:A(3)=7
|
||||
570 FOR K=1 TO N
|
||||
580 IF M>1 THEN 640
|
||||
590 IF A(K)=6 THEN 630
|
||||
600 IF F(A(K)+1,B)>0 THEN 630
|
||||
610 A(K+1)=A(K)+1
|
||||
620 GOTO 680
|
||||
630 M=2
|
||||
640 IF A(1)<A(2) AND A(1)<A(3) THEN Z=A(1)
|
||||
642 IF A(2)<A(1) AND A(2)<A(3) THEN Z=A(2)
|
||||
644 IF A(3)<A(1) AND A(3)<A(2) THEN Z=A(3)
|
||||
650 IF Z=1 THEN 90
|
||||
660 IF F(Z-1,B)>0 THEN 90
|
||||
670 A(K+1)=Z-1
|
||||
680 NEXT K
|
||||
690 F(A,B)=9-2*I-J
|
||||
700 FOR K=1 TO N
|
||||
710 F(A(K+1),B)=F(A,B)
|
||||
720 NEXT K
|
||||
730 GOTO 990
|
||||
740 A(1)=A
|
||||
750 B(1)=B
|
||||
760 A(2)=7:A(3)=7
|
||||
770 B(2)=0:B(3)=0
|
||||
780 FOR K=1 TO N
|
||||
790 IF M>1 THEN 870
|
||||
800 IF A(K)=6 OR B(K)=1 THEN 860
|
||||
810 IF F(A(K)+1,B(K)-1)>0 THEN 860
|
||||
820 IF F(A(K)+1,B(K))>0 AND F(A(K)+1,B(K))=F(A(K),B(K)-1) THEN 860
|
||||
830 A(K+1)=A(K)+1
|
||||
840 B(K+1)=B(K)-1
|
||||
850 GOTO 940
|
||||
860 M=2
|
||||
870 IF A(1)<A(2) AND A(1)<A(3) THEN Z1=A(1)
|
||||
872 IF A(2)<A(1) AND A(2)<A(3) THEN Z1=A(2)
|
||||
874 IF A(3)<A(1) AND A(3)<A(2) THEN Z1=A(3)
|
||||
880 IF B(1)>B(2) AND B(1)>B(3) THEN Z2=B(1)
|
||||
882 IF B(2)>B(1) AND B(2)>B(3) THEN Z2=B(2)
|
||||
884 IF B(3)>B(1) AND B(3)>B(2) THEN Z2=B(3)
|
||||
890 IF Z1=1 OR Z2=6 THEN 90
|
||||
900 IF F(Z1-1,Z2+1)>0 THEN 90
|
||||
910 IF F(Z1,Z2+1)>0 AND F(Z1,Z2+1)=F(Z1-1,Z2) THEN 90
|
||||
920 A(K+1)=Z1-1
|
||||
930 B(K+1)=Z2+1
|
||||
940 NEXT K
|
||||
950 F(A,B)=9-2*I-J
|
||||
960 FOR K=1 TO N
|
||||
970 F(A(K+1),B(K+1))=F(A,B)
|
||||
980 NEXT K
|
||||
990 NEXT J
|
||||
1000 NEXT I
|
||||
1010 PRINT
|
||||
1020 PRINT "THE FOLLOWING CODE OF THE BAD GUYS' FLEET DISPOSITION"
|
||||
1030 PRINT "HAS BEEN CAPTURED BUT NOT DECODED:"
|
||||
1040 PRINT
|
||||
1050 FOR I=1 TO 6
|
||||
1051 FOR J=1 TO 6
|
||||
1052 H(I,J)=F(J,I)
|
||||
1053 NEXT J
|
||||
1054 NEXT I
|
||||
1060 FOR I=1 TO 6
|
||||
1061 FOR J=1 TO 6
|
||||
1062 PRINT H(I,J);
|
||||
1063 NEXT J
|
||||
1064 PRINT
|
||||
1065 NEXT I
|
||||
1070 PRINT
|
||||
1080 PRINT "DE-CODE IT AND USE IT IF YOU CAN"
|
||||
1090 PRINT "BUT KEEP THE DE-CODING METHOD A SECRET."
|
||||
1100 PRINT
|
||||
1110 FOR I=1 TO 6
|
||||
1111 FOR J=1 TO 6
|
||||
1112 H(I,J)=0
|
||||
1113 NEXT J
|
||||
1114 NEXT I
|
||||
1120 FOR I=1 TO 3
|
||||
1121 L(I)=0
|
||||
1122 NEXT I
|
||||
1130 C(1)=2:C(2)=2
|
||||
1140 C(3)=1:C(4)=1
|
||||
1150 C(5)=0:C(6)=0
|
||||
1160 S=0:H=0
|
||||
1170 PRINT "START GAME"
|
||||
1180 INPUT X,Y
|
||||
1190 IF X<1 OR X>6 OR INT(X)<>ABS(X) THEN 1210
|
||||
1200 IF Y>0 AND Y<7 AND INT(Y)=ABS(Y) THEN 1230
|
||||
1210 PRINT "INVALID INPUT. TRY AGAIN."
|
||||
1220 GOTO 1180
|
||||
1230 R=7-Y
|
||||
1240 C=X
|
||||
1250 IF F(R,C)>0 THEN 1290
|
||||
1260 S=S+1
|
||||
1270 PRINT "SPLASH! TRY AGAIN."
|
||||
1280 GOTO 1180
|
||||
1290 IF C(F(R,C))<4 THEN 1340
|
||||
1300 PRINT "THERE USED TO BE A SHIP AT THAT POINT, BUT YOU SUNK IT."
|
||||
1310 PRINT "SPLASH! TRY AGAIN."
|
||||
1320 S=S+1
|
||||
1330 GOTO 1180
|
||||
1340 IF H(R,C)>0 THEN 1420
|
||||
1350 H=H+1
|
||||
1360 H(R,C)=F(R,C)
|
||||
1370 PRINT "A DIRECT HIT ON SHIP NUMBER";F(R,C)
|
||||
1380 C(F(R,C))=C(F(R,C))+1
|
||||
1390 IF C(F(R,C))>=4 THEN 1470
|
||||
1400 PRINT "TRY AGAIN."
|
||||
1410 GOTO 1180
|
||||
1420 PRINT "YOU ALREADY PUT A HOLE IN SHIP NUMBER";F(R,C);
|
||||
1430 PRINT "AT THAT POINT."
|
||||
1440 PRINT "SPLASH! TRY AGAIN."
|
||||
1450 S=S+1
|
||||
1460 GOTO 1180
|
||||
1470 L((INT(F(R,C)-1)/2)+1)=L((INT(F(R,C)-1)/2)+1)+1
|
||||
1480 PRINT "AND YOU SUNK IT. HURRAH FOR THE GOOD GUYS."
|
||||
1490 PRINT "SO FAR, THE BAD GUYS HAVE LOST"
|
||||
1500 PRINT L(1);"DESTROYER(S),";L(2);"CRUISER(S), AND";
|
||||
1510 PRINT L(3);"AIRCRAFT CARRIER(S)."
|
||||
1520 PRINT "YOUR CURRENT SPLASH/HIT RATIO IS";S/H
|
||||
1530 IF (L(1)+L(2)+L(3))<6 THEN 1180
|
||||
1540 PRINT
|
||||
1550 PRINT "YOU HAVE TOTALLY WIPED OUT THE BAD GUYS' FLEET"
|
||||
1560 PRINT "WITH A FINAL SPLASH/HIT RATIO OF";S/H
|
||||
1570 IF S/H>0 THEN 1590
|
||||
1580 PRINT "CONGRATULATIONS -- A DIRECT HIT EVERY TIME."
|
||||
1590 PRINT
|
||||
1600 PRINT "****************************"
|
||||
1610 PRINT
|
||||
1620 GOTO 50
|
||||
1630 END
|
||||
7
10 Blackjack/README.md
Normal file
7
10 Blackjack/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Blackjack
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=18
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
321
10 Blackjack/blackjack.bas
Normal file
321
10 Blackjack/blackjack.bas
Normal file
@@ -0,0 +1,321 @@
|
||||
2 PRINT TAB(31);"BLACK JACK"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT:PRINT:PRINT
|
||||
10 DEF FNA(Q)=Q+11*(Q>=22)
|
||||
20 DIM P(15,12),Q(15),C(52),D(52),T(8),S(7),B(15)
|
||||
30 DIM R(15)
|
||||
40 REM--P(I,J) IS THE JTH CARD IN HAND I, Q(I) IS TOTAL OF HAND I
|
||||
50 REM--C IS THE DECK BEING DEALT FROM, D IS THE DISCARD PILE,
|
||||
60 REM--T(I) IS THE TOTAL FOR PLAYER I, S(I) IS THE TOTAL THIS HAND FOR
|
||||
70 REM--PLAYER I, B(I) IS TH BET FOR HAND I
|
||||
80 REM--R(I) IS THE LENGTH OF P(I,*)
|
||||
90 GOTO 1500
|
||||
100 REM--SUBROUTINE TO GET A CARD. RESULT IS PUT IN X.
|
||||
110 IF C<51 THEN 230
|
||||
120 PRINT "RESHUFFLING"
|
||||
130 FOR D=D TO 1 STEP -1
|
||||
140 C=C-1
|
||||
150 C(C)=D(D)
|
||||
160 NEXT D
|
||||
170 FOR C1=52 TO C STEP -1
|
||||
180 C2=INT(RND(1)*(C1-C+1))+C
|
||||
190 C3=C(C2)
|
||||
200 C(C2)=C(C1)
|
||||
210 C(C1)=C3
|
||||
220 NEXT C1
|
||||
230 X=C(C)
|
||||
240 C=C+1
|
||||
250 RETURN
|
||||
300 REM--SUBROUTINE TO EVALUATE HAND I. TOTAL IS PUT INTO
|
||||
310 REM--Q(I). TOTALS HAVE THE FOLLOWING MEANING:
|
||||
320 REM-- 2-10...HARD 2-10
|
||||
330 REM-- 11-21...SOFT 11-21
|
||||
340 REM-- 22-32...HARD 11-21
|
||||
350 REM-- 33+....BUSTED
|
||||
360 Q=0
|
||||
370 FOR Q2=1 TO R(I)
|
||||
380 X=P(I,Q2)
|
||||
390 GOSUB 500
|
||||
400 NEXT Q2
|
||||
410 Q(I)=Q
|
||||
420 RETURN
|
||||
500 REM--SUBROUTINE TO ADD CARD X TO TOTAL Q.
|
||||
510 X1=X: IF X1>10 THEN X1=10: REM SAME AS X1=10 MIN X
|
||||
520 Q1=Q+X1
|
||||
530 IF Q>=11 THEN 590
|
||||
540 IF X>1 THEN 570
|
||||
550 Q=Q+11
|
||||
560 RETURN
|
||||
570 Q=Q1-11*(Q1>=11)
|
||||
580 RETURN
|
||||
590 Q=Q1-(Q<=21 AND Q1>21)
|
||||
600 IF Q<33 THEN 620
|
||||
610 Q=-1
|
||||
620 RETURN
|
||||
700 REM--CARD PRINTING SUBROUTINE
|
||||
710 REM D$ DEFINED ELSEWHERE
|
||||
720 PRINT MID$(D$,3*X-2,3);
|
||||
730 PRINT " ";
|
||||
740 RETURN
|
||||
750 REM--ALTERNATIVE PRINTING ROUTINE
|
||||
760 PRINT " ";MID$(D$,3*X-1,2);
|
||||
770 PRINT " ";
|
||||
780 RETURN
|
||||
800 REM--SUBROUTINE TO PLAY OUT A HAND.
|
||||
810 REM--NO SPLITTING OR BLACKJACKS ALLOWED
|
||||
820 H1=5
|
||||
830 GOSUB 1410
|
||||
840 H1=3
|
||||
850 ON H GOTO 950,930
|
||||
860 GOSUB 100
|
||||
870 B(I)=B(I)*2
|
||||
880 PRINT "RECEIVED A";
|
||||
890 GOSUB 700
|
||||
900 GOSUB 1100
|
||||
910 IF Q>0 THEN GOSUB 1300
|
||||
920 RETURN
|
||||
930 GOSUB 1320
|
||||
940 RETURN
|
||||
950 GOSUB 100
|
||||
960 PRINT "RECEIVED A";
|
||||
970 GOSUB 700
|
||||
980 GOSUB 1100
|
||||
990 IF Q<0 THEN 940
|
||||
1000 PRINT "HIT";
|
||||
1010 GOTO 830
|
||||
1100 REM--SUBROUTINE TO ADD A CARD TO ROW I
|
||||
1110 R(I)=R(I)+1
|
||||
1120 P(I,R(I))=X
|
||||
1130 Q=Q(I)
|
||||
1140 GOSUB 500
|
||||
1150 Q(I)=Q
|
||||
1160 IF Q>=0 THEN 1190
|
||||
1170 PRINT "...BUSTED"
|
||||
1180 GOSUB 1200
|
||||
1190 RETURN
|
||||
1200 REM--SUBROUTINE TO DISCARD ROW I
|
||||
1210 IF R(I)<>0 THEN 1230
|
||||
1220 RETURN
|
||||
1230 D=D+1
|
||||
1240 D(D)=P(I,R(I))
|
||||
1250 R(I)=R(I)-1
|
||||
1260 GOTO 1210
|
||||
1300 REM--PRINTS TOTAL OF HAND I
|
||||
1310 PRINT
|
||||
1320 AA=Q(I): GOSUB 3400
|
||||
1325 PRINT "TOTAL IS";AA
|
||||
1330 RETURN
|
||||
1400 REM--SUBROUTINE TO READ REPLY
|
||||
1410 REM I$ DEFINED ELSEWHERE
|
||||
1420 INPUT H$: H$=LEFT$(H$,1)
|
||||
1430 FOR H=1 TO H1 STEP 2
|
||||
1440 IF H$=MID$(I$,H,1) THEN 1480
|
||||
1450 NEXT H
|
||||
1460 PRINT "TYPE ";MID$(I$,1,H1-1);" OR ";MID$(I$,H1,2);" PLEASE";
|
||||
1470 GOTO 1420
|
||||
1480 H=(H+1)/2
|
||||
1490 RETURN
|
||||
1500 REM--PROGRAM STARTS HERE
|
||||
1510 REM--INITIALIZE
|
||||
1520 D$="N A 2 3 4 5 6 7N 8 9 10 J Q K"
|
||||
1530 I$="H,S,D,/,"
|
||||
1540 FOR I=1 TO 13
|
||||
1550 FOR J=4*I-3 TO 4*I
|
||||
1560 D(J)=I
|
||||
1570 NEXT J
|
||||
1580 NEXT I
|
||||
1590 D=52
|
||||
1600 C=53
|
||||
1610 PRINT "DO YOU WANT INSTRUCTIONS";
|
||||
1620 INPUT H$
|
||||
1630 IF LEFT$(H$,1)="N" OR LEFT$(H$,1)="n" THEN 1760
|
||||
1640 PRINT "THIS IS THE GAME OF 21. AS MANY AS 7 PLAYERS MAY PLAY THE"
|
||||
1650 PRINT "GAME. ON EACH DEAL, BETS WILL BE ASKED FOR, AND THE"
|
||||
1660 PRINT "PLAYERS' BETS SHOULD BE TYPED IN. THE CARDS WILL THEN BE"
|
||||
1670 PRINT "DEALT, AND EACH PLAYER IN TURN PLAYS HIS HAND. THE"
|
||||
1680 PRINT "FIRST RESPONSE SHOULD BE EITHER 'D', INDICATING THAT THE"
|
||||
1690 PRINT "PLAYER IS DOUBLING DOWN, 'S', INDICATING THAT HE IS"
|
||||
1700 PRINT "STANDING, 'H', INDICATING HE WANTS ANOTHER CARD, OR '/',"
|
||||
1710 PRINT "INDICATING THAT HE WANTS TO SPLIT HIS CARDS. AFTER THE"
|
||||
1720 PRINT "INITIAL RESPONSE, ALL FURTHER RESPONSES SHOULD BE 'S' OR"
|
||||
1730 PRINT "'H', UNLESS THE CARDS WERE SPLIT, IN WHICH CASE DOUBLING"
|
||||
1740 PRINT "DOWN IS AGAIN PERMITTED. IN ORDER TO COLLECT FOR"
|
||||
1750 PRINT "BLACKJACK, THE INITIAL RESPONSE SHOULD BE 'S'."
|
||||
1760 PRINT "NUMBER OF PLAYERS";
|
||||
1770 INPUT N
|
||||
1775 PRINT
|
||||
1780 IF N<1 OR N>7 OR N>INT(N) THEN 1760
|
||||
1790 FOR I=1 TO 8: T(I)=0: NEXT I
|
||||
1800 D1=N+1
|
||||
1810 IF 2*D1+C>=52 THEN GOSUB 120
|
||||
1820 IF C=2 THEN C=C-1
|
||||
1830 FOR I=1 TO N: Z(I)=0: NEXT I
|
||||
1840 FOR I=1 TO 15: B(I)=0: NEXT I
|
||||
1850 FOR I=1 TO 15: Q(I)=0: NEXT I
|
||||
1860 FOR I=1 TO 7: S(I)=0: NEXT I
|
||||
1870 FOR I=1 TO 15: R(I)=0: NEXT I
|
||||
1880 PRINT "BETS:"
|
||||
1890 FOR I=1 TO N: PRINT "#";I;: INPUT Z(I): NEXT I
|
||||
1900 FOR I=1 TO N
|
||||
1910 IF Z(I)<=0 OR Z(I)>500 THEN 1880
|
||||
1920 B(I)=Z(I)
|
||||
1930 NEXT I
|
||||
1940 PRINT "PLAYER";
|
||||
1950 FOR I=1 TO N
|
||||
1960 PRINT I;" ";
|
||||
1970 NEXT I
|
||||
1980 PRINT "DEALER"
|
||||
1990 FOR J=1 TO 2
|
||||
2000 PRINT TAB(5);
|
||||
2010 FOR I=1 TO D1
|
||||
2020 GOSUB 100
|
||||
2030 P(I,J)=X
|
||||
2040 IF J=1 OR I<=N THEN GOSUB 750
|
||||
2050 NEXT I
|
||||
2060 PRINT
|
||||
2070 NEXT J
|
||||
2080 FOR I=1 TO D1
|
||||
2090 R(I)=2
|
||||
2100 NEXT I
|
||||
2110 REM--TEST FOR INSURANCE
|
||||
2120 IF P(D1,1)>1 THEN 2240
|
||||
2130 PRINT "ANY INSURANCE";
|
||||
2140 INPUT H$
|
||||
2150 IF LEFT$(H$,1)<>"Y" THEN 2240
|
||||
2160 PRINT "INSURANCE BETS"
|
||||
2170 FOR I=1 TO N: PRINT "#";I;: INPUT Z(I): NEXT I
|
||||
2180 FOR I=1 TO N
|
||||
2190 IF Z(I)<0 OR Z(I)>B(I)/2 THEN 2160
|
||||
2200 NEXT I
|
||||
2210 FOR I=1 TO N
|
||||
2220 S(I)=Z(I)*(3*(-(P(D1,2)>=10))-1)
|
||||
2230 NEXT I
|
||||
2240 REM--TEST FOR DEALER BLACKJACK
|
||||
2250 L1=1: L2=1
|
||||
2252 IF P(D1,1)=1 AND P(D1,2)>9 THEN L1=0: L2=0
|
||||
2253 IF P(D1,2)=1 AND P(D1,1)>9 THEN L1=0: L2=0
|
||||
2254 IF L1<>0 OR L2<>0 THEN 2320
|
||||
2260 PRINT:PRINT "DEALER HAS A";MID$(D$,3*P(D1,2)-2,3);" IN THE HOLE ";
|
||||
2270 PRINT "FOR BLACKJACK"
|
||||
2280 FOR I=1 TO D1
|
||||
2290 GOSUB 300
|
||||
2300 NEXT I
|
||||
2310 GOTO 3140
|
||||
2320 REM--NO DEALER BLACKJACK
|
||||
2330 IF P(D1,1)>1 AND P(D1,1)<10 THEN 2350
|
||||
2340 PRINT:PRINT "NO DEALER BLACKJACK."
|
||||
2350 REM--NOW PLAY THE HANDS
|
||||
2360 FOR I=1 TO N
|
||||
2370 PRINT "PLAYER";I;
|
||||
2380 H1=7
|
||||
2390 GOSUB 1410
|
||||
2400 ON H GOTO 2550,2410,2510,2600
|
||||
2410 REM--PLAYER WANTS TO STAND
|
||||
2420 GOSUB 300
|
||||
2430 IF Q(I)<>21 THEN 2490
|
||||
2440 PRINT "BLACKJACK"
|
||||
2450 S(I)=S(I)+1.5*B(I)
|
||||
2460 B(I)=0
|
||||
2470 GOSUB 1200
|
||||
2480 GOTO 2900
|
||||
2490 GOSUB 1320
|
||||
2500 GOTO 2900
|
||||
2510 REM--PLAYER WANTS TO DOUBLE DOWN
|
||||
2520 GOSUB 300
|
||||
2530 GOSUB 860
|
||||
2540 GOTO 2900
|
||||
2550 REM--PLAYER WANTS TO BE HIT
|
||||
2560 GOSUB 300
|
||||
2570 H1=3
|
||||
2580 GOSUB 950
|
||||
2590 GOTO 2900
|
||||
2600 REM--PLAYER WANTS TO SPLIT
|
||||
2610 L1=P(I,1): IF P(I,1)>10 THEN L1=10
|
||||
2612 L2=P(I,2): IF P(I,2)>10 THEN L2=10
|
||||
2614 IF L1=L2 THEN 2640
|
||||
2620 PRINT "SPLITTING NOT ALLOWED."
|
||||
2630 GOTO 2370
|
||||
2640 REM--PLAY OUT SPLIT
|
||||
2650 I1=I+D1
|
||||
2660 R(I1)=2
|
||||
2670 P(I1,1)=P(I,2)
|
||||
2680 B(I+D1)=B(I)
|
||||
2690 GOSUB 100
|
||||
2700 PRINT "FIRST HAND RECEIVES A";
|
||||
2710 GOSUB 700
|
||||
2720 P(I,2)=X
|
||||
2730 GOSUB 300
|
||||
2740 PRINT
|
||||
2750 GOSUB 100
|
||||
2760 PRINT "SECOND HAND RECEIVES A";
|
||||
2770 I=I1
|
||||
2780 GOSUB 700
|
||||
2790 P(I,2)=X
|
||||
2800 GOSUB 300
|
||||
2810 PRINT
|
||||
2820 I=I1-D1
|
||||
2830 IF P(I,1)=1 THEN 2900
|
||||
2840 REM--NOW PLAY THE TWO HANDS
|
||||
2850 PRINT "HAND";1-(I>D1);
|
||||
2860 GOSUB 800
|
||||
2870 I=I+D1
|
||||
2880 IF I=I1 THEN 2850
|
||||
2890 I=I1-D1
|
||||
2900 NEXT I
|
||||
2910 GOSUB 300
|
||||
2920 REM--TEST FOR PLAYING DEALER'S HAND
|
||||
2930 FOR I=1 TO N
|
||||
2940 IF R(I)>0 OR R(I+D1)>0 THEN 3010
|
||||
2950 NEXT I
|
||||
2960 PRINT "DEALER HAD A";
|
||||
2970 X=P(D1,2)
|
||||
2980 GOSUB 700
|
||||
2990 PRINT " CONCEALED."
|
||||
3000 GOTO 3140
|
||||
3010 PRINT "DEALER HAS A";MID$(D$,3*P(D1,2)-2,3);" CONCEALED ";
|
||||
3020 I=D1
|
||||
3030 AA=Q(I): GOSUB 3400
|
||||
3035 PRINT "FOR A TOTAL OF";AA
|
||||
3040 IF AA>16 THEN 3130
|
||||
3050 PRINT "DRAWS";
|
||||
3060 GOSUB 100
|
||||
3070 GOSUB 750
|
||||
3080 GOSUB 1100
|
||||
3090 AA=Q: GOSUB 3400
|
||||
3095 IF Q>0 AND AA<17 THEN 3060
|
||||
3100 Q(I)=Q-(Q<0)/2
|
||||
3110 IF Q<0 THEN 3140
|
||||
3120 AA=Q: GOSUB 3400
|
||||
3125 PRINT "---TOTAL IS";AA
|
||||
3130 PRINT
|
||||
3140 REM--TALLY THE RESULT
|
||||
3150 REM
|
||||
3160 Z$="LOSES PUSHES WINS "
|
||||
3165 PRINT
|
||||
3170 FOR I=1 TO N
|
||||
3180 AA=Q(I): GOSUB 3400
|
||||
3182 AB=Q(I+D1): GOSUB 3410
|
||||
3184 AC=Q(D1): GOSUB 3420
|
||||
3186 S(I)=S(I)+B(I)*SGN(AA-AC)+B(I+D1)*SGN(AB-AC)
|
||||
3188 B(I+D1)=0
|
||||
3200 PRINT "PLAYER";I;
|
||||
3210 PRINT MID$(Z$,SGN(S(I))*6+7,6);" ";
|
||||
3220 IF S(I)<>0 THEN 3250
|
||||
3230 PRINT " ";
|
||||
3240 GOTO 3260
|
||||
3250 PRINT ABS(S(I));
|
||||
3260 T(I)=T(I)+S(I)
|
||||
3270 PRINT "TOTAL=";T(I)
|
||||
3280 GOSUB 1200
|
||||
3290 T(D1)=T(D1)-S(I)
|
||||
3300 I=I+D1
|
||||
3310 GOSUB 1200
|
||||
3320 I=I-D1
|
||||
3330 NEXT I
|
||||
3340 PRINT "DEALER'S TOTAL=";T(D1)
|
||||
3345 PRINT
|
||||
3350 GOSUB 1200
|
||||
3360 GOTO 1810
|
||||
3400 AA=AA+11*(AA>=22): RETURN
|
||||
3410 AB=AB+11*(AB>=22): RETURN
|
||||
3420 AC=AC+11*(AC>=22): RETURN
|
||||
7
11 Bombardment/README.md
Normal file
7
11 Bombardment/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bombardment
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=22
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
93
11 Bombardment/bombardment.bas
Normal file
93
11 Bombardment/bombardment.bas
Normal file
@@ -0,0 +1,93 @@
|
||||
10 PRINT TAB(33);"BOMBARDMENT"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
100 PRINT "YOU ARE ON A BATTLEFIELD WITH 4 PLATOONS AND YOU"
|
||||
110 PRINT "HAVE 25 OUTPOSTS AVAILABLE WHERE THEY MAY BE PLACED."
|
||||
120 PRINT "YOU CAN ONLY PLACE ONE PLATOON AT ANY ONE OUTPOST."
|
||||
130 PRINT "THE COMPUTER DOES THE SAME WITH ITS FOUR PLATOONS."
|
||||
135 PRINT
|
||||
140 PRINT "THE OBJECT OF THE GAME IS TO FIRE MISSLES AT THE"
|
||||
150 PRINT "OUTPOSTS OF THE COMPUTER. IT WILL DO THE SAME TO YOU."
|
||||
160 PRINT "THE ONE WHO DESTROYS ALL FOUR OF THE ENEMY'S PLATOONS"
|
||||
170 PRINT "FIRST IS THE WINNER."
|
||||
180 PRINT
|
||||
190 PRINT "GOOD LUCK... AND TELL US WHERE YOU WANT THE BODIES SENT!"
|
||||
200 PRINT
|
||||
210 PRINT "TEAR OFF MATRIX AND USE IT TO CHECK OFF THE NUMBERS."
|
||||
220 FOR R=1 TO 5: PRINT: NEXT R
|
||||
260 DIM M(100)
|
||||
270 FOR R=1 TO 5
|
||||
280 I=(R-1)*5+1
|
||||
290 PRINT I,I+1,I+2,I+3,I+4
|
||||
300 NEXT R
|
||||
350 FOR R=1 TO 10: PRINT: NEXT R
|
||||
380 C=INT(RND(1)*25)+1
|
||||
390 D=INT(RND(1)*25)+1
|
||||
400 E=INT(RND(1)*25)+1
|
||||
410 F=INT(RND(1)*25)+1
|
||||
420 IF C=D THEN 390
|
||||
430 IF C=E THEN 400
|
||||
440 IF C=F THEN 410
|
||||
450 IF D=E THEN 400
|
||||
460 IF D=F THEN 410
|
||||
470 IF E=F THEN 410
|
||||
480 PRINT "WHAT ARE YOUR FOUR POSITIONS";
|
||||
490 INPUT G,H,K,L
|
||||
495 PRINT
|
||||
500 PRINT "WHERE DO YOU WISH TO FIRE YOUR MISSLE";
|
||||
510 INPUT Y
|
||||
520 IF Y=C THEN 710
|
||||
530 IF Y=D THEN 710
|
||||
540 IF Y=E THEN 710
|
||||
550 IF Y=F THEN 710
|
||||
560 GOTO 630
|
||||
570 M=INT(RND(1)*25)+1
|
||||
575 GOTO 1160
|
||||
580 IF X=G THEN 920
|
||||
590 IF X=H THEN 920
|
||||
600 IF X=L THEN 920
|
||||
610 IF X=K THEN 920
|
||||
620 GOTO 670
|
||||
630 PRINT "HA, HA YOU MISSED. MY TURN NOW:"
|
||||
640 PRINT: PRINT: GOTO 570
|
||||
670 PRINT "I MISSED YOU, YOU DIRTY RAT. I PICKED";M". YOUR TURN:"
|
||||
680 PRINT: PRINT: GOTO 500
|
||||
710 Q=Q+1
|
||||
720 IF Q=4 THEN 890
|
||||
730 PRINT "YOU GOT ONE OF MY OUTPOSTS!"
|
||||
740 IF Q=1 THEN 770
|
||||
750 IF Q=2 THEN 810
|
||||
760 IF Q=3 THEN 850
|
||||
770 PRINT "ONE DOWN, THREE TO GO."
|
||||
780 PRINT: PRINT: GOTO 570
|
||||
810 PRINT "TWO DOWN, TWO TO GO."
|
||||
820 PRINT: PRINT: GOTO 570
|
||||
850 PRINT "THREE DOWN, ONE TO GO."
|
||||
860 PRINT: PRINT: GOTO 570
|
||||
890 PRINT "YOU GOT ME, I'M GOING FAST. BUT I'LL GET YOU WHEN"
|
||||
900 PRINT "MY TRANSISTO&S RECUP%RA*E!"
|
||||
910 GOTO 1235
|
||||
920 Z=Z+1
|
||||
930 IF Z=4 THEN 1110
|
||||
940 PRINT "I GOT YOU. IT WON'T BE LONG NOW. POST";X;"WAS HIT."
|
||||
950 IF Z=1 THEN 990
|
||||
960 IF Z=2 THEN 1030
|
||||
970 IF Z=3 THEN 1070
|
||||
990 PRINT "YOU HAVE ONLY THREE OUTPOSTS LEFT."
|
||||
1000 PRINT: PRINT: GOTO 500
|
||||
1030 PRINT "YOU HAVE ONLY TWO OUTPOSTS LEFT."
|
||||
1040 PRINT: PRINT: GOTO 500
|
||||
1070 PRINT "YOU HAVE ONLY ONE OUTPOST LEFT."
|
||||
1080 PRINT: PRINT: GOTO 500
|
||||
1110 PRINT "YOU'RE DEAD. YOUR LAST OUTPOST WAS AT";X;". HA, HA, HA."
|
||||
1120 PRINT "BETTER LUCK NEXT TIME."
|
||||
1150 GOTO 1235
|
||||
1160 P=P+1
|
||||
1170 N=P-1
|
||||
1180 FOR T=1 TO N
|
||||
1190 IF M=M(T) THEN 570
|
||||
1200 NEXT T
|
||||
1210 X=M
|
||||
1220 M(P)=M
|
||||
1230 GOTO 580
|
||||
1235 END
|
||||
7
12 Bombs Away/README.md
Normal file
7
12 Bombs Away/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bombs Away
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=24
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
65
12 Bombs Away/bombsaway.bas
Normal file
65
12 Bombs Away/bombsaway.bas
Normal file
@@ -0,0 +1,65 @@
|
||||
8 PRINT "YOU ARE A PILOT IN A WORLD WAR II BOMBER."
|
||||
10 INPUT "WHAT SIDE -- ITALY(1), ALLIES(2), JAPAN(3), GERMANY(4)";A
|
||||
20 IF A>0 AND A<5 THEN 25
|
||||
22 PRINT "TRY AGAIN..." : GOTO 10
|
||||
25 ON A GOTO 30, 110, 200, 220
|
||||
30 INPUT "YOUR TARGET -- ALBANIA(1), GREECE(2), NORTH AFRICA(3)";B
|
||||
40 IF B>0 AND B<4 THEN 45
|
||||
42 PRINT "TRY AGAIN..." : GOTO 30
|
||||
45 PRINT : ON B GOTO 50, 80,90
|
||||
50 PRINT "SHOULD BE EASY -- YOU'RE FLYING A NAZI-MADE PLANE."
|
||||
60 GOTO 280
|
||||
80 PRINT "BE CAREFUL!!!" : GOTO 280
|
||||
90 PRINT "YOU'RE GOING FOR THE OIL, EH?" : GOTO 280
|
||||
110 INPUT "AIRCRAFT -- LIBERATOR(1), B-29(2), B-17(3), LANCASTER(4)";G
|
||||
120 IF G>0 AND G<5 THEN 125
|
||||
122 PRINT "TRY AGAIN..." : GOTO 110
|
||||
125 PRINT : ON G GOTO 130, 150, 170, 190
|
||||
130 PRINT "YOU'VE GOT 2 TONS OF BOMBS FLYING FOR PLOESTI." : GOTO 280
|
||||
150 PRINT "YOU'RE DUMPING THE A-BOMB ON HIROSHIMA." : GOTO 280
|
||||
170 PRINT "YOU'RE CHASING THE BISMARK IN THE NORTH SEA." : GOTO 280
|
||||
190 PRINT "YOU'RE BUSTING A GERMAN HEAVY WATER PLANT IN THE RUHR."
|
||||
195 GOTO 280
|
||||
200 PRINT "YOU'RE FLYING A KAMIKAZE MISSION OVER THE USS LEXINGTON."
|
||||
205 INPUT "YOUR FIRST KAMIKAZE MISSION(Y OR N)";F$
|
||||
207 IF F$="N" THEN S=0 : GOTO 358
|
||||
210 PRINT : IF RND(1)>.65 THEN 325
|
||||
215 GOTO 380
|
||||
220 PRINT "A NAZI, EH? OH WELL. ARE YOU GOING FOR RUSSIA(1),"
|
||||
230 INPUT "ENGLAND(2), OR FRANCE(3)";M : IF M>0 AND M<4 THEN 235
|
||||
232 PRINT "TRY AGAIN..." : GOTO 220
|
||||
235 PRINT : ON M GOTO 250, 260, 270
|
||||
250 PRINT "YOU'RE NEARING STALINGRAD." : GOTO 280
|
||||
260 PRINT "NEARING LONDON. BE CAREFUL, THEY'VE GOT RADAR." : GOTO 280
|
||||
270 PRINT "NEARING VERSAILLES. DUCK SOUP. THEY'RE NEARLY DEFENSELESS."
|
||||
280 PRINT
|
||||
285 INPUT "HOW MANY MISSIONS HAVE YOU FLOWN";D
|
||||
290 IF D<160 THEN 300
|
||||
292 PRINT "MISSIONS, NOT MILES..."
|
||||
295 PRINT "150 MISSIONS IS HIGH EVEN FOR OLD-TIMERS."
|
||||
297 PRINT "NOW THEN, "; : GOTO 285
|
||||
300 PRINT:IF D<100 THEN 310
|
||||
305 PRINT "THAT'S PUSHING THE ODDS!" : GOTO 320
|
||||
310 IF D<25 THEN PRINT "FRESH OUT OF TRAINING, EH?"
|
||||
320 PRINT : IF D<160*RND(1) THEN 330
|
||||
325 PRINT "DIRECT HIT!!!! "INT(100*RND(1))"KILLED."
|
||||
327 PRINT "MISSION SUCCESSFUL." : GOTO 390
|
||||
330 PRINT "MISSED TARGET BY"INT(2+30*RND(1))"MILES!"
|
||||
335 PRINT "NOW YOU'RE REALLY IN FOR IT !!" : PRINT
|
||||
340 INPUT "DOES THE ENEMY HAVE GUNS(1), MISSILES(2), OR BOTH(3)";R
|
||||
345 IF R>0 AND R<4 THEN 350
|
||||
347 PRINT "TRY AGAIN..." : GOTO 340
|
||||
350 PRINT : T=0 : IF R=2 THEN 360
|
||||
355 INPUT "WHAT'S THE PERCENT HIT RATE OF ENEMY GUNNERS (10 TO 50)";S
|
||||
357 IF S<10 THEN PRINT "YOU LIE, BUT YOU'LL PAY...": GOTO 380
|
||||
358 PRINT
|
||||
360 PRINT : IF R>1 THEN T=35
|
||||
365 IF S+T>100*RND(1) THEN 380
|
||||
370 PRINT "YOU MADE IT THROUGH TREMENDOUS FLAK!!" : GOTO 390
|
||||
380 PRINT "* * * * BOOM * * * *"
|
||||
384 PRINT "YOU HAVE BEEN SHOT DOWN....."
|
||||
386 PRINT "DEARLY BELOVED, WE ARE GATHERED HERE TODAY TO PAY OUR"
|
||||
387 PRINT "LAST TRIBUTE..."
|
||||
390 PRINT:PRINT:PRINT:INPUT "ANOTHER MISSION (Y OR N)";U$
|
||||
395 IF U$="Y" THEN 8
|
||||
400 PRINT "CHICKEN !!!" : PRINT : END
|
||||
7
13 Bounce/README.md
Normal file
7
13 Bounce/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bounce
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=25
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
53
13 Bounce/bounce.bas
Normal file
53
13 Bounce/bounce.bas
Normal file
@@ -0,0 +1,53 @@
|
||||
10 PRINT TAB(33);"BOUNCE"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
90 DIM T(20)
|
||||
100 PRINT "THIS SIMULATION LETS YOU SPECIFY THE INITIAL VELOCITY"
|
||||
110 PRINT "OF A BALL THROWN STRAIGHT UP, AND THE COEFFICIENT OF"
|
||||
120 PRINT "ELASTICITY OF THE BALL. PLEASE USE A DECIMAL FRACTION"
|
||||
130 PRINT "COEFFICIENCY (LESS THAN 1)."
|
||||
131 PRINT
|
||||
132 PRINT "YOU ALSO SPECIFY THE TIME INCREMENT TO BE USED IN"
|
||||
133 PRINT "'STROBING' THE BALL'S FLIGHT (TRY .1 INITIALLY)."
|
||||
134 PRINT
|
||||
135 INPUT "TIME INCREMENT (SEC)";S2
|
||||
140 PRINT
|
||||
150 INPUT "VELOCITY (FPS)";V
|
||||
160 PRINT
|
||||
170 INPUT "COEFFICIENT";C
|
||||
180 PRINT
|
||||
182 PRINT "FEET"
|
||||
184 PRINT
|
||||
186 S1=INT(70/(V/(16*S2)))
|
||||
190 FOR I=1 TO S1
|
||||
200 T(I)=V*C^(I-1)/16
|
||||
210 NEXT I
|
||||
220 FOR H=INT(-16*(V/32)^2+V^2/32+.5) TO 0 STEP -.5
|
||||
221 IF INT(H)<>H THEN 225
|
||||
222 PRINT H;
|
||||
225 L=0
|
||||
230 FOR I=1 TO S1
|
||||
240 FOR T=0 TO T(I) STEP S2
|
||||
245 L=L+S2
|
||||
250 IF ABS(H-(.5*(-32)*T^2+V*C^(I-1)*T))>.25 THEN 270
|
||||
260 PRINT TAB(L/S2);"0";
|
||||
270 NEXT T
|
||||
275 T=T(I+1)/2
|
||||
276 IF -16*T^2+V*C^(I-1)*T<H THEN 290
|
||||
280 NEXT I
|
||||
290 PRINT
|
||||
300 NEXT H
|
||||
310 PRINT TAB(1);
|
||||
320 FOR I=1 TO INT(L+1)/S2+1
|
||||
330 PRINT ".";
|
||||
340 NEXT I
|
||||
350 PRINT
|
||||
355 PRINT " 0";
|
||||
360 FOR I=1 TO INT(L+.9995)
|
||||
380 PRINT TAB(INT(I/S2));I;
|
||||
390 NEXT I
|
||||
400 PRINT
|
||||
410 PRINT TAB(INT(L+1)/(2*S2)-2);"SECONDS"
|
||||
420 PRINT
|
||||
430 GOTO 135
|
||||
440 END
|
||||
7
14 Bowling/README.md
Normal file
7
14 Bowling/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bowling
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=26
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
101
14 Bowling/bowling.bas
Normal file
101
14 Bowling/bowling.bas
Normal file
@@ -0,0 +1,101 @@
|
||||
10 PRINT TAB(34);"BOWL"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
270 DIM C(15),A(100,6)
|
||||
360 PRINT "WELCOME TO THE ALLEY"
|
||||
450 PRINT "BRING YOUR FRIENDS"
|
||||
540 PRINT "OKAY LET'S FIRST GET ACQUAINTED"
|
||||
630 PRINT ""
|
||||
720 PRINT "THE INSTRUCTIONS (Y/N)"
|
||||
810 INPUT Z$
|
||||
900 IF Z$="Y" THEN 990
|
||||
960 IF Z$="N" THEN 1530
|
||||
990 PRINT "THE GAME OF BOWLING TAKES MIND AND SKILL.DURING THE GAME"
|
||||
1080 PRINT "THE COMPUTER WILL KEEP SCORE.YOU MAY COMPETE WITH"
|
||||
1170 PRINT "OTHER PLAYERS[UP TO FOUR].YOU WILL BE PLAYING TEN FRAMES"
|
||||
1260 PRINT "ON THE PIN DIAGRAM 'O' MEANS THE PIN IS DOWN...'+' MEANS THE"
|
||||
1350 PRINT "PIN IS STANDING.AFTER THE GAME THE COMPUTER WILL SHOW YOUR"
|
||||
1440 PRINT "SCORES ."
|
||||
1530 PRINT "FIRST OF ALL...HOW MANY ARE PLAYING";
|
||||
1620 INPUT R
|
||||
1710 PRINT
|
||||
1800 PRINT "VERY GOOD..."
|
||||
1890 FOR I=1 TO 100: FOR J=1 TO 6: A(I,J)=0: NEXT J: NEXT I
|
||||
1980 F=1
|
||||
2070 FOR P=1 TO R
|
||||
2160 M=0
|
||||
2250 B=1
|
||||
2340 M=0: Q=0
|
||||
2430 FOR I=1 TO 15: C(I)=0: NEXT I
|
||||
2520 REM ARK BALL GENERATOR USING MOD '15' SYSTEM
|
||||
2610 PRINT "TYPE ROLL TO GET THE BALL GOING."
|
||||
2700 INPUT N$
|
||||
2790 K=0: D=0
|
||||
2880 FOR I=1 TO 20
|
||||
2970 X=INT(RND(1)*100)
|
||||
3060 FOR J=1 TO 10
|
||||
3150 IF X<15*J THEN 3330
|
||||
3240 NEXT J
|
||||
3330 C(15*J-X)=1
|
||||
3420 NEXT I
|
||||
3510 REM ARK PIN DIAGRAM
|
||||
3600 PRINT "PLAYER:"P;"FRAME:";F"BALL:"B
|
||||
3690 FOR I=0 TO 3
|
||||
3780 PRINT
|
||||
3870 FOR J=1 TO 4-I
|
||||
3960 K=K+1
|
||||
4050 IF C(K)=1 THEN 4320
|
||||
4140 PRINT TAB(I);"+ ";
|
||||
4230 GOTO 4410
|
||||
4320 PRINT TAB(I);"O ";
|
||||
4410 NEXT J
|
||||
4500 NEXT I
|
||||
4590 PRINT ""
|
||||
4680 REM ARK ROLL ANALYSIS
|
||||
4770 FOR I=1 TO 10
|
||||
4860 D=D+C(I)
|
||||
4950 NEXT I
|
||||
5040 IF D-M <> 0 THEN 5220
|
||||
5130 PRINT "GUTTER!!"
|
||||
5220 IF B<>1 OR D<>10 THEN 5490
|
||||
5310 PRINT "STRIKE!!!!!"
|
||||
5400 Q=3
|
||||
5490 IF B<>2 OR D<>10 THEN 5760
|
||||
5580 PRINT "SPARE!!!!"
|
||||
5670 Q=2
|
||||
5760 IF B<>2 OR D>=10 THEN 6030
|
||||
5850 PRINT "ERROR!!!"
|
||||
5940 Q=1
|
||||
6030 IF B<>1 OR D>=10 THEN 6210
|
||||
6120 PRINT "ROLL YOUR 2ND BALL"
|
||||
6210 REM ARK STORAGE OF THE SCORES
|
||||
6300 PRINT
|
||||
6390 A(F*P,B)=D
|
||||
6480 IF B=2 THEN 7020
|
||||
6570 B=2
|
||||
6660 M=D
|
||||
6750 IF Q=3 THEN 6210
|
||||
6840 A(F*P,B)=D-M
|
||||
6930 IF Q=0 THEN 2520
|
||||
7020 A(F*P,3)=Q
|
||||
7110 NEXT P
|
||||
7200 F=F+1
|
||||
7290 IF F<11 THEN 2070
|
||||
7295 PRINT "FRAMES"
|
||||
7380 FOR I=1 TO 10
|
||||
7470 PRINT I;
|
||||
7560 NEXT I
|
||||
7650 PRINT
|
||||
7740 FOR P=1 TO R
|
||||
7830 FOR I=1 TO 3
|
||||
7920 FOR J=1 TO 10
|
||||
8010 PRINT A(J*P,I);
|
||||
8100 NEXT J
|
||||
8105 PRINT
|
||||
8190 NEXT I
|
||||
8280 PRINT
|
||||
8370 NEXT P
|
||||
8460 PRINT "DO YOU WANT ANOTHER GAME"
|
||||
8550 INPUT A$
|
||||
8640 IF LEFT$(A$,1)="Y" THEN 2610
|
||||
8730 END
|
||||
7
15 Boxing/README.md
Normal file
7
15 Boxing/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Boxing
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=28
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
142
15 Boxing/boxing.bas
Normal file
142
15 Boxing/boxing.bas
Normal file
@@ -0,0 +1,142 @@
|
||||
1 PRINT TAB(33);"BOXING"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
4 PRINT "BOXING OLYMPIC STYLE (3 ROUNDS -- 2 OUT OF 3 WINS)"
|
||||
5 J=0
|
||||
6 L=0
|
||||
8 PRINT
|
||||
10 PRINT "WHAT IS YOUR OPPONENT'S NAME";
|
||||
20 INPUT J$
|
||||
30 PRINT "INPUT YOUR MAN'S NAME";
|
||||
40 INPUT L$
|
||||
50 PRINT "DIFFERENT PUNCHES ARE: (1) FULL SWING; (2) HOOK; (3) UPPERCUT; (4) JAB."
|
||||
60 PRINT "WHAT IS YOUR MANS BEST";
|
||||
64 INPUT B
|
||||
70 PRINT "WHAT IS HIS VULNERABILITY";
|
||||
80 INPUT D
|
||||
90 B1=INT(4*RND(1)+1)
|
||||
100 D1=INT(4*RND(1)+1)
|
||||
110 IF B1=D1 THEN 90
|
||||
120 PRINT J$;"'S ADVANTAGE IS";B1;"AND VULNERABILITY IS SECRET.":PRINT
|
||||
130 FOR R=1 TO 3
|
||||
140 IF J>= 2 THEN 1040
|
||||
150 IF L>=2 THEN 1060
|
||||
160 X=0
|
||||
170 Y=0
|
||||
180 PRINT "ROUND";R;"BEGINS..."
|
||||
185 FOR R1= 1 TO 7
|
||||
190 I=INT(10*RND(1)+1)
|
||||
200 IF I>5 THEN 600
|
||||
210 PRINT L$;"'S PUNCH";
|
||||
220 INPUT P
|
||||
221 IF P=B THEN 225
|
||||
222 GOTO 230
|
||||
225 X=X+2
|
||||
230 IF P=1 THEN 340
|
||||
240 IF P=2 THEN 450
|
||||
250 IF P=3 THEN 520
|
||||
270 PRINT L$;" JABS AT ";J$"'S HEAD ";
|
||||
271 IF D1=4 THEN 290
|
||||
275 C=INT(8*RND(1)+1)
|
||||
280 IF C<4 THEN 310
|
||||
290 X=X+3
|
||||
300 GOTO 950
|
||||
310 PRINT "IT'S BLOCKED."
|
||||
330 GOTO 950
|
||||
340 PRINT L$ " SWINGS AND ";
|
||||
341 IF D1=4 THEN 410
|
||||
345 X3=INT(30*RND(1)+1)
|
||||
350 IF X3<10 THEN 410
|
||||
360 PRINT "HE MISSES ";
|
||||
370 PRINT
|
||||
375 IF X=1 THEN 950
|
||||
380 PRINT
|
||||
390 PRINT
|
||||
400 GOTO 300
|
||||
410 PRINT "HE CONNECTS!"
|
||||
420 IF X>35 THEN 980
|
||||
425 X=X+15
|
||||
440 GOTO 300
|
||||
450 PRINT L$;" GIVES THE HOOK... ";
|
||||
455 IF D1=2 THEN 480
|
||||
460 H1=INT(2*RND(1)+1)
|
||||
470 IF H1=1 THEN 500
|
||||
475 PRINT "CONNECTS..."
|
||||
480 X=X+7
|
||||
490 GOTO 300
|
||||
500 PRINT "BUT IT'S BLOCKED!!!!!!!!!!!!!"
|
||||
510 GOTO 300
|
||||
520 PRINT L$ " TRIES AN UPPERCUT ";
|
||||
530 IF D1=3 THEN 570
|
||||
540 D5=INT(100*RND(1)+1)
|
||||
550 IF D5<51 THEN 570
|
||||
560 PRINT "AND IT'S BLOCKED (LUCKY BLOCK!)"
|
||||
565 GOTO 300
|
||||
570 PRINT "AND HE CONNECTS!"
|
||||
580 X=X+4
|
||||
590 GOTO 300
|
||||
600 J7=INT(4*RND(1)+1)
|
||||
601 IF J7 =B1 THEN 605
|
||||
602 GOTO 610
|
||||
605 Y=Y+2
|
||||
610 IF J7=1 THEN 720
|
||||
620 IF J7=2 THEN 810
|
||||
630 IF J7 =3 THEN 860
|
||||
640 PRINT J$;" JABS AND ";
|
||||
645 IF D=4 THEN 700
|
||||
650 Z4=INT(7*RND(1)+1)
|
||||
655 IF Z4>4 THEN 690
|
||||
660 PRINT "IT'S BLOCKED!"
|
||||
670 GOTO 300
|
||||
690 PRINT " BLOOD SPILLS !!!"
|
||||
700 Y=Y+5
|
||||
710 GOTO 300
|
||||
720 PRINT J$" TAKES A FULL SWING AND";
|
||||
730 IF D=1 THEN 770
|
||||
740 R6=INT(60*RND(1)+1)
|
||||
745 IF R6 <30 THEN 770
|
||||
750 PRINT " IT'S BLOCKED!"
|
||||
760 GOTO 300
|
||||
770 PRINT " POW!!!!! HE HITS HIM RIGHT IN THE FACE!"
|
||||
780 IF Y>35 THEN 1010
|
||||
790 Y=Y+15
|
||||
800 GOTO 300
|
||||
810 PRINT J$;" GETS ";L$;" IN THE JAW (OUCH!)"
|
||||
820 Y=Y+7
|
||||
830 PRINT "....AND AGAIN!"
|
||||
835 Y=Y+5
|
||||
840 IF Y>35 THEN 1010
|
||||
850 PRINT
|
||||
860 PRINT L$;" IS ATTACKED BY AN UPPERCUT (OH,OH)..."
|
||||
865 IF D=3 THEN 890
|
||||
870 Q4=INT(200*RND(1)+1)
|
||||
880 IF Q4>75 THEN 920
|
||||
890 PRINT "AND ";J$;" CONNECTS..."
|
||||
900 Y=Y+8
|
||||
910 GOTO 300
|
||||
920 PRINT " BLOCKS AND HITS ";J$;" WITH A HOOK."
|
||||
930 X=X+5
|
||||
940 GOTO 300
|
||||
950 NEXT R1
|
||||
951 IF X>Y THEN 955
|
||||
952 PRINT:PRINT J$" WINS ROUND" R
|
||||
953 J=J+1
|
||||
954 GOTO 960
|
||||
955 PRINT:PRINT L$" WINS ROUND"R
|
||||
956 L=L+1
|
||||
960 NEXT R
|
||||
961 IF J>= 2 THEN 1040
|
||||
962 IF L>=2 THEN 1060
|
||||
980 PRINT J$ " IS KNOCKED COLD AND " L$" IS THE WINNER AND CHAMP!";
|
||||
1000 GOTO 1080
|
||||
1010 PRINT L$ " IS KNOCKED COLD AND " J$" IS THE WINNER AND CHAMP!";
|
||||
1030 GOTO 1000
|
||||
1040 PRINT J$ " WINS (NICE GOING," J$;")."
|
||||
1050 GOTO 1000
|
||||
1060 PRINT L$ " AMAZINGLY WINS!!"
|
||||
1070 GOTO 1000
|
||||
1080 PRINT
|
||||
1085 PRINT
|
||||
1090 PRINT "AND NOW GOODBYE FROM THE OLYMPIC ARENA."
|
||||
1100 PRINT
|
||||
1110 END
|
||||
7
16 Bug/README.md
Normal file
7
16 Bug/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bug
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=30
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
256
16 Bug/bug.bas
Normal file
256
16 Bug/bug.bas
Normal file
@@ -0,0 +1,256 @@
|
||||
10 PRINT TAB(34);"BUG"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
40 REM
|
||||
50 A=0: B=0: H=0: L=0: N=0: P=0: Q=0: R=0: S=0: T=0: U=0: V=0: Y=0
|
||||
60 PRINT "THE GAME BUG"
|
||||
70 PRINT "I HOPE YOU ENJOY THIS GAME."
|
||||
80 PRINT
|
||||
90 PRINT "DO YOU WANT INSTRUCTIONS";
|
||||
100 INPUT Z$
|
||||
110 IF Z$="NO" THEN 300
|
||||
120 PRINT "THE OBJECT OF BUG IS TO FINISH YOUR BUG BEFORE I FINISH"
|
||||
130 PRINT "MINE. EACH NUMBER STANDS FOR A PART OF THE BUG BODY."
|
||||
140 PRINT "I WILL ROLL THE DIE FOR YOU, TELL YOU WHAT I ROLLED FOR YOU"
|
||||
150 PRINT "WHAT THE NUMBER STANDS FOR, AND IF YOU CAN GET THE PART."
|
||||
160 PRINT "IF YOU CAN GET THE PART I WILL GIVE IT TO YOU."
|
||||
170 PRINT "THE SAME WILL HAPPEN ON MY TURN."
|
||||
180 PRINT "IF THERE IS A CHANGE IN EITHER BUG I WILL GIVE YOU THE"
|
||||
190 PRINT "OPTION OF SEEING THE PICTURES OF THE BUGS."
|
||||
200 PRINT "THE NUMBERS STAND FOR PARTS AS FOLLOWS:"
|
||||
210 PRINT "NUMBER","PART","NUMBER OF PART NEEDED"
|
||||
220 PRINT "1","BODY","1"
|
||||
230 PRINT "2","NECK","1"
|
||||
240 PRINT "3","HEAD","1"
|
||||
250 PRINT "4","FEELERS","2"
|
||||
260 PRINT "5","TAIL","1"
|
||||
270 PRINT "6","LEGS","6"
|
||||
280 PRINT
|
||||
290 PRINT
|
||||
300 IF Y>0 THEN 2480
|
||||
310 Z=INT(6*RND(1)+1)
|
||||
320 C=1
|
||||
330 PRINT "YOU ROLLED A";Z
|
||||
340 ON Z GOTO 350,430,540,650,760,870
|
||||
350 PRINT "1=BODY"
|
||||
360 IF B=1 THEN 410
|
||||
370 PRINT "YOU NOW HAVE A BODY."
|
||||
380 B=1
|
||||
390 C=0
|
||||
400 GOTO 970
|
||||
410 PRINT "YOU DO NOT NEED A BODY."
|
||||
420 GOTO 970
|
||||
430 PRINT "2=NECK"
|
||||
440 IF N=1 THEN 500
|
||||
450 IF B=0 THEN 520
|
||||
460 PRINT "YOU NOW HAVE A NECK."
|
||||
470 N=1
|
||||
480 C=0
|
||||
490 GOTO 970
|
||||
500 PRINT "YOU DO NOT NEED A NECK."
|
||||
510 GOTO 970
|
||||
520 PRINT "YOU DO NOT HAVE A BODY."
|
||||
530 GOTO 970
|
||||
540 PRINT "3=HEAD"
|
||||
550 IF N=0 THEN 610
|
||||
560 IF H=1 THEN 630
|
||||
570 PRINT "YOU NEEDED A HEAD."
|
||||
580 H=1
|
||||
590 C=0
|
||||
600 GOTO 970
|
||||
610 PRINT "YOU DO NOT HAVE A NECK."
|
||||
620 GOTO 970
|
||||
630 PRINT "YOU HAVE A HEAD."
|
||||
640 GOTO 970
|
||||
650 PRINT "4=FEELERS"
|
||||
660 IF H=0 THEN 740
|
||||
670 IF A=2 THEN 720
|
||||
680 PRINT "I NOW GIVE YOU A FEELER."
|
||||
690 A=A+1
|
||||
700 C=0
|
||||
710 GOTO 970
|
||||
720 PRINT "YOU HAVE TWO FEELERS ALREADY."
|
||||
730 GOTO 970
|
||||
740 PRINT "YOU DO NOT HAVE A HEAD."
|
||||
750 GOTO 970
|
||||
760 PRINT "5=TAIL"
|
||||
770 IF B=0 THEN 830
|
||||
780 IF T=1 THEN 850
|
||||
790 PRINT "I NOW GIVE YOU A TAIL."
|
||||
800 T=T+1
|
||||
810 C=0
|
||||
820 GOTO 970
|
||||
830 PRINT "YOU DO NOT HAVE A BODY."
|
||||
840 GOTO 970
|
||||
850 PRINT "YOU ALREADY HAVE A TAIL."
|
||||
860 GOTO 970
|
||||
870 PRINT "6=LEG"
|
||||
880 IF L=6 THEN 940
|
||||
890 IF B=0 THEN 960
|
||||
900 L=L+1
|
||||
910 C=0
|
||||
920 PRINT "YOU NOW HAVE";L;"LEGS."
|
||||
930 GOTO 970
|
||||
940 PRINT "YOU HAVE 6 FEET ALREADY."
|
||||
950 GOTO 970
|
||||
960 PRINT "YOU DO NOT HAVE A BODY."
|
||||
970 X=INT(6*RND(1)+1)
|
||||
971 PRINT
|
||||
975 FOR DELAY=1 TO 2000:NEXT DELAY
|
||||
980 PRINT "I ROLLED A";X
|
||||
990 ON X GOTO 1000,1080,1190,1300,1410,1520
|
||||
1000 PRINT "1=BODY"
|
||||
1010 IF P=1 THEN 1060
|
||||
1020 PRINT "I NOW HAVE A BODY."
|
||||
1030 C=0
|
||||
1040 P=1
|
||||
1050 GOTO 1630
|
||||
1060 PRINT "I DO NOT NEED A BODY."
|
||||
1070 GOTO 1630
|
||||
1080 PRINT "2=NECK"
|
||||
1090 IF Q=1 THEN 1150
|
||||
1100 IF P=0 THEN 1170
|
||||
1110 PRINT "I NOW HAVE A NECK."
|
||||
1120 Q=1
|
||||
1130 C=0
|
||||
1140 GOTO 1630
|
||||
1150 PRINT "I DO NOT NEED A NECK."
|
||||
1160 GOTO 1630
|
||||
1170 PRINT "I DO NOT HAVE A BODY."
|
||||
1180 GOTO 1630
|
||||
1190 PRINT "3=HEAD"
|
||||
1200 IF Q=0 THEN 1260
|
||||
1210 IF R=1 THEN 1280
|
||||
1220 PRINT "I NEEDED A HEAD."
|
||||
1230 R=1
|
||||
1240 C=0
|
||||
1250 GOTO 1630
|
||||
1260 PRINT "I DO NOT HAVE A NECK."
|
||||
1270 GOTO 1630
|
||||
1280 PRINT "I DO NOT NEED A HEAD."
|
||||
1290 GOTO 1630
|
||||
1300 PRINT "4=FEELERS"
|
||||
1310 IF R=0 THEN 1390
|
||||
1320 IF S=2 THEN 1370
|
||||
1330 PRINT "I GET A FEELER."
|
||||
1340 S=S+1
|
||||
1350 C=0
|
||||
1360 GOTO 1630
|
||||
1370 PRINT "I HAVE 2 FEELERS ALREADY."
|
||||
1380 GOTO 1630
|
||||
1390 PRINT "I DO NOT HAVE A HEAD."
|
||||
1400 GOTO 1630
|
||||
1410 PRINT "5=TAIL"
|
||||
1420 IF P=0 THEN 1480
|
||||
1430 IF U=1 THEN 1500
|
||||
1440 PRINT "I NOW HAVE A TAIL."
|
||||
1450 U=1
|
||||
1460 C=0
|
||||
1470 GOTO 1630
|
||||
1480 PRINT "I DO NOT HAVE A BODY."
|
||||
1490 GOTO 1630
|
||||
1500 PRINT "I DO NOT NEED A TAIL."
|
||||
1510 GOTO 1630
|
||||
1520 PRINT "6=LEGS"
|
||||
1530 IF V=6 THEN 1590
|
||||
1540 IF P=0 THEN 1610
|
||||
1550 V=V+1
|
||||
1560 C=0
|
||||
1570 PRINT "I NOW HAVE";V;"LEGS."
|
||||
1580 GOTO 1630
|
||||
1590 PRINT,"I HAVE 6 FEET."
|
||||
1600 GOTO 1630
|
||||
1610 PRINT "I DO NOT HAVE A BODY."
|
||||
1620 GOTO 1630
|
||||
1630 IF A=2 AND T=1 AND L=6 THEN 1650
|
||||
1640 GOTO 1670
|
||||
1650 PRINT "YOUR BUG IS FINISHED."
|
||||
1660 Y=Y+1
|
||||
1670 IF S=2 AND P=1 AND V=6 THEN 1690
|
||||
1680 GOTO 1710
|
||||
1690 PRINT "MY BUG IS FINISHED."
|
||||
1700 Y=Y+2
|
||||
1710 IF C=1 THEN 300
|
||||
1720 PRINT "DO YOU WANT THE PICTURES";
|
||||
1730 INPUT Z$
|
||||
1740 IF Z$="NO" THEN 300
|
||||
1750 PRINT "*****YOUR BUG*****"
|
||||
1760 PRINT
|
||||
1770 PRINT
|
||||
1780 IF A=0 THEN 1860
|
||||
1790 FOR Z=1 TO 4
|
||||
1800 FOR X=1 TO A
|
||||
1810 PRINT TAB(10);
|
||||
1820 PRINT "A ";
|
||||
1830 NEXT X
|
||||
1840 PRINT
|
||||
1850 NEXT Z
|
||||
1860 IF H=0 THEN 1880
|
||||
1870 GOSUB 2470
|
||||
1880 IF N=0 THEN 1920
|
||||
1890 FOR Z=1 TO 2
|
||||
1900 PRINT " N N"
|
||||
1910 NEXT Z
|
||||
1920 IF B=0 THEN 2000
|
||||
1930 PRINT " BBBBBBBBBBBB"
|
||||
1940 FOR Z=1 TO 2
|
||||
1950 PRINT " B B"
|
||||
1960 NEXT Z
|
||||
1970 IF T<>1 THEN 1990
|
||||
1980 PRINT "TTTTTB B"
|
||||
1990 PRINT " BBBBBBBBBBBB"
|
||||
2000 IF L=0 THEN 2080
|
||||
2010 FOR Z=1 TO 2
|
||||
2020 PRINT TAB(5);
|
||||
2030 FOR X=1 TO L
|
||||
2040 PRINT " L";
|
||||
2050 NEXT X
|
||||
2060 PRINT
|
||||
2070 NEXT Z
|
||||
2080 FOR Z=1 TO 4
|
||||
2090 PRINT
|
||||
2100 NEXT Z
|
||||
2110 PRINT "*****MY BUG*****"
|
||||
2120 PRINT
|
||||
2130 PRINT
|
||||
2140 PRINT
|
||||
2150 IF S=0 THEN 2230
|
||||
2160 FOR Z=1 TO 4
|
||||
2170 PRINT TAB(10);
|
||||
2180 FOR X=1 TO S
|
||||
2190 PRINT "F ";
|
||||
2200 NEXT X
|
||||
2210 PRINT
|
||||
2220 NEXT Z
|
||||
2230 IF R<>1 THEN 2250
|
||||
2240 GOSUB 2470
|
||||
2250 IF Q=0 THEN 2280
|
||||
2260 PRINT " N N"
|
||||
2270 PRINT " N N"
|
||||
2280 IF P=0 THEN 2360
|
||||
2290 PRINT " BBBBBBBBBBBB"
|
||||
2300 FOR Z=1 TO 2
|
||||
2310 PRINT " B B"
|
||||
2320 NEXT Z
|
||||
2330 IF U<>1 THEN 2350
|
||||
2340 PRINT "TTTTTB B"
|
||||
2350 PRINT " BBBBBBBBBBBB"
|
||||
2360 IF V=0 THEN 2450
|
||||
2370 FOR Z=1 TO 2
|
||||
2380 PRINT TAB(5);
|
||||
2390 FOR X=1 TO V
|
||||
2400 PRINT " L";
|
||||
2410 NEXT X
|
||||
2420 PRINT
|
||||
2430 NEXT Z
|
||||
2450 IF Y<>0 THEN 2540
|
||||
2460 GOTO 300
|
||||
2470 PRINT " HHHHHHH"
|
||||
2480 PRINT " H H"
|
||||
2490 PRINT " H O O H"
|
||||
2500 PRINT " H H"
|
||||
2510 PRINT " H V H"
|
||||
2520 PRINT " HHHHHHH"
|
||||
2530 RETURN
|
||||
2540 PRINT "I HOPE YOU ENJOYED THE GAME, PLAY IT AGAIN SOON!!"
|
||||
2550 END
|
||||
7
17 Bullfight/README.md
Normal file
7
17 Bullfight/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bullfight
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=32
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
193
17 Bullfight/bullfight.bas
Normal file
193
17 Bullfight/bullfight.bas
Normal file
@@ -0,0 +1,193 @@
|
||||
10 PRINT TAB(34);"BULL"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 DEF FNA(K)=INT(RND(1)*2+1)
|
||||
200 PRINT:PRINT:PRINT
|
||||
202 L=1
|
||||
205 PRINT "DO YOU WANT INSTRUCTIONS";
|
||||
206 INPUT Z$
|
||||
207 IF Z$="NO" THEN 400
|
||||
210 PRINT "HELLO, ALL YOU BLOODLOVERS AND AFICIONADOS."
|
||||
220 PRINT "HERE IS YOUR BIG CHANCE TO KILL A BULL."
|
||||
230 PRINT
|
||||
240 PRINT "ON EACH PASS OF THE BULL, YOU MAY TRY"
|
||||
250 PRINT "0 - VERONICA (DANGEROUS INSIDE MOVE OF THE CAPE)"
|
||||
260 PRINT "1 - LESS DANGEROUS OUTSIDE MOVE OF THE CAPE"
|
||||
270 PRINT "2 - ORDINARY SWIRL OF THE CAPE."
|
||||
280 PRINT
|
||||
290 PRINT "INSTEAD OF THE ABOVE, YOU MAY TRY TO KILL THE BULL"
|
||||
300 PRINT "ON ANY TURN: 4 (OVER THE HORNS), 5 (IN THE CHEST)."
|
||||
310 PRINT "BUT IF I WERE YOU,"
|
||||
320 PRINT "I WOULDN'T TRY IT BEFORE THE SEVENTH PASS."
|
||||
330 PRINT
|
||||
340 PRINT "THE CROWD WILL DETERMINE WHAT AWARD YOU DESERVE"
|
||||
350 PRINT "(POSTHUMOUSLY IF NECESSARY)."
|
||||
360 PRINT "THE BRAVER YOU ARE, THE BETTER THE AWARD YOU RECIEVE."
|
||||
370 PRINT
|
||||
380 PRINT "THE BETTER THE JOB THE PICADORES AND TOREADORES DO,"
|
||||
390 PRINT "THE BETTER YOUR CHANCES ARE."
|
||||
400 PRINT
|
||||
410 PRINT
|
||||
420 D(5)=1
|
||||
430 D(4)=1
|
||||
450 DIM L$(5)
|
||||
455 A=INT(RND(1)*5+1)
|
||||
460 FOR I=1 TO 5
|
||||
463 READ L$(I)
|
||||
467 NEXT I
|
||||
470 DATA "SUPERB","GOOD","FAIR","POOR","AWFUL"
|
||||
490 PRINT "YOU HAVE DRAWN A ";L$(A);" BULL."
|
||||
500 IF A>4 THEN 530
|
||||
510 IF A<2 THEN 550
|
||||
520 GOTO 570
|
||||
530 PRINT "YOU'RE LUCKY."
|
||||
540 GOTO 570
|
||||
550 PRINT "GOOD LUCK. YOU'LL NEED IT."
|
||||
560 PRINT
|
||||
570 PRINT
|
||||
590 A$="PICADO"
|
||||
595 B$="RES"
|
||||
600 GOSUB 1610
|
||||
610 D(1)=C
|
||||
630 A$="TOREAD"
|
||||
635 B$="ORES"
|
||||
640 GOSUB 1610
|
||||
650 D(2)=C
|
||||
660 PRINT
|
||||
670 PRINT
|
||||
680 IF Z=1 THEN 1310
|
||||
690 D(3)=D(3)+1
|
||||
700 PRINT "PASS NUMBER";D(3)
|
||||
710 IF D(3)<3 THEN 760
|
||||
720 PRINT "HERE COMES THE BULL. TRY FOR A KILL";
|
||||
730 GOSUB 1930
|
||||
735 IF Z1=1 THEN 1130
|
||||
740 PRINT "CAPE MOVE";
|
||||
750 GOTO 800
|
||||
760 PRINT "THE BULL IS CHARGING AT YOU! YOU ARE THE MATADOR--"
|
||||
770 PRINT "DO YOU WANT TO KILL THE BULL";
|
||||
780 GOSUB 1930
|
||||
785 IF Z1=1 THEN 1130
|
||||
790 PRINT "WHAT MOVE DO YOU MAKE WITH THE CAPE";
|
||||
800 INPUT E
|
||||
810 IF E<>INT(ABS(E)) THEN 830
|
||||
820 IF E<3 THEN 850
|
||||
830 PRINT "DON'T PANIC, YOU IDIOT! PUT DOWN A CORRECT NUMBER"
|
||||
840 GOTO 800
|
||||
850 REM
|
||||
860 IF E=0 THEN 920
|
||||
870 IF E=1 THEN 900
|
||||
880 M=.5
|
||||
890 GOTO 930
|
||||
900 M=2
|
||||
910 GOTO 930
|
||||
920 M=3
|
||||
930 L=L+M
|
||||
940 F=(6-A+M/10)*RND(1)/((D(1)+D(2)+D(3)/10)*5)
|
||||
950 IF F<.51 THEN 660
|
||||
960 PRINT "THE BULL HAS GORED YOU!"
|
||||
970 ON FNA(0) GOTO 980,1010
|
||||
980 PRINT "YOU ARE DEAD."
|
||||
990 D(4)=1.5
|
||||
1000 GOTO 1310
|
||||
1010 PRINT "YOU ARE STILL ALIVE.":PRINT
|
||||
1020 PRINT "DO YOU RUN FROM THE RING";
|
||||
1030 GOSUB 1930
|
||||
1035 IF Z1=2 THEN 1070
|
||||
1040 PRINT "COWARD"
|
||||
1050 D(4)=0
|
||||
1060 GOTO 1310
|
||||
1070 PRINT "YOU ARE BRAVE. STUPID, BUT BRAVE."
|
||||
1080 ON FNA(0) GOTO 1090,1110
|
||||
1090 D(4)=2
|
||||
1100 GOTO 660
|
||||
1110 PRINT "YOU ARE GORED AGAIN!"
|
||||
1120 GOTO 970
|
||||
1130 REM
|
||||
1140 Z=1
|
||||
1150 PRINT:PRINT "IT IS THE MOMENT OF TRUTH.":PRINT
|
||||
1155 PRINT "HOW DO YOU TRY TO KILL THE BULL";
|
||||
1160 INPUT H
|
||||
1170 IF H=4 THEN 1230
|
||||
1180 IF H=5 THEN 1230
|
||||
1190 PRINT "YOU PANICKED. THE BULL GORED YOU."
|
||||
1220 GOTO 970
|
||||
1230 K=(6-A)*10*RND(1)/((D(1)+D(2))*5*D(3))
|
||||
1240 IF J=4 THEN 1290
|
||||
1250 IF K>.2 THEN 960
|
||||
1260 PRINT "YOU KILLED THE BULL!"
|
||||
1270 D(5)=2
|
||||
1280 GOTO 1320
|
||||
1290 IF K>.8 THEN 960
|
||||
1300 GOTO 1260
|
||||
1310 PRINT
|
||||
1320 PRINT
|
||||
1330 PRINT
|
||||
1340 IF D(4)<>0 THEN 1390
|
||||
1350 PRINT "THE CROWD BOOS FOR TEN MINUTES. IF YOU EVER DARE TO SHOW"
|
||||
1360 PRINT "YOUR FACE IN A RING AGAIN, THEY SWEAR THEY WILL KILL YOU--"
|
||||
1370 PRINT "UNLES THE BULL DOES FIRST."
|
||||
1380 GOTO 1580
|
||||
1390 DEF FNC(Q)=FND(Q)*RND(1)
|
||||
1395 DEF FND(Q)=(4.5+L/6-(D(1)+D(2))*2.5+4*D(4)+2*D(5)-D(3)^2/120-A)
|
||||
1400 IF D(4)<>2 THEN 1430
|
||||
1410 PRINT "THE CROWD CHEERS WILDLY!"
|
||||
1420 GOTO 1450
|
||||
1430 IF D(5)<>2 THEN 1450
|
||||
1440 PRINT "THE CROWD CHEERS!":PRINT
|
||||
1450 PRINT "THE CROWD AWARDS YOU"
|
||||
1460 IF FNC(Q)<2.4 THEN 1570
|
||||
1470 IF FNC(Q)<4.9 THEN 1550
|
||||
1480 IF FNC(Q)<7.4 THEN 1520
|
||||
1500 PRINT "OLE! YOU ARE 'MUY HOMBRE'!! OLE! OLE!"
|
||||
1510 GOTO 1580
|
||||
1520 PRINT "BOTH EARS OF THE BULL!"
|
||||
1530 PRINT "OLE!"
|
||||
1540 GOTO 1580
|
||||
1550 PRINT "ONE EAR OF THE BULL."
|
||||
1560 GOTO 1580
|
||||
1570 PRINT "NOTHING AT ALL."
|
||||
1580 PRINT
|
||||
1590 PRINT "ADIOS":PRINT:PRINT:PRINT
|
||||
1600 GOTO 2030
|
||||
1610 B=3/A*RND(1)
|
||||
1620 IF B<.37 THEN 1740
|
||||
1630 IF B<.5 THEN 1720
|
||||
1640 IF B<.63 THEN 1700
|
||||
1650 IF B<.87 THEN 1680
|
||||
1660 C=.1
|
||||
1670 GOTO 1750
|
||||
1680 C=.2
|
||||
1690 GOTO 1750
|
||||
1700 C=.3
|
||||
1710 GOTO 1750
|
||||
1720 C=.4
|
||||
1730 GOTO 1750
|
||||
1740 C=.5
|
||||
1750 T=INT(10*C+.2)
|
||||
1760 PRINT "THE ";A$;B$;" DID A ";L$(T);" JOB."
|
||||
1770 IF 4>T THEN 1900
|
||||
1780 IF 5=T THEN 1870
|
||||
1790 ON FNA(K) GOTO 1830,1850
|
||||
1800 IF A$="TOREAD" THEN 1820
|
||||
1810 PRINT "ONE OF THE HORSES OF THE ";A$;B$;" WAS KILLED."
|
||||
1820 ON FNA(K) GOTO 1830,1850
|
||||
1830 PRINT "ONE OF THE ";A$;B$;" WAS KILLED."
|
||||
1840 GOTO 1900
|
||||
1850 PRINT "NO ";A$;B$;" WERE KILLED."
|
||||
1860 GOTO 1900
|
||||
1870 IF A$="TOREAD" THEN 1890
|
||||
1880 PRINT FNA(K);"OF THE HORSES OF THE ";A$;B$;" KILLED."
|
||||
1890 PRINT FNA(K);"OF THE ";A$;B$;" KILLED."
|
||||
1900 PRINT
|
||||
1910 RETURN
|
||||
1920 REM
|
||||
1930 INPUT A$
|
||||
1940 IF A$="YES" THEN 1990
|
||||
1950 IF A$="NO" THEN 2010
|
||||
1970 PRINT "INCORRECT ANSWER - - PLEASE TYPE 'YES' OR 'NO'."
|
||||
1980 GOTO 1930
|
||||
1990 Z1=1
|
||||
2000 GOTO 2020
|
||||
2010 Z1=2
|
||||
2020 RETURN
|
||||
2030 END
|
||||
7
18 Bullseye/README.md
Normal file
7
18 Bullseye/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bullseye
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=34
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
37
18 Bullseye/bullseye.bas
Normal file
37
18 Bullseye/bullseye.bas
Normal file
@@ -0,0 +1,37 @@
|
||||
5 PRINT TAB(32);"BULLSEYE"
|
||||
10 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
20 PRINT:PRINT:PRINT
|
||||
30 PRINT "IN THIS GAME, UP TO 20 PLAYERS THROW DARTS AT A TARGET"
|
||||
40 PRINT "WITH 10, 20, 30, AND 40 POINT ZONES. THE OBJECTIVE IS"
|
||||
50 PRINT "TO GET 200 POINTS.": PRINT
|
||||
60 PRINT "THROW",TAB(20);"DESCRIPTION";TAB(45);"PROBABLE SCORE"
|
||||
70 PRINT" 1";TAB(20);"FAST OVERARM";TAB(45);"BULLSEYE OR COMPLETE MISS"
|
||||
80 PRINT" 2";TAB(20);"CONTROLLED OVERARM";TAB(45);"10, 20 OR 30 POINTS"
|
||||
90 PRINT" 3";TAB(20);"UNDERARM";TAB(45);"ANYTHING":PRINT
|
||||
100 DIM A$(20),S(20),W(10): M=0: R=0: FOR I=1 TO 20: S(I)=0: NEXT I
|
||||
110 INPUT "HOW MANY PLAYERS";N: PRINT
|
||||
120 FOR I=1 TO N
|
||||
130 PRINT "NAME OF PLAYER #";I;:INPUT A$(I)
|
||||
140 NEXT I
|
||||
150 R=R+1: PRINT: PRINT "ROUND";R:PRINT "---------"
|
||||
160 FOR I=1 TO N
|
||||
170 PRINT: PRINT A$(I)"'S THROW";: INPUT T
|
||||
180 IF T<0 OR T>3 THEN PRINT "INPUT 1, 2, OR 3!": GOTO 170
|
||||
190 ON T GOTO 200, 210, 200
|
||||
200 P1=.65: P2=.55: P3=.5: P4=.5: GOTO 230
|
||||
210 P1=.99: P2=.77: P3=.43: P4=.01: GOTO 230
|
||||
220 P1=.95: P2=.75: P3=.45: P4=.05
|
||||
230 U=RND(1)
|
||||
240 IF U>=P1 THEN PRINT "BULLSEYE!! 40 POINTS!":B=40: GOTO 290
|
||||
250 IF U>=P2 THEN PRINT "30-POINT ZONE!":B=30: GOTO 290
|
||||
260 IF U>=P3 THEN PRINT "20-POINT ZONE":B=20: GOTO 290
|
||||
270 IF U>=P4 THEN PRINT "WHEW! 10 POINTS.":B=10: GOTO 290
|
||||
280 PRINT "MISSED THE TARGET! TOO BAD.": B=0
|
||||
290 S(I)=S(I)+B: PRINT "TOTAL SCORE =";S(I): NEXT I
|
||||
300 FOR I=1 TO N
|
||||
310 IF S(I)>=200 THEN M=M+1: W(M)=I
|
||||
320 NEXT I
|
||||
330 IF M=0 THEN 150
|
||||
340 PRINT: PRINT "WE HAVE A WINNER!!": PRINT
|
||||
350 FOR I=1 TO M: PRINT A$(W(I));" SCORED";S(W(I));"POINTS.": NEXT I
|
||||
360 PRINT: PRINT "THANKS FOR THE GAME.": END
|
||||
7
19 Bunny/README.md
Normal file
7
19 Bunny/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Bunny
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=35
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
40
19 Bunny/bunny.bas
Normal file
40
19 Bunny/bunny.bas
Normal file
@@ -0,0 +1,40 @@
|
||||
10 PRINT TAB(33);"BUNNY"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT: PRINT: PRINT
|
||||
100 REM "BUNNY" FROM AHL'S 'BASIC COMPUTER GAMES'
|
||||
110 REM
|
||||
120 FOR I=0 TO 4: READ B(I): NEXT I
|
||||
130 GOSUB 260
|
||||
140 L=64: REM ASCII LETTER CODE...
|
||||
150 REM
|
||||
160 PRINT
|
||||
170 READ X: IF X<0 THEN 160
|
||||
175 IF X>128 THEN 240
|
||||
180 PRINT TAB(X);: READ Y
|
||||
190 FOR I=X TO Y: J=I-5*INT(I/5)
|
||||
200 PRINT CHR$(L+B(J));
|
||||
210 NEXT I
|
||||
220 GOTO 170
|
||||
230 REM
|
||||
240 GOSUB 260: GOTO 450
|
||||
250 REM
|
||||
260 FOR I=1 TO 6: PRINT CHR$(10);: NEXT I
|
||||
270 RETURN
|
||||
280 REM
|
||||
290 DATA 2,21,14,14,25
|
||||
300 DATA 1,2,-1,0,2,45,50,-1,0,5,43,52,-1,0,7,41,52,-1
|
||||
310 DATA 1,9,37,50,-1,2,11,36,50,-1,3,13,34,49,-1,4,14,32,48,-1
|
||||
320 DATA 5,15,31,47,-1,6,16,30,45,-1,7,17,29,44,-1,8,19,28,43,-1
|
||||
330 DATA 9,20,27,41,-1,10,21,26,40,-1,11,22,25,38,-1,12,22,24,36,-1
|
||||
340 DATA 13,34,-1,14,33,-1,15,31,-1,17,29,-1,18,27,-1
|
||||
350 DATA 19,26,-1,16,28,-1,13,30,-1,11,31,-1,10,32,-1
|
||||
360 DATA 8,33,-1,7,34,-1,6,13,16,34,-1,5,12,16,35,-1
|
||||
370 DATA 4,12,16,35,-1,3,12,15,35,-1,2,35,-1,1,35,-1
|
||||
380 DATA 2,34,-1,3,34,-1,4,33,-1,6,33,-1,10,32,34,34,-1
|
||||
390 DATA 14,17,19,25,28,31,35,35,-1,15,19,23,30,36,36,-1
|
||||
400 DATA 14,18,21,21,24,30,37,37,-1,13,18,23,29,33,38,-1
|
||||
410 DATA 12,29,31,33,-1,11,13,17,17,19,19,22,22,24,31,-1
|
||||
420 DATA 10,11,17,18,22,22,24,24,29,29,-1
|
||||
430 DATA 22,23,26,29,-1,27,29,-1,28,29,-1,4096
|
||||
440 REM
|
||||
450 END
|
||||
7
20 Buzzword/README.md
Normal file
7
20 Buzzword/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Buzzword
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=36
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
26
20 Buzzword/buzzword.bas
Normal file
26
20 Buzzword/buzzword.bas
Normal file
@@ -0,0 +1,26 @@
|
||||
10 PRINT TAB(26);"BUZZWORD GENERATOR"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
40 PRINT "THIS PROGRAM PRINTS HIGHLY ACCEPTABLE PHRASES IN"
|
||||
50 PRINT "'EDUCATOR-SPEAK'THAT YOU CAN WORK INTO REPORTS"
|
||||
60 PRINT "AND SPEECHES. WHENEVER A QUESTION MARK IS PRINTED,"
|
||||
70 PRINT "TYPE A 'Y' FOR ANOTHER PHRASE OR 'N' TO QUIT."
|
||||
80 PRINT:PRINT:PRINT "HERE'S THE FIRST PHRASE:"
|
||||
90 DIM A$(40)
|
||||
100 FOR I=1 TO 39 : READ A$(I) : NEXT I
|
||||
110 PRINT A$(INT(13*RND(1)+1));" ";
|
||||
120 PRINT A$(INT(13*RND(1)+14));" ";
|
||||
130 PRINT A$(INT(13*RND(1)+27)) : PRINT
|
||||
150 INPUT Y$ : IF Y$="Y" THEN 110
|
||||
160 GOTO 999
|
||||
200 DATA "ABILITY","BASAL","BEHAVIORAL","CHILD-CENTERED"
|
||||
210 DATA "DIFFERENTIATED","DISCOVERY","FLEXIBLE","HETEROGENEOUS"
|
||||
220 DATA "HOMOGENEOUS","MANIPULATIVE","MODULAR","TAVISTOCK"
|
||||
230 DATA "INDIVIDUALIZED","LEARNING","EVALUATIVE","OBJECTIVE"
|
||||
240 DATA "COGNITIVE","ENRICHMENT","SCHEDULING","HUMANISTIC"
|
||||
250 DATA "INTEGRATED","NON-GRADED","TRAINING","VERTICAL AGE"
|
||||
260 DATA "MOTIVATIONAL","CREATIVE","GROUPING","MODIFICATION"
|
||||
270 DATA "ACCOUNTABILITY","PROCESS","CORE CURRICULUM","ALGORITHM"
|
||||
280 DATA "PERFORMANCE","REINFORCEMENT","OPEN CLASSROOM","RESOURCE"
|
||||
290 DATA "STRUCTURE","FACILITY","ENVIRONMENT"
|
||||
999 PRINT "COME BACK WHEN YOU NEED HELP WITH ANOTHER REPORT!":END
|
||||
7
21 Calendar/README.md
Normal file
7
21 Calendar/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Calendar
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=37
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
58
21 Calendar/calendar.bas
Normal file
58
21 Calendar/calendar.bas
Normal file
@@ -0,0 +1,58 @@
|
||||
10 PRINT TAB(32);"CALENDAR"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
100 REM VALUES FOR 1979 - SEE NOTES
|
||||
110 DIM M(12)
|
||||
120 FOR I=1 TO 6: PRINT CHR$(10);: NEXT I
|
||||
130 D=1: REM 1979 STARTS ON MONDAY (0=SUN, -1=MON, -2=TUES...)
|
||||
140 S=0
|
||||
150 REM READ DAYS OF EACH MONTH
|
||||
160 FOR N=0 TO 12: READ M(N): NEXT N
|
||||
170 REM
|
||||
180 FOR N=1 TO 12
|
||||
190 PRINT: PRINT: S=S+M(N-1)
|
||||
200 PRINT "**";S;TAB(7);
|
||||
210 FOR I=1 TO 18: PRINT "*";: NEXT I
|
||||
220 ON N GOTO 230,240,250,260,270,280,290,300,310,320,330,340
|
||||
230 PRINT " JANUARY ";: GOTO 350
|
||||
240 PRINT " FEBRUARY";: GOTO 350
|
||||
250 PRINT " MARCH ";: GOTO 350
|
||||
260 PRINT " APRIL ";: GOTO 350
|
||||
270 PRINT " MAY ";: GOTO 350
|
||||
280 PRINT " JUNE ";: GOTO 350
|
||||
290 PRINT " JULY ";: GOTO 350
|
||||
300 PRINT " AUGUST ";: GOTO 350
|
||||
310 PRINT "SEPTEMBER";: GOTO 350
|
||||
320 PRINT " OCTOBER ";: GOTO 350
|
||||
330 PRINT " NOVEMBER";: GOTO 350
|
||||
340 PRINT " DECEMBER";
|
||||
350 FOR I=1 TO 18: PRINT "*";: NEXT I
|
||||
360 PRINT 365-S;"**";
|
||||
370 REM 366-S; ON LEAP YEARS
|
||||
380 PRINT CHR$(10): PRINT " S M T W";
|
||||
390 PRINT " T F S"
|
||||
400 PRINT
|
||||
410 FOR I=1 TO 59: PRINT "*";: NEXT I
|
||||
420 REM
|
||||
430 FOR W=1 TO 6
|
||||
440 PRINT CHR$(10)
|
||||
450 PRINT TAB(4)
|
||||
460 REM
|
||||
470 FOR G=1 TO 7
|
||||
480 D=D+1
|
||||
490 D2=D-S
|
||||
500 IF D2>M(N) THEN 580
|
||||
510 IF D2>0 THEN PRINT D2;
|
||||
520 PRINT TAB(4+8*G);
|
||||
530 NEXT G
|
||||
540 REM
|
||||
550 IF D2=M(N) THEN 590
|
||||
560 NEXT W
|
||||
570 REM
|
||||
580 D=D-G
|
||||
590 NEXT N
|
||||
600 REM
|
||||
610 FOR I=1 TO 6: PRINT CHR$(10);: NEXT I
|
||||
620 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
|
||||
630 REM 0,31,29, ..., ON LEAP YEARS
|
||||
640 END
|
||||
7
22 Change/README.md
Normal file
7
22 Change/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Change
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=39
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
51
22 Change/change.bas
Normal file
51
22 Change/change.bas
Normal file
@@ -0,0 +1,51 @@
|
||||
2 PRINT TAB(33);"CHANGE"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
5 PRINT:PRINT:PRINT
|
||||
6 PRINT "I, YOUR FRIENDLY MICROCOMPUTER, WILL DETERMINE"
|
||||
8 PRINT "THE CORRECT CHANGE FOR ITEMS COSTING UP TO $100."
|
||||
9 PRINT:PRINT
|
||||
10 PRINT "COST OF ITEM";:INPUT A:PRINT "AMOUNT OF PAYMENT";:INPUT P
|
||||
20 C=P-A:M=C:IF C<>0 THEN 90
|
||||
25 PRINT "CORRECT AMOUNT, THANK YOU."
|
||||
30 GOTO 400
|
||||
90 IF C>0 THEN 120
|
||||
95 PRINT "SORRY, YOU HAVE SHORT-CHANGED ME $";A-P
|
||||
100 GOTO 10
|
||||
120 PRINT "YOUR CHANGE, $";C
|
||||
130 D=INT(C/10)
|
||||
140 IF D=0 THEN 155
|
||||
150 PRINT D;"TEN DOLLAR BILL(S)"
|
||||
155 C=M-(D*10)
|
||||
160 E=INT(C/5)
|
||||
170 IF E=0 THEN 185
|
||||
180 PRINT E;"FIVE DOLLARS BILL(S)"
|
||||
185 C=M-(D*10+E*5)
|
||||
190 F=INT(C)
|
||||
200 IF F=0 THEN 215
|
||||
210 PRINT F;"ONE DOLLAR BILL(S)"
|
||||
215 C=M-(D*10+E*5+F)
|
||||
220 C=C*100
|
||||
225 N=C
|
||||
230 G=INT(C/50)
|
||||
240 IF G=0 THEN 255
|
||||
250 PRINT G;"ONE HALF DOLLAR(S)"
|
||||
255 C=N-(G*50)
|
||||
260 H=INT(C/25)
|
||||
270 IF H=0 THEN 285
|
||||
280 PRINT H;"QUARTER(S)"
|
||||
285 C=N-(G*50+H*25)
|
||||
290 I=INT(C/10)
|
||||
300 IF I=0 THEN 315
|
||||
310 PRINT I;"DIME(S)"
|
||||
315 C=N-(G*50+H*25+I*10)
|
||||
320 J=INT(C/5)
|
||||
330 IF J=0 THEN 345
|
||||
340 PRINT J;"NICKEL(S)"
|
||||
345 C=N-(G*50+H*25+I*10+J*5)
|
||||
350 K=INT(C+.5)
|
||||
360 IF K=0 THEN 380
|
||||
370 PRINT K;"PENNY(S)"
|
||||
380 PRINT "THANK YOU, COME AGAIN."
|
||||
390 PRINT:PRINT
|
||||
400 GOTO 10
|
||||
410 END
|
||||
7
23 Checkers/README.md
Normal file
7
23 Checkers/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Checkers
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=40
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
82
23 Checkers/checkers.bas
Normal file
82
23 Checkers/checkers.bas
Normal file
@@ -0,0 +1,82 @@
|
||||
5 PRINT TAB(32);"CHECKERS"
|
||||
10 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
15 PRINT:PRINT:PRINT
|
||||
20 PRINT "THIS IS THE GAME OF CHECKERS. THE COMPUTER IS X,"
|
||||
25 PRINT "AND YOU ARE O. THE COMPUTER WILL MOVE FIRST."
|
||||
30 PRINT "SQUARES ARE REFERRED TO BY A COORDINATE SYSTEM."
|
||||
35 PRINT "(0,0) IS THE LOWER LEFT CORNER"
|
||||
40 PRINT "(0,7) IS THE UPPER LEFT CORNER"
|
||||
45 PRINT "(7,0) IS THE LOWER RIGHT CORNER"
|
||||
50 PRINT "(7,7) IS THE UPPER RIGHT CORNER"
|
||||
55 PRINT "THE COMPUTER WILL TYPE '+TO' WHEN YOU HAVE ANOTHER"
|
||||
60 PRINT "JUMP. TYPE TWO NEGATIVE NUMBERS IF YOU CANNOT JUMP."
|
||||
65 PRINT:PRINT:PRINT
|
||||
80 DIM R(4),S(7,7):G=-1:R(0)=-99
|
||||
90 DATA 1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15
|
||||
120 FOR X=0 TO 7:FOR Y=0 TO 7:READ J:IF J=15 THEN 180
|
||||
160 S(X,Y)=J:GOTO 200
|
||||
180 RESTORE:READ S(X,Y)
|
||||
200 NEXT Y,X
|
||||
230 FOR X=0 TO 7:FOR Y=0 TO 7:IF S(X,Y)>-1 THEN 350
|
||||
310 IF S(X,Y)=-1 THEN FOR A=-1 TO 1 STEP 2:B=G:GOSUB 650:NEXT A
|
||||
330 IF S(X,Y)=-2 THEN FOR A=-1 TO 1 STEP 2:FOR B=-1 TO 1 STEP 2:GOSUB 650:NEXT B,A
|
||||
350 NEXT Y,X:GOTO 1140
|
||||
650 U=X+A:V=Y+B:IF U<0 OR U>7 OR V<0 OR V>7 THEN 870
|
||||
740 IF S(U,V)=0 THEN GOSUB 910:GOTO 870
|
||||
770 IF S(U,V)<0 THEN 870
|
||||
790 U=U+A:V=V+B:IF U<0 OR V<0 OR U>7 OR V>7 THEN 870
|
||||
850 IF S(U,V)=0 THEN GOSUB 910
|
||||
870 RETURN
|
||||
910 IF V=0 AND S(X,Y)=-1 THEN Q=Q+2
|
||||
920 IF ABS(Y-V)=2 THEN Q=Q+5
|
||||
960 IF Y=7 THEN Q=Q-2
|
||||
980 IF U=0 OR U=7 THEN Q=Q+1
|
||||
1030 FOR C=-1 TO 1 STEP 2:IF U+C<0 OR U+C>7 OR V+G<0 THEN 1080
|
||||
1035 IF S(U+C,V+G)<0 THEN Q=Q+1:GOTO 1080
|
||||
1040 IF U-C<0 OR U-C>7 OR V-G>7 THEN 1080
|
||||
1045 IF S(U+C,V+G)>0 AND(S(U-C,V-G)=0 OR(U-C=X AND V-G=Y))THEN Q=Q-2
|
||||
1080 NEXT C:IF Q>R(0)THEN R(0)=Q:R(1)=X:R(2)=Y:R(3)=U:R(4)=V
|
||||
1100 Q=0:RETURN
|
||||
1140 IF R(0)=-99 THEN 1880
|
||||
1230 PRINT CHR$(30)"FROM"R(1);R(2)"TO"R(3);R(4);:R(0)=-99
|
||||
1240 IF R(4)=0 THEN S(R(3),R(4))=-2:GOTO 1420
|
||||
1250 S(R(3),R(4))=S(R(1),R(2))
|
||||
1310 S(R(1),R(2))=0:IF ABS(R(1)-R(3))<>2 THEN 1420
|
||||
1330 S((R(1)+R(3))/2,(R(2)+R(4))/2)=0
|
||||
1340 X=R(3):Y=R(4):IF S(X,Y)=-1 THEN B=-2:FOR A=-2 TO 2 STEP 4:GOSUB 1370
|
||||
1350 IF S(X,Y)=-2 THEN FOR A=-2 TO 2 STEP 4:FOR B=-2 TO 2 STEP 4:GOSUB 1370:NEXT B
|
||||
1360 NEXT A:IF R(0)<>-99 THEN PRINT"TO"R(3);R(4);:R(0)=-99:GOTO 1240
|
||||
1365 GOTO 1420
|
||||
1370 U=X+A:V=Y+B:IF U<0 OR U>7 OR V<0 OR V>7 THEN 1400
|
||||
1380 IF S(U,V)=0 AND S(X+A/2,Y+B/2)>0 THEN GOSUB 910
|
||||
1400 RETURN
|
||||
1420 PRINT:PRINT:PRINT:FOR Y=7 TO 0 STEP-1:FOR X=0 TO 7:I=5*X:PRINT TAB(I);
|
||||
1430 IF S(X,Y)=0 THEN PRINT".";
|
||||
1470 IF S(X,Y)=1 THEN PRINT"O";
|
||||
1490 IF S(X,Y)=-1 THEN PRINT"X";
|
||||
1510 IF S(X,Y)=-2 THEN PRINT"X*";
|
||||
1530 IF S(X,Y)=2 THEN PRINT"O*";
|
||||
1550 NEXT X:PRINT" ":PRINT:NEXT Y:PRINT
|
||||
1552 FOR L=0 TO 7
|
||||
1554 FOR M=0 TO 7
|
||||
1556 IF S(L,M)=1 OR S(L,M)=2 THEN Z=1
|
||||
1558 IF S(L,M)=-1 OR S(L,M)=-2 THEN T=1
|
||||
1560 NEXT M
|
||||
1562 NEXT L
|
||||
1564 IF Z<>1 THEN 1885
|
||||
1566 IF T<>1 THEN 1880
|
||||
1570 Z=0: T=0
|
||||
1590 INPUT "FROM";E,H:X=E:Y=H:IF S(X,Y)<=0 THEN 1590
|
||||
1670 INPUT "TO";A,B:X=A:Y=B
|
||||
1680 IF S(X,Y)=0 AND ABS(A-E)<=2 AND ABS(A-E)=ABS(B-H)THEN 1700
|
||||
1690 PRINT CHR$(7)CHR$(11);:GOTO 1670
|
||||
1700 I=46
|
||||
1750 S(A,B)=S(E,H):S(E,H)=0:IF ABS(E-A)<>2 THEN 1810
|
||||
1800 S((E+A)/2,(H+B)/2)=0
|
||||
1802 INPUT "+TO";A1,B1:IF A1<0 THEN 1810
|
||||
1804 IF S(A1,B1)<>0 OR ABS(A1-A)<>2 OR ABS(B1-B)<>2 THEN 1802
|
||||
1806 E=A:H=B:A=A1:B=B1:I=I+15:GOTO 1750
|
||||
1810 IF B=7 THEN S(A,B)=2
|
||||
1830 GOTO 230
|
||||
1880 PRINT: PRINT "YOU WIN.": END
|
||||
1885 PRINT: PRINT "I WIN.": END
|
||||
7
24 Chemist/README.md
Normal file
7
24 Chemist/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Chemist
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=42
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
27
24 Chemist/chemist.bas
Normal file
27
24 Chemist/chemist.bas
Normal file
@@ -0,0 +1,27 @@
|
||||
3 PRINT TAB(33);"CHEMIST"
|
||||
6 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
8 PRINT:PRINT:PRINT
|
||||
10 PRINT "THE FICTITIOUS CHECMICAL KRYPTOCYANIC ACID CAN ONLY BE"
|
||||
20 PRINT "DILUTED BY THE RATIO OF 7 PARTS WATER TO 3 PARTS ACID."
|
||||
30 PRINT "IF ANY OTHER RATIO IS ATTEMPTED, THE ACID BECOMES UNSTABLE"
|
||||
40 PRINT "AND SOON EXPLODES. GIVEN THE AMOUNT OF ACID, YOU MUST"
|
||||
50 PRINT "DECIDE WHO MUCH WATER TO ADD FOR DILUTION. IF YOU MISS"
|
||||
60 PRINT "YOU FACE THE CONSEQUENCES."
|
||||
100 A=INT(RND(1)*50)
|
||||
110 W=7*A/3
|
||||
120 PRINT A;"LITERS OF KRYPTOCYANIC ACID. HOW MUCH WATER";
|
||||
130 INPUT R
|
||||
140 D=ABS(W-R)
|
||||
150 IF D>W/20 THEN 200
|
||||
160 PRINT " GOOD JOB! YOU MAY BREATHE NOW, BUT DON'T INHALE THE FUMES!"
|
||||
170 PRINT
|
||||
180 GOTO 100
|
||||
200 PRINT " SIZZLE! YOU HAVE JUST BEEN DESALINATED INTO A BLOB"
|
||||
210 PRINT " OF QUIVERING PROTOPLASM!"
|
||||
220 T=T+1
|
||||
230 IF T=9 THEN 260
|
||||
240 PRINT " HOWEVER, YOU MAY TRY AGAIN WITH ANOTHER LIFE."
|
||||
250 GOTO 100
|
||||
260 PRINT " YOUR 9 LIVES ARE USED, BUT YOU WILL BE LONG REMEMBERED FOR"
|
||||
270 PRINT " YOUR CONTRIBUTIONS TO THE FIELD OF COMIC BOOK CHEMISTRY."
|
||||
280 END
|
||||
7
25 Chief/README.md
Normal file
7
25 Chief/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Chief
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=43
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
51
25 Chief/chief.bas
Normal file
51
25 Chief/chief.bas
Normal file
@@ -0,0 +1,51 @@
|
||||
2 PRINT TAB(30) "CHIEF"
|
||||
4 PRINT TAB(15) "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT:PRINT:PRINT
|
||||
10 PRINT "I AM CHIEF NUMBERS FREEK, THE GREAT INDIAN MATH GOD."
|
||||
20 PRINT "ARE YOU READY TO TAKE THE TEST YOU CALLED ME OUT FOR";
|
||||
30 INPUT A$
|
||||
40 IF A$="YES" THEN 60
|
||||
50 PRINT "SHUT UP, PALE FACE WITH WISE TONGUE."
|
||||
60 PRINT " TAKE A NUMBER AND ADD 3. DIVIDE THIS NUMBER BY 5 AND"
|
||||
70 PRINT "MULTIPLY BY 8. DIVIDE BY 5 AND ADD THE SAME. SUBTRACT 1."
|
||||
80 PRINT " WHAT DO YOU HAVE";
|
||||
90 INPUT B
|
||||
100 LET C = (B+1-5)*5/8*5-3
|
||||
110 PRINT "I BET YOUR NUMBER WAS" C". AM I RIGHT";
|
||||
120 INPUT D$
|
||||
130 IF D$="YES" THEN 500
|
||||
140 PRINT "WHAT WAS YOUR ORIGINAL NUMBER";
|
||||
150 INPUT K
|
||||
155 LET F=K+3
|
||||
160 LET G=F/5
|
||||
170 LET H=G*8
|
||||
180 LET I=H/5+5
|
||||
190 LET J=I-1
|
||||
200 PRINT "SO YOU THINK YOU'RE SO SMART, EH?"
|
||||
210 PRINT "NOW WATCH."
|
||||
230 PRINT K"PLUS 3 EQUALS"F". THIS DIVIDED BY 5 EQUALS"G";"
|
||||
240 PRINT "THIS TIMES 8 EQUALS"H". IF WE DIVIDE BY 5 AND ADD 5,"
|
||||
250 PRINT "WE GET"I", WHICH, MINUS 1, EQUALS"J"."
|
||||
260 PRINT "NOW DO YOU BELIEVE ME";
|
||||
270 INPUT Z$
|
||||
290 IF Z$="YES" THEN 500
|
||||
295 PRINT "YOU HAVE MADE ME MAD!!!"
|
||||
300 PRINT "THERE MUST BE A GREAT LIGHTNING BOLT!"
|
||||
310 PRINT:PRINT
|
||||
330 FOR X=30 TO 22 STEP -1
|
||||
340 PRINT TAB(X) "X X"
|
||||
350 NEXT X
|
||||
360 PRINT TAB(21) "X XXX"
|
||||
370 PRINT TAB(20) "X X"
|
||||
380 PRINT TAB(19) "XX X"
|
||||
390 FOR Y=20 TO 13 STEP -1
|
||||
400 PRINT TAB(Y) "X X"
|
||||
410 NEXT Y
|
||||
420 PRINT TAB(12) "XX"
|
||||
430 PRINT TAB(11) "X"
|
||||
440 PRINT TAB(10) "*"
|
||||
450 PRINT:PRINT"#########################":PRINT
|
||||
470 PRINT "I HOPE YOU BELIEVE ME NOW, FOR YOUR SAKE!!"
|
||||
480 GOTO 520
|
||||
510 PRINT "BYE!!!"
|
||||
520 END
|
||||
7
26 Chomp/README.md
Normal file
7
26 Chomp/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Chomp
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=44
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
104
26 Chomp/chomp.bas
Normal file
104
26 Chomp/chomp.bas
Normal file
@@ -0,0 +1,104 @@
|
||||
10 PRINT TAB(33);"CHOMP"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
40 DIM A(10,10)
|
||||
100 REM *** THE GAME OF CHOMP *** COPYRIGHT PCC 1973 ***
|
||||
110 PRINT
|
||||
120 PRINT "THIS IS THE GAME OF CHOMP (SCIENTIFIC AMERICAN, JAN 1973)"
|
||||
130 PRINT "DO YOU WANT THE RULES (1=YES, 0=NO!)";
|
||||
140 INPUT R
|
||||
150 IF R=0 THEN 340
|
||||
160 F=1
|
||||
170 R=5
|
||||
180 C=7
|
||||
190 PRINT "CHOMP IS FOR 1 OR MORE PLAYERS (HUMANS ONLY)."
|
||||
200 PRINT
|
||||
210 PRINT "HERE'S HOW A BOARD LOOKS (THIS ONE IS 5 BY 7):"
|
||||
220 GOSUB 540
|
||||
230 PRINT
|
||||
240 PRINT "THE BOARD IS A BIG COOKIE - R ROWS HIGH AND C COLUMNS"
|
||||
250 PRINT "WIDE. YOU INPUT R AND C AT THE START. IN THE UPPER LEFT"
|
||||
260 PRINT "CORNER OF THE COOKIE IS A POISON SQUARE (P). THE ONE WHO"
|
||||
270 PRINT "CHOMPS THE POISON SQUARE LOSES. TO TAKE A CHOMP, TYPE THE"
|
||||
280 PRINT "ROW AND COLUMN OF ONE OF THE SQUARES ON THE COOKIE."
|
||||
290 PRINT "ALL OF THE SQUARES BELOW AND TO THE RIGHT OF THAT SQUARE"
|
||||
300 PRINT "(INCLUDING THAT SQUARE, TOO) DISAPPEAR -- CHOMP!!"
|
||||
310 PRINT "NO FAIR CHOMPING SQUARES THAT HAVE ALREADY BEEN CHOMPED,"
|
||||
320 PRINT "OR THAT ARE OUTSIDE THE ORIGINAL DIMENSIONS OF THE COOKIE."
|
||||
330 PRINT
|
||||
340 PRINT "HERE WE GO..."
|
||||
350 REM
|
||||
360 F=0
|
||||
370 FOR I=1 TO 10
|
||||
372 FOR J=1 TO 10
|
||||
375 A(I,J)=0
|
||||
377 NEXT J
|
||||
379 NEXT I
|
||||
380 PRINT
|
||||
390 PRINT "HOW MANY PLAYERS";
|
||||
400 INPUT P
|
||||
410 I1=0
|
||||
420 PRINT "HOW MANY ROWS";
|
||||
430 INPUT R
|
||||
440 IF R <= 9 THEN 470
|
||||
450 PRINT "TOO MANY ROWS (9 IS MAXIMUM). NOW, ";
|
||||
460 GOTO 420
|
||||
470 PRINT "HOW MANY COLUMNS";
|
||||
480 INPUT C
|
||||
490 IF C <= 9 THEN 530
|
||||
500 PRINT "TOO MANY COLUMNS (9 IS MAXIMUM). NOW, ";
|
||||
510 GOTO 470
|
||||
530 PRINT
|
||||
540 FOR I=1 TO R
|
||||
550 FOR J=1 TO C
|
||||
560 A(I,J)=1
|
||||
570 NEXT J
|
||||
580 NEXT I
|
||||
590 A(1,1)=-1
|
||||
600 REM PRINT THE BOARD
|
||||
610 PRINT
|
||||
620 PRINT TAB(7);"1 2 3 4 5 6 7 8 9"
|
||||
630 FOR I=1 TO R
|
||||
640 PRINT I;TAB(7);
|
||||
650 FOR J=1 TO C
|
||||
660 IF A(I,J)=-1 THEN 700
|
||||
670 IF A(I,J)=0 THEN 720
|
||||
680 PRINT "* ";
|
||||
690 GOTO 710
|
||||
700 PRINT "P ";
|
||||
710 NEXT J
|
||||
720 PRINT
|
||||
730 NEXT I
|
||||
740 PRINT
|
||||
750 IF F=0 THEN 770
|
||||
760 RETURN
|
||||
770 REM GET CHOMPS FOR EACH PLAYER IN TURN
|
||||
780 LET I1=I1+1
|
||||
790 LET P1=I1-INT(I1/P)*P
|
||||
800 IF P1 <> 0 THEN 820
|
||||
810 P1=P
|
||||
820 PRINT "PLAYER";P1
|
||||
830 PRINT "COORDINATES OF CHOMP (ROW,COLUMN)";
|
||||
840 INPUT R1,C1
|
||||
850 IF R1<1 THEN 920
|
||||
860 IF R1>R THEN 920
|
||||
870 IF C1<1 THEN 920
|
||||
880 IF C1>C THEN 920
|
||||
890 IF A(R1,C1)=0 THEN 920
|
||||
900 IF A(R1,C1)=-1 THEN 1010
|
||||
910 GOTO 940
|
||||
920 PRINT "NO FAIR. YOU'RE TRYING TO CHOMP ON EMPTY SPACE!"
|
||||
930 GOTO 820
|
||||
940 FOR I=R1 TO R
|
||||
950 FOR J=C1 TO C
|
||||
960 A(I,J)=0
|
||||
970 NEXT J
|
||||
980 NEXT I
|
||||
990 GOTO 610
|
||||
1000 REM END OF GAME DETECTED IN LINE 900
|
||||
1010 PRINT "YOU LOSE, PLAYER";P1
|
||||
1020 PRINT
|
||||
1030 PRINT "AGAIN (1=YES, 0=NO!)";
|
||||
1040 INPUT R$
|
||||
1050 IF R=1 THEN 340
|
||||
1060 END
|
||||
7
27 Civil War/README.md
Normal file
7
27 Civil War/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Civil War
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=46
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
395
27 Civil War/civilwar.bas
Normal file
395
27 Civil War/civilwar.bas
Normal file
@@ -0,0 +1,395 @@
|
||||
2 PRINT TAB(26) "CIVIL WAR"
|
||||
4 PRINT TAB(15) "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT : PRINT : PRINT
|
||||
20 REM ORIGINAL GAME DESIGN: CRAM, GOODIE, HIBBARD LEXINGTON H.S.
|
||||
30 REM MODIFICATIONS: G. PAUL, R. HESS (TIES), 1973
|
||||
50 DIM S(4),C$(14),M1(14),M2(14),C1(14),C2(14),M(14)
|
||||
60 REM UNION INFO ON LIKELY CONFEDERATE STRATEGY
|
||||
70 S(1)=25 : S(2)=25 : S(3)=25 : S(4)=25
|
||||
82 REM READ HISTORICAL DATA.
|
||||
84 FOR D=1 TO 14
|
||||
86 READ C$(D),M1(D),M2(D),C1(D),C2(D),M(D)
|
||||
88 NEXT D
|
||||
89 LET D=RND(-1)
|
||||
90 PRINT
|
||||
100 PRINT "DO YOU WANT INSTRUCTIONS";
|
||||
110 INPUT X$
|
||||
120 IF X$="YES" THEN 160
|
||||
130 IF X$="NO" THEN 370
|
||||
140 PRINT "YES OR NO -- ";
|
||||
150 GOTO 110
|
||||
160 PRINT : PRINT : PRINT : PRINT
|
||||
170 PRINT "THIS IS A CIVIL WAR SIMULATION."
|
||||
180 PRINT "TO PLAY TYPE A RESPONSE WHEN THE COMPUTER ASKS."
|
||||
190 PRINT "REMEMBER THAT ALL FACTORS ARE INTERRELATED AND THAT YOUR"
|
||||
200 PRINT "RESPONSES COULD CHANGE HISTORY. FACTS AND FIGURES USED ARE"
|
||||
210 PRINT "BASED ON THE ACTUAL OCCURRENCE. MOST BATTLES TEND TO RESULT"
|
||||
220 PRINT "AS THEY DID IN THE CIVIL WAR, BUT IT ALL DEPENDS ON YOU!!"
|
||||
230 PRINT
|
||||
240 PRINT "THE OBJECT OF THE GAME IS TO WIN AS MANY BATTLES AS ";
|
||||
245 PRINT "POSSIBLE."
|
||||
250 PRINT
|
||||
260 PRINT "YOUR CHOICES FOR DEFENSIVE STRATEGY ARE:"
|
||||
270 PRINT " (1) ARTILLERY ATTACK"
|
||||
280 PRINT " (2) FORTIFICATION AGAINST FRONTAL ATTACK"
|
||||
290 PRINT " (3) FORTIFICATION AGAINST FLANKING MANEUVERS"
|
||||
300 PRINT " (4) FALLING BACK"
|
||||
310 PRINT " YOUR CHOICES FOR OFFENSIVE STRATEGY ARE:"
|
||||
320 PRINT " (1) ARTILLERY ATTACK"
|
||||
330 PRINT " (2) FRONTAL ATTACK"
|
||||
340 PRINT " (3) FLANKING MANEUVERS"
|
||||
350 PRINT " (4) ENCIRCLEMENT"
|
||||
360 PRINT "YOU MAY SURRENDER BY TYPING A '5' FOR YOUR STRATEGY."
|
||||
370 PRINT : PRINT : PRINT : PRINT "ARE THERE TWO GENERALS PRESENT ";
|
||||
380 PRINT "(ANSWER YES OR NO)";
|
||||
390 INPUT B$
|
||||
400 IF B$="YES" THEN 430
|
||||
410 IF B$ <> "NO" THEN 380
|
||||
420 PRINT : PRINT "YOU ARE THE CONFEDERACY. GOOD LUCK!"
|
||||
425 PRINT
|
||||
430 LET D=1
|
||||
440 IF B$ <> "YES" THEN 460
|
||||
450 LET D=2
|
||||
460 PRINT "SELECT A BATTLE BY TYPING A NUMBER FROM 1 TO 14 ON"
|
||||
470 PRINT "REQUEST. TYPE ANY OTHER NUMBER TO END THE SIMULATION."
|
||||
480 PRINT "BUT '0' BRINGS BACK EXACT PREVIOUS BATTLE SITUATION"
|
||||
490 PRINT "ALLOWING YOU TO REPLAY IT"
|
||||
500 PRINT
|
||||
510 PRINT "NOTE: A NEGATIVE FOOD$ ENTRY CAUSES THE PROGRAM TO "
|
||||
520 PRINT "USE THE ENTRIES FROM THE PREVIOUS BATTLE"
|
||||
530 PRINT
|
||||
540 PRINT "AFTER REQUESTING A BATTLE, DO YOU WISH ";
|
||||
550 PRINT "BATTLE DESCRIPTIONS ";
|
||||
560 PRINT "(ANSWER YES OR NO)";
|
||||
570 INPUT X$
|
||||
580 IF X$="YES" THEN 600
|
||||
590 IF X$ <> "NO" THEN 560
|
||||
600 L=0:W=0:R1=0:Q1=0:M3=0:M4=0:P1=0:P2=0:T1=0:T2=0
|
||||
610 F(2)=0:H(2)=0:B(2)=0:R2=0:Q2=0:C6=0:F=0:W0=0:Y=0:Y2=0:U=0:U2=0
|
||||
620 PRINT : PRINT : PRINT
|
||||
630 PRINT "WHICH BATTLE DO YOU WISH TO SIMULATE";
|
||||
640 INPUT A
|
||||
650 IF A <> 0 THEN 660
|
||||
655 IF R <> 0 THEN 1140
|
||||
660 IF A <=0 THEN 2860
|
||||
665 IF A >= 15 THEN 2860
|
||||
670 LET C$=C$(A)
|
||||
680 LET M1=M1(A)
|
||||
690 LET M2=M2(A)
|
||||
700 LET C1=C1(A)
|
||||
710 LET C2=C2(A)
|
||||
720 LET M=M(A)
|
||||
960 LET U=0
|
||||
970 REM INFLATION CALC
|
||||
980 LET I1=10+(L-W)*2
|
||||
990 LET I2=10+(W-L)*2
|
||||
1000 REM - MONEY AVAILABLE
|
||||
1010 LET D(1)=100*INT((M1*(100-I1)/2000)*(1+(R1-Q1)/(R1+1))+.5)
|
||||
1020 LET D(2)=100*INT(M2*(100-I2)/2000+.5)
|
||||
1030 IF B$ <> "YES" THEN 1050
|
||||
1040 LET D(2)=100*INT((M2*(100-I2)/2000)*(1+(R2-Q2)/(R2+1))+.5)
|
||||
1050 REM - MEN AVAILABLE
|
||||
1060 LET M5=INT(M1*(1+(P1-T1)/(M3+1)))
|
||||
1070 LET M6=INT(M2*(1+(P2-T2)/(M4+1)))
|
||||
1080 LET F1=5*M1/6
|
||||
1090 PRINT : PRINT : PRINT : PRINT : PRINT
|
||||
1100 PRINT "THIS IS THE BATTLE OF ";C$
|
||||
1110 IF X$="NO" THEN 1150
|
||||
1120 IF A>11 THEN 1130
|
||||
1125 ON A GOTO 3580,3620,3650,3690,3720,3750,3780,3800,3830,3860,3890
|
||||
1130 ON A-11 GOTO 3920,3950,3980
|
||||
1140 PRINT C$" INSTANT REPLAY"
|
||||
1150 PRINT
|
||||
1160 PRINT " ","CONFEDERACY"," UNION"
|
||||
1170 PRINT "MEN"," "M5," "M6
|
||||
1180 PRINT "MONEY","$";D(1),"$";D(2)
|
||||
1190 PRINT "INFLATION"," ";I1+15;"%"," ";I2;"%"
|
||||
1195 PRINT
|
||||
1200 REM - ONLY IN PRINTOUT IS CONFED INFLATION = I1+15%
|
||||
1210 REM - IF TWO GENERALS, INPUT CONFED. FIRST
|
||||
1220 FOR I=1 TO D
|
||||
1230 IF B$ <> "YES" THEN 1260
|
||||
1240 IF I=2 THEN 1260
|
||||
1250 PRINT "CONFEDERATE GENERAL---";
|
||||
1260 PRINT "HOW MUCH DO YOU WISH TO SPEND FOR"
|
||||
1270 PRINT " - FOOD......";
|
||||
1280 INPUT F
|
||||
1290 IF F >= 0 THEN 1360
|
||||
1300 IF R1 <> 0 THEN 1330
|
||||
1310 PRINT "NO PREVIOUS ENTRIES"
|
||||
1320 GOTO 1270
|
||||
1330 PRINT "ASSUME YOU WANT TO KEEP SAME ALLOCATIONS"
|
||||
1340 PRINT
|
||||
1350 GOTO 1510
|
||||
1360 LET F(I)=F
|
||||
1370 PRINT " - SALARIES..";
|
||||
1380 INPUT H(I)
|
||||
1390 LET N=1
|
||||
1400 IF H(I)<0 THEN 1490
|
||||
1410 PRINT " - AMMUNITION";
|
||||
1420 INPUT B(I)
|
||||
1430 LET N=2
|
||||
1440 IF B(I)<0 THEN 1490
|
||||
1450 PRINT
|
||||
1460 IF F(I)+H(I)+B(I) <= D(I) THEN 1510
|
||||
1470 PRINT "THINK AGAIN! YOU HAVE ONLY $"D(I)
|
||||
1480 GOTO 1270
|
||||
1490 PRINT "NEGATIVE VALUES NOT ALLOWED."
|
||||
1500 ON N GOTO 1370,1410
|
||||
1510 IF B$ <> "YES" THEN 1550
|
||||
1520 IF I=2 THEN 1550
|
||||
1530 PRINT "UNION GENERAL---";
|
||||
1540 NEXT I
|
||||
1550 FOR Z=1 TO D
|
||||
1560 IF B$ <> "YES" THEN 1620
|
||||
1570 ON Z GOTO 1580,1600
|
||||
1580 PRINT "CONFEDERATE ";
|
||||
1590 GOTO 1620
|
||||
1600 PRINT " UNION ";
|
||||
1610 REM - FIND MORALE
|
||||
1620 LET O=((2*F(Z)^2+H(Z)^2)/F1^2+1)
|
||||
1630 IF O<10 THEN 1660
|
||||
1640 PRINT "MORALE IS HIGH"
|
||||
1650 GOTO 1700
|
||||
1660 IF O<5 THEN 1690
|
||||
1670 PRINT "MORALE IS FAIR"
|
||||
1680 GOTO 1700
|
||||
1690 PRINT "MORALE IS POOR"
|
||||
1700 IF B$ <> "YES" THEN 1760
|
||||
1710 LET O(Z)=O
|
||||
1720 NEXT Z
|
||||
1730 LET O2=O(2)
|
||||
1740 LET O=O(1)
|
||||
1750 PRINT "CONFEDERATE GENERAL---";
|
||||
1760 REM - ACTUAL OFF/DEF BATTLE SITUATION
|
||||
1770 IF M <> 3 THEN 1800
|
||||
1780 PRINT "YOU ARE ON THE OFFENSIVE"
|
||||
1790 GOTO 1840
|
||||
1800 IF M <> 1 THEN 1830
|
||||
1810 PRINT "YOU ARE ON THE DEFENSIVE"
|
||||
1820 GOTO 1840
|
||||
1830 PRINT "BOTH SIDES ARE ON THE OFFENSIVE "
|
||||
1840 PRINT
|
||||
1850 REM - CHOOSE STRATEGIES
|
||||
1860 IF B$ <> "YES" THEN 1910
|
||||
1870 FOR I=1 TO 2
|
||||
1880 ON I GOTO 1890,1920
|
||||
1890 PRINT "CONFEDERATE STRATEGY ";
|
||||
1900 GOTO 1920
|
||||
1910 PRINT "YOUR STRATEGY ";
|
||||
1920 INPUT Y
|
||||
1930 IF ABS(Y-3)<3 THEN 1960
|
||||
1940 PRINT "STRATEGY";Y;"NOT ALLOWED."
|
||||
1950 GOTO 1910
|
||||
1960 IF B$="YES" THEN 2000
|
||||
1970 IF Y=5 THEN 2830
|
||||
1980 GOSUB 3110
|
||||
1990 GOTO 2170
|
||||
2000 IF I=2 THEN 2040
|
||||
2010 LET Y1=Y
|
||||
2020 PRINT "UNION STRATEGY ";
|
||||
2030 NEXT I
|
||||
2040 LET Y2=Y
|
||||
2050 LET Y=Y1
|
||||
2060 IF Y2=5 THEN 2020
|
||||
2070 REM : SIMULATED LOSSES-NORTH
|
||||
2080 LET C6=(2*C2/5)*(1+1/(2*(ABS(Y2-Y)+1)))
|
||||
2090 LET C6=C6*(1.28+(5*M2/6)/(B(2)+1))
|
||||
2100 LET C6=INT(C6*(1+1/O2)+.5)
|
||||
2110 REM - IF LOSS > MEN PRESENT, RESCALE LOSSES
|
||||
2120 LET E2=100/O2
|
||||
2130 IF INT(C6+E2)<M6 THEN 2190
|
||||
2140 LET C6=INT(13*M6/20)
|
||||
2150 LET E2=7*C6/13
|
||||
2160 LET U2=1
|
||||
2170 REM - CALCULATE SIMULATED LOSSES
|
||||
2180 PRINT
|
||||
2190 PRINT : PRINT : PRINT ,"CONFEDERACY","UNION"
|
||||
2200 LET C5=(2*C1/5)*(1+1/(2*(ABS(Y2-Y)+1)))
|
||||
2210 LET C5=INT(C5*(1+1/O)*(1.28+F1/(B(1)+1))+.5)
|
||||
2220 LET E=100/O
|
||||
2230 IF C5+100/O<M1*(1+(P1-T1)/(M3+1)) THEN 2270
|
||||
2240 LET C5=INT(13*M1/20*(1+(P1-T1)/(M3+1)))
|
||||
2250 LET E=7*C5/13
|
||||
2260 LET U=1
|
||||
2270 IF D=1 THEN 2500
|
||||
2280 PRINT "CASUALTIES",C5,C6
|
||||
2290 PRINT "DESERTIONS",INT(E),INT(E2)
|
||||
2300 PRINT
|
||||
2310 IF B$ <> "YES" THEN 2350
|
||||
2320 PRINT "COMPARED TO THE ACTUAL CASUALTIES AT "C$
|
||||
2330 PRINT "CONFEDERATE:"INT(100*(C5/C1)+.5)"% OF THE ORIGINAL"
|
||||
2340 PRINT "UNION: "INT(100*(C6/C2)+.5)"% OF THE ORIGINAL"
|
||||
2350 PRINT
|
||||
2360 REM - 1 WHO ONE
|
||||
2370 IF U <> 1 THEN 2380
|
||||
2375 IF U2=1 THEN 2460
|
||||
2380 IF U=1 THEN 2420
|
||||
2390 IF U2=1 THEN 2440
|
||||
2400 IF C5+E=C6+E2 THEN 2460
|
||||
2410 IF C5+E<C6+E2 THEN 2440
|
||||
2420 PRINT "THE UNION WINS "C$
|
||||
2430 GOTO 2600
|
||||
2440 PRINT "THE CONFEDERACY WINS "C$
|
||||
2450 GOTO 2660
|
||||
2460 PRINT "BATTLE OUTCOME UNRESOLVED"
|
||||
2470 LET W0=W0+1
|
||||
2480 IF A=0 THEN 2790
|
||||
2490 GOTO 2680
|
||||
2500 LET C6=INT(17*C2*C1/(C5*20))
|
||||
2510 LET E2=5*O
|
||||
2520 GOTO 2280
|
||||
2530 PRINT "YOUR CASUALTIES WERE "INT(100*(C5/C1)+.5)"% OF "
|
||||
2540 PRINT "THE ACTUAL CASUALTIES AT ";C$
|
||||
2550 PRINT
|
||||
2560 REM - FIND WHO WON
|
||||
2570 IF U=1 THEN 2590
|
||||
2580 IF C5+E<17*C2*C1/(C5*20)+5*O THEN 2630
|
||||
2590 PRINT "YOU LOSE ";C$
|
||||
2600 IF A=0 THEN 2790
|
||||
2610 LET L=L+1
|
||||
2620 GOTO 2680
|
||||
2630 PRINT "YOU WIN ";C$
|
||||
2640 REM - CUMULATIVE BATTLE FACTORS WHICH ALTER HISTORICAL
|
||||
2650 REM RESOURCES AVAILABLE.IF A REPLAY DON'T UPDATE.
|
||||
2660 IF A=0 THEN 2790
|
||||
2670 LET W=W+1
|
||||
2680 LET T1=T1+C5+E
|
||||
2690 LET T2=T2+C6+E2
|
||||
2700 LET P1=P1+C1
|
||||
2710 LET P2=P2+C2
|
||||
2720 LET Q1=Q1+(F(1)+H(1)+B(1))
|
||||
2730 LET Q2=Q2+(F(2)+H(2)+B(2))
|
||||
2740 LET R1=R1+M1*(100-I1)/20
|
||||
2750 LET R2=R2+M2*(100-I2)/20
|
||||
2760 LET M3=M3+M1
|
||||
2770 LET M4=M4+M2
|
||||
2780 GOSUB 3300
|
||||
2790 U=0:U2=0
|
||||
2800 PRINT "---------------"
|
||||
2810 GOTO 620
|
||||
2820 REM------FINISH OFF
|
||||
2830 PRINT "THE CONFEDERACY HAS SURRENDERED"
|
||||
2840 GOTO 2860
|
||||
2850 PRINT "THE UNION HAS SURRENDERED."
|
||||
2860 PRINT : PRINT : PRINT : PRINT : PRINT : PRINT
|
||||
2870 PRINT "THE CONFEDERACY ";
|
||||
2880 PRINT "HAS WON "W" BATTLES AND LOST "L
|
||||
2890 IF Y=5 THEN 2940
|
||||
2900 IF Y2=5 THEN 2920
|
||||
2910 IF W <= L THEN 2940
|
||||
2915 IF Y=5 THEN 2940
|
||||
2920 PRINT "THE CONFEDERACY HAS WON THE WAR"
|
||||
2930 GOTO 2950
|
||||
2940 PRINT "THE UNION HAS WON THE WAR"
|
||||
2950 PRINT
|
||||
2960 IF R1=0 THEN 3100
|
||||
2970 PRINT "FOR THE "W+L+W0" BATTLES FOUGHT (EXCUDING RERUNS)"
|
||||
2980 PRINT " "," "," ";
|
||||
2990 PRINT "CONFEDERACY"," UNION"
|
||||
3000 PRINT "HISTORICAL LOSSES",INT(P1+.5),INT(P2+.5)
|
||||
3010 PRINT "SIMULATED LOSSES",INT(T1+.5),INT(T2+.5)
|
||||
3020 PRINT
|
||||
3030 PRINT " % OF ORIGINAL",INT(100*(T1/P1)+.5),INT(100*(T2/P2)+.5)
|
||||
3040 IF B$="YES" THEN 3100
|
||||
3050 PRINT
|
||||
3060 PRINT "UNION INTELLIGENCE SUGGESTS THAT THE SOUTH USED "
|
||||
3070 PRINT "STRATEGIES 1, 2, 3, 4 IN THE FOLLOWING PERCENTAGES"
|
||||
3080 PRINT S(1);S2(2);S(3);S(4)
|
||||
3090 REM---------------------------------
|
||||
3100 STOP
|
||||
3110 REM - UNION STRATEGY IS COMPUTER CHOSEN
|
||||
3120 PRINT "UNION STRATEGY IS ";
|
||||
3130 IF A <> 0 THEN 3180
|
||||
3140 INPUT Y2
|
||||
3150 IF Y2 <=0 THEN 3160
|
||||
3155 IF Y2<5 THEN 3290
|
||||
3160 PRINT "ENTER 1 , 2 ,3 , OR 4 (USUALLY PREVIOUS UNION STRATEGY)"
|
||||
3170 GOTO 3140
|
||||
3180 LET S0=0
|
||||
3190 LET R=100*RND(0)
|
||||
3200 FOR I=1 TO 4
|
||||
3210 LET S0=S0+S(I)
|
||||
3220 REM - IF ACTUAL STRATEGY INFO IS IN PROGRAM DATA STATEMENTS
|
||||
3230 REM THEN R-100 IS EXTRA WEIGHT GIVEN TO THAT STATEGY.
|
||||
3240 IF R<S0 THEN 3270
|
||||
3250 NEXT I
|
||||
3260 REM - IF ACTUAL STRAT. IN,THEN HERE IS Y2= HIST. STRAT.
|
||||
3270 LET Y2=I
|
||||
3280 PRINT Y2
|
||||
3290 RETURN
|
||||
3300 REM LEARN PRESENT STRATEGY, START FORGETTING OLD ONES
|
||||
3310 REM - PRESENT STRATEGY OF SOUTH GAINS 3*S, OTHERS LOSE S
|
||||
3320 REM PROBABILITY POINTS, UNLESS A STRATEGY FALLS BELOW 5%.
|
||||
3330 LET S=3
|
||||
3340 LET S0=0
|
||||
3350 FOR I=1 TO 4
|
||||
3360 IF S(I) <= 5 THEN 3390
|
||||
3370 LET S(I)=S(I)-S
|
||||
3380 LET S0=S0+S
|
||||
3390 NEXT I
|
||||
3400 LET S(Y)=S(Y)+S0
|
||||
3410 RETURN
|
||||
3420 REM - HISTORICAL DATA...CAN ADD MORE (STRAT.,ETC) BY INSERTING
|
||||
3430 REM DATA STATEMENTS AFTER APPRO. INFO, AND ADJUSTING READ
|
||||
3440 DATA "BULL RUN",18000,18500,1967,2708,1
|
||||
3450 DATA "SHILOH",40000.,44894.,10699,13047,3
|
||||
3460 DATA "SEVEN DAYS",95000.,115000.,20614,15849,3
|
||||
3470 DATA "SECOND BULL RUN",54000.,63000.,10000,14000,2
|
||||
3480 DATA "ANTIETAM",40000.,50000.,10000,12000,3
|
||||
3490 DATA "FREDERICKSBURG",75000.,120000.,5377,12653,1
|
||||
3500 DATA "MURFREESBORO",38000.,45000.,11000,12000,1
|
||||
3510 DATA "CHANCELLORSVILLE",32000,90000.,13000,17197,2
|
||||
3520 DATA "VICKSBURG",50000.,70000.,12000,19000,1
|
||||
3530 DATA "GETTYSBURG",72500.,85000.,20000,23000,3
|
||||
3540 DATA "CHICKAMAUGA",66000.,60000.,18000,16000,2
|
||||
3550 DATA "CHATTANOOGA",37000.,60000.,36700.,5800,2
|
||||
3560 DATA "SPOTSYLVANIA",62000.,110000.,17723,18000,2
|
||||
3570 DATA "ATLANTA",65000.,100000.,8500,3700,1
|
||||
3580 PRINT "JULY 21, 1861. GEN. BEAUREGARD, COMMANDING THE SOUTH, MET"
|
||||
3590 PRINT "UNION FORCES WITH GEN. MCDOWELL IN A PREMATURE BATTLE AT"
|
||||
3600 PRINT "BULL RUN. GEN. JACKSON HELPED PUSH BACK THE UNION ATTACK."
|
||||
3610 GOTO 1150
|
||||
3620 PRINT "APRIL 6-7, 1862. THE CONFEDERATE SURPRISE ATTACK AT"
|
||||
3630 PRINT "SHILOH FAILED DUE TO POOR ORGANIZATION."
|
||||
3640 GOTO 1150
|
||||
3650 PRINT "JUNE 25-JULY 1, 1862. GENERAL LEE (CSA) UPHELD THE"
|
||||
3660 PRINT "OFFENSIVE THROUGHOUT THE BATTLE AND FORCED GEN. MCCLELLAN"
|
||||
3670 PRINT "AND THE UNION FORCES AWAY FROM RICHMOND."
|
||||
3680 GOTO 1150
|
||||
3690 PRINT "AUG 29-30, 1862. THE COMBINED CONFEDERATE FORCES UNDER";
|
||||
3695 PRINT " LEE"
|
||||
3700 PRINT "AND JACKSON DROVE THE UNION FORCES BACK INTO WASHINGTON."
|
||||
3710 GOTO 1150
|
||||
3720 PRINT "SEPT 17, 1862. THE SOUTH FAILED TO INCORPORATE MARYLAND"
|
||||
3730 PRINT "INTO THE CONFEDERACY."
|
||||
3740 GOTO 1150
|
||||
3750 PRINT "DEC 13, 1862. THE CONFEDERACY UNDER LEE SUCCESSFULLY"
|
||||
3760 PRINT "REPULSED AN ATTACK BY THE UNION UNDER GEN. BURNSIDE."
|
||||
3770 GOTO 1150
|
||||
3780 PRINT "DEC 31, 1862. THE SOUTH UNDER GEN. BRAGG WON A CLOSE ";
|
||||
3785 PRINT "BATTLE."
|
||||
3790 GOTO 1150
|
||||
3800 PRINT "MAY 1-6, 1863. THE SOUTH HAD A COSTLY VICTORY AND LOST"
|
||||
3810 PRINT "ONE OF THEIR OUTSTANDING GENERALS, 'STONEWALL' JACKSON."
|
||||
3820 GOTO 1150
|
||||
3830 PRINT "JULY 4, 1863. VICKSBURG WAS A COSTLY DEFEAT FOR THE SOUTH"
|
||||
3840 PRINT "BECAUSE IT GAVE THE UNION ACCESS TO THE MISSISSIPPI."
|
||||
3850 GOTO 1150
|
||||
3860 PRINT "JULY 1-3, 1863. A SOUTHERN MISTAKE BY GEN. LEE AT ";
|
||||
3865 PRINT "GETTYSBURG"
|
||||
3870 PRINT "COST THEM ONE OF THE MOST CRUCIAL BATTLES OF THE WAR."
|
||||
3880 GOTO 1150
|
||||
3890 PRINT "SEPT. 15, 1863. CONFUSION IN A FOREST NEAR CHICKAMAUGA LED"
|
||||
3900 PRINT "TO A COSTLY SOUTHERN VICTORY."
|
||||
3910 GOTO 1150
|
||||
3920 PRINT "NOV. 25, 1863. AFTER THE SOUTH HAD SIEGED GEN. ROSENCRANS'"
|
||||
3930 PRINT "ARMY FOR THREE MONTHS, GEN. GRANT BROKE THE SIEGE."
|
||||
3940 GOTO 1150
|
||||
3950 PRINT "MAY 5, 1864. GRANT'S PLAN TO KEEP LEE ISOLATED BEGAN TO"
|
||||
3960 PRINT "FAIL HERE, AND CONTINUED AT COLD HARBOR AND PETERSBURG."
|
||||
3970 GOTO 1150
|
||||
3980 PRINT "AUGUST, 1864. SHERMAN AND THREE VETERAN ARMIES CONVERGED"
|
||||
3990 PRINT "ON ATLANTA AND DEALT THE DEATH BLOW TO THE CONFEDERACY."
|
||||
4000 GOTO 1150
|
||||
4010 END
|
||||
7
28 Combat/README.md
Normal file
7
28 Combat/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Combat
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=50
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
124
28 Combat/combat.bas
Normal file
124
28 Combat/combat.bas
Normal file
@@ -0,0 +1,124 @@
|
||||
1 PRINT TAB(33);"COMBAT"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT: PRINT: PRINT
|
||||
4 PRINT "I AM AT WAR WITH YOU.": PRINT "WE HAVE 72000 SOLDIERS APIECE."
|
||||
5 PRINT:PRINT "DISTRIBUTE YOUR FORCES."
|
||||
6 PRINT ,"ME"," YOU"
|
||||
7 PRINT "ARMY",30000,
|
||||
8 INPUT A
|
||||
9 PRINT "NAVY",20000,
|
||||
10 INPUT B
|
||||
11 PRINT "A. F.",22000,
|
||||
12 INPUT C
|
||||
13 IF A+B+C>72000 THEN 5
|
||||
14 D=30000
|
||||
15 E=20000
|
||||
16 F=22000
|
||||
17 PRINT "YOU ATTACK FIRST. TYPE (1) FOR ARMY; (2) FOR NAVY;"
|
||||
18 PRINT "AND (3) FOR AIR FORCE."
|
||||
19 INPUT Y
|
||||
20 PRINT "HOW MANY MEN"
|
||||
21 INPUT X
|
||||
22 IF X<0 THEN 20
|
||||
23 ON Y GOTO 100,200,300
|
||||
100 IF X>A THEN 20
|
||||
105 IF X<A/3 THEN 120
|
||||
110 IF X<2*A/3 THEN 150
|
||||
115 GOTO 270
|
||||
120 PRINT "YOU LOST";X;"MEN FROM YOUR ARMY."
|
||||
125 A=INT(A-X)
|
||||
130 GOTO 500
|
||||
150 PRINT "YOU LOST";INT(X/3);"MEN, BUT I LOST ";INT(2*D/3)
|
||||
155 A=INT(A-X/3)
|
||||
160 D=0
|
||||
165 GOTO 500
|
||||
200 IF X>B THEN 20
|
||||
210 IF X<E/3 THEN 230
|
||||
215 IF X<2*E/3 THEN 250
|
||||
220 GOTO 270
|
||||
230 PRINT "YOUR ATTACK WAS STOPPED!"
|
||||
232 B=INT(B-X)
|
||||
235 GOTO 500
|
||||
250 PRINT "YOU DESTROYED";INT(2*E/3);"OF MY ARMY."
|
||||
255 E=INT(E/3)
|
||||
260 GOTO 500
|
||||
270 PRINT "YOU SUNK ONE OF MY PATROL BOATS, BUT I WIPED OUT TWO"
|
||||
275 PRINT "OF YOUR AIR FORCE BASES AND 3 ARMY BASES."
|
||||
280 A=INT(A/3)
|
||||
285 C=INT(C/3)
|
||||
290 E=INT(2*E/3)
|
||||
293 GOTO 500
|
||||
300 IF X>C THEN 20
|
||||
310 IF X<C/3 THEN 350
|
||||
320 IF X<2*C/3 THEN 370
|
||||
330 GOTO 380
|
||||
350 PRINT "YOUR ATTACK WAS WIPED OUT."
|
||||
355 C=INT(C-X)
|
||||
360 GOTO 500
|
||||
370 PRINT "WE HAD A DOGFIGHT. YOU WON - AND FINISHED YOUR MISSION."
|
||||
375 D=INT(2*D/3)
|
||||
377 E=INT(E/3)
|
||||
378 F=INT(F/3)
|
||||
379 GOTO 500
|
||||
380 PRINT "YOU WIPED OUT ONE OF MY ARMY PATROLS, BUT I DESTROYED"
|
||||
381 PRINT "TWO NAVY BASES AND BOMBED THREE ARMY BASES."
|
||||
385 A=INT(A/4)
|
||||
387 B=INT(B/3)
|
||||
390 D=INT(2*D/3)
|
||||
500 PRINT
|
||||
501 PRINT,"YOU","ME"
|
||||
510 PRINT "ARMY",A,D
|
||||
520 PRINT "NAVY",B,E
|
||||
530 PRINT "A. F.",C,F
|
||||
1000 PRINT "WHAT IS YOUR NEXT MOVE?"
|
||||
1010 PRINT "ARMY=1 NAVY=2 AIR FORCE=3"
|
||||
1020 INPUT G
|
||||
1030 PRINT "HOW MANY MEN"
|
||||
1040 INPUT T
|
||||
1045 IF T<0 THEN 1030
|
||||
1050 ON G GOTO 1600,1700,1800
|
||||
1600 IF T>A THEN 1030
|
||||
1610 IF T<D/2 THEN 1630
|
||||
1615 PRINT "YOU DESTROYED MY ARMY!"
|
||||
1616 D=0
|
||||
1617 GOTO 2000
|
||||
1630 PRINT "I WIPED OUT YOUR ATTACK!"
|
||||
1635 A=A-T
|
||||
1640 GOTO 2000
|
||||
1700 IF T>B THEN 1030
|
||||
1710 IF T<E/2 THEN 1750
|
||||
1720 GOTO 1770
|
||||
1750 PRINT "I SUNK TWO OF YOUR BATTLESHIPS, AND MY AIR FORCE"
|
||||
1751 PRINT "WIPED OUT YOUR UNGAURDED CAPITOL."
|
||||
1755 A=A/4
|
||||
1760 B=B/2
|
||||
1765 GOTO 2000
|
||||
1770 PRINT "YOUR NAVY SHOT DOWN THREE OF MY XIII PLANES,"
|
||||
1771 PRINT "AND SUNK THREE BATTLESHIPS."
|
||||
1775 F=2*F/3
|
||||
1780 E=(E/2)
|
||||
1790 GOTO 2000
|
||||
1800 IF T>C THEN 1030
|
||||
1810 IF T>F/2 THEN 1830
|
||||
1820 GOTO 1850
|
||||
1830 PRINT "MY NAVY AND AIR FORCE IN A COMBINED ATTACK LEFT"
|
||||
1831 PRINT "YOUR COUNTRY IN SHAMBLES."
|
||||
1835 A=A/3
|
||||
1837 B=B/3
|
||||
1840 C=C/3
|
||||
1845 GOTO 2000
|
||||
1850 PRINT "ONE OF YOUR PLANES CRASHED INTO MY HOUSE. I AM DEAD."
|
||||
1851 PRINT "MY COUNTRY FELL APART."
|
||||
1860 GOTO 2010
|
||||
2000 PRINT
|
||||
2001 PRINT "FROM THE RESULTS OF BOTH OF YOUR ATTACKS,"
|
||||
2002 IF A+B+C>3/2*(D+E+F) THEN 2010
|
||||
2005 IF A+B+C<2/3*(D+E+F) THEN 2015
|
||||
2006 PRINT "THE TREATY OF PARIS CONCLUDED THAT WE TAKE OUR"
|
||||
2007 PRINT "RESPECTIVE COUNTRIES AND LIVE IN PEACE."
|
||||
2008 GOTO 2020
|
||||
2010 PRINT "YOU WON, OH! SHUCKS!!!!"
|
||||
2012 GOTO 2020
|
||||
2015 PRINT "YOU LOST-I CONQUERED YOUR COUNTRY. IT SERVES YOU"
|
||||
2016 PRINT "RIGHT FOR PLAYING THIS STUPID GAME!!!"
|
||||
2020 END
|
||||
7
29 Craps/README.md
Normal file
7
29 Craps/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Craps
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=52
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
82
29 Craps/craps.bas
Normal file
82
29 Craps/craps.bas
Normal file
@@ -0,0 +1,82 @@
|
||||
5 PRINT TAB(33);"CRAPS"
|
||||
10 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
12 PRINT:PRINT:PRINT
|
||||
15 LET R=0
|
||||
20 PRINT"2,3,12 ARE LOSERS; 4,5,6,8,9,10 ARE POINTS; 7,11 ARE NATURAL WINNERS."
|
||||
21 LET T=1
|
||||
22 PRINT "PICK A NUMBER AND INPUT TO ROLL DICE";
|
||||
23 INPUT Z
|
||||
24 LET X=(RND(0))
|
||||
25 LET T =T+1
|
||||
26 IF T<=Z THEN 24
|
||||
27 PRINT"INPUT THE AMOUNT OF YOUR WAGER.";
|
||||
28 INPUT F
|
||||
30 PRINT "I WILL NOW THROW THE DICE"
|
||||
40 LET E=INT(7*RND(1))
|
||||
41 LET S=INT(7*RND(1))
|
||||
42 LET X=E+S
|
||||
50 IF X=7 THEN 180
|
||||
55 IF X=11 THEN 180
|
||||
60 IF X=1 THEN 40
|
||||
62 IF X=2 THEN 195
|
||||
65 IF X=0 THEN 40
|
||||
70 IF X=2 THEN 200
|
||||
80 IF X=3 THEN 200
|
||||
90 IF X=12 THEN 200
|
||||
125 IF X=5 THEN 220
|
||||
130 IF X =6 THEN 220
|
||||
140 IF X=8 THEN 220
|
||||
150 IF X=9 THEN 220
|
||||
160 IF X =10 THEN 220
|
||||
170 IF X=4 THEN 220
|
||||
180 PRINT X "- NATURAL....A WINNER!!!!"
|
||||
185 PRINT X"PAYS EVEN MONEY, YOU WIN"F"DOLLARS"
|
||||
190 GOTO 210
|
||||
195 PRINT X"- SNAKE EYES....YOU LOSE."
|
||||
196 PRINT "YOU LOSE"F "DOLLARS."
|
||||
197 LET F=0-F
|
||||
198 GOTO 210
|
||||
200 PRINT X " - CRAPS...YOU LOSE."
|
||||
205 PRINT "YOU LOSE"F"DOLLARS."
|
||||
206 LET F=0-F
|
||||
210 LET R= R+F
|
||||
211 GOTO 320
|
||||
220 PRINT X "IS THE POINT. I WILL ROLL AGAIN"
|
||||
230 LET H=INT(7*RND(1))
|
||||
231 LET Q=INT(7*RND(1))
|
||||
232 LET O=H+Q
|
||||
240 IF O=1 THEN 230
|
||||
250 IF O=7 THEN 290
|
||||
255 IF O=0 THEN 230
|
||||
260 IF O=X THEN 310
|
||||
270 PRINT O " - NO POINT. I WILL ROLL AGAIN"
|
||||
280 GOTO 230
|
||||
290 PRINT O "- CRAPS. YOU LOSE."
|
||||
291 PRINT "YOU LOSE $"F
|
||||
292 F=0-F
|
||||
293 GOTO 210
|
||||
300 GOTO 320
|
||||
310 PRINT X"- A WINNER.........CONGRATS!!!!!!!!"
|
||||
311 PRINT X "AT 2 TO 1 ODDS PAYS YOU...LET ME SEE..."2*F"DOLLARS"
|
||||
312 LET F=2*F
|
||||
313 GOTO 210
|
||||
320 PRINT " IF YOU WANT TO PLAY AGAIN PRINT 5 IF NOT PRINT 2";
|
||||
330 INPUT M
|
||||
331 IF R<0 THEN 334
|
||||
332 IF R>0 THEN 336
|
||||
333 IF R=0 THEN 338
|
||||
334 PRINT "YOU ARE NOW UNDER $";-R
|
||||
335 GOTO 340
|
||||
336 PRINT "YOU ARE NOW AHEAD $";R
|
||||
337 GOTO 340
|
||||
338 PRINT "YOU ARE NOW EVEN AT 0"
|
||||
340 IF M=5 THEN 27
|
||||
341 IF R<0 THEN 350
|
||||
342 IF R>0 THEN 353
|
||||
343 IF R=0 THEN 355
|
||||
350 PRINT"TOO BAD, YOU ARE IN THE HOLE. COME AGAIN."
|
||||
351 GOTO 360
|
||||
353 PRINT"CONGRATULATIONS---YOU CAME OUT A WINNER. COME AGAIN!"
|
||||
354 GOTO 360
|
||||
355 PRINT"CONGRATULATIONS---YOU CAME OUT EVEN, NOT BAD FOR AN AMATEUR"
|
||||
360 END
|
||||
7
30 Cube/README.md
Normal file
7
30 Cube/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Cube
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=53
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
161
30 Cube/cube.bas
Normal file
161
30 Cube/cube.bas
Normal file
@@ -0,0 +1,161 @@
|
||||
10 PRINT TAB(34);"CUBE"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT : PRINT : PRINT
|
||||
100 PRINT "DO YOU WANT TO SEE THE INSTRUCTIONS? (YES--1,NO--0)"
|
||||
110 INPUT B7
|
||||
120 IF B7=0 THEN 370
|
||||
130 PRINT"THIS IS A GAME IN WHICH YOU WILL BE PLAYING AGAINST THE"
|
||||
140 PRINT"RANDOM DECISION OF THE COMPUTER. THE FIELD OF PLAY IS A"
|
||||
150 PRINT"CUBE OF SIDE 3. ANY OF THE 27 LOCATIONS CAN BE DESIGNATED"
|
||||
160 PRINT"BY INPUTING THREE NUMBERS SUCH AS 2,3,1. AT THE START,"
|
||||
170 PRINT"YOU ARE AUTOMATICALLY AT LOCATION 1,1,1. THE OBJECT OF"
|
||||
180 PRINT"THE GAME IS TO GET TO LOCATION 3,3,3. ONE MINOR DETAIL:"
|
||||
190 PRINT"THE COMPUTER WILL PICK, AT RANDOM, 5 LOCATIONS AT WHICH"
|
||||
200 PRINT"IT WILL PLANT LAND MINES. IF YOU HIT ONE OF THESE LOCATIONS"
|
||||
210 PRINT"YOU LOSE. ONE OTHER DETAIL: YOU MAY MOVE ONLY ONE SPACE "
|
||||
220 PRINT"IN ONE DIRECTION EACH MOVE. FOR EXAMPLE: FROM 1,1,2 YOU"
|
||||
230 PRINT"MAY MOVE TO 2,1,2 OR 1,1,3. YOU MAY NOT CHANGE"
|
||||
240 PRINT"TWO OF THE NUMBERS ON THE SAME MOVE. IF YOU MAKE AN ILLEGAL"
|
||||
250 PRINT"MOVE, YOU LOSE AND THE COMPUTER TAKES THE MONEY YOU MAY"
|
||||
260 PRINT"HAVE BET ON THAT ROUND."
|
||||
270 PRINT
|
||||
280 PRINT
|
||||
290 PRINT"ALL YES OR NO QUESTIONS WILL BE ANSWERED BY A 1 FOR YES"
|
||||
300 PRINT"OR A 0 (ZERO) FOR NO."
|
||||
310 PRINT
|
||||
320 PRINT"WHEN STATING THE AMOUNT OF A WAGER, PRINT ONLY THE NUMBER"
|
||||
330 PRINT"OF DOLLARS (EXAMPLE: 250) YOU ARE AUTOMATICALLY STARTED WITH"
|
||||
340 PRINT"500 DOLLARS IN YOUR ACCOUNT."
|
||||
350 PRINT
|
||||
360 PRINT "GOOD LUCK!"
|
||||
370 LET A1=500
|
||||
380 LET A=INT(3*(RND(X)))
|
||||
390 IF A<>0 THEN 410
|
||||
400 LET A=3
|
||||
410 LET B=INT(3*(RND(X)))
|
||||
420 IF B<>0 THEN 440
|
||||
430 LET B=2
|
||||
440 LET C=INT(3*(RND(X)))
|
||||
450 IF C<>0 THEN 470
|
||||
460 LET C=3
|
||||
470 LET D=INT(3*(RND(X)))
|
||||
480 IF D<>0 THEN 500
|
||||
490 LET D=1
|
||||
500 LET E=INT(3*(RND(X)))
|
||||
510 IF E<>0 THEN 530
|
||||
520 LET E=3
|
||||
530 LET F=INT(3*(RND(X)))
|
||||
540 IF F<>0 THEN 560
|
||||
550 LET F=3
|
||||
560 LET G=INT(3*(RND(X)))
|
||||
570 IF G<>0 THEN 590
|
||||
580 LET G=3
|
||||
590 LET H=INT(3*(RND(X)))
|
||||
600 IF H<>0 THEN 620
|
||||
610 LET H=3
|
||||
620 LET I=INT(3*(RND(X)))
|
||||
630 IF I<>0 THEN 650
|
||||
640 LET I=2
|
||||
650 LET J=INT(3*(RND(X)))
|
||||
660 IF J<>0 THEN 680
|
||||
670 LET J=3
|
||||
680 LET K=INT(3*(RND(X)))
|
||||
690 IF K<>0 THEN 710
|
||||
700 LET K=2
|
||||
710 LET L=INT(3*(RND(X)))
|
||||
720 IF L<>0 THEN 740
|
||||
730 LET L=3
|
||||
740 LET M=INT(3*(RND(X)))
|
||||
750 IF M<>0 THEN 770
|
||||
760 LET M=3
|
||||
770 LET N=INT(3*(RND(X)))
|
||||
780 IF N<>0 THEN 800
|
||||
790 LET N=1
|
||||
800 LET O=INT (3*(RND(X)))
|
||||
810 IF O <>0 THEN 830
|
||||
820 LET O=3
|
||||
830 PRINT "WANT TO MAKE A WAGER?"
|
||||
840 INPUT Z
|
||||
850 IF Z=0 THEN 920
|
||||
860 PRINT "HOW MUCH ";
|
||||
870 INPUT Z1
|
||||
876 IF A1<Z1 THEN 1522
|
||||
880 LET W=1
|
||||
890 LET X=1
|
||||
900 LET Y=1
|
||||
910 PRINT
|
||||
920 PRINT "IT'S YOUR MOVE: ";
|
||||
930 INPUT P,Q,R
|
||||
940 IF P>W+1 THEN 1030
|
||||
950 IF P=W+1 THEN 1000
|
||||
960 IF Q>X+1 THEN 1030
|
||||
970 IF Q=(X+1) THEN 1010
|
||||
980 IF R >(Y+1) THEN 1030
|
||||
990 GOTO 1050
|
||||
1000 IF Q>= X+1 THEN 1030
|
||||
1010 IF R>=Y+1 THEN 1030
|
||||
1020 GOTO 1050
|
||||
1030 PRINT:PRINT "ILLEGAL MOVE. YOU LOSE."
|
||||
1040 GOTO 1440
|
||||
1050 LET W=P
|
||||
1060 LET X=Q
|
||||
1070 LET Y=R
|
||||
1080 IF P=3 THEN 1100
|
||||
1090 GOTO 1130
|
||||
1100 IF Q=3 THEN 1120
|
||||
1110 GOTO 1130
|
||||
1120 IF R=3 THEN 1530
|
||||
1130 IF P=A THEN 1150
|
||||
1140 GOTO 1180
|
||||
1150 IF Q=B THEN 1170
|
||||
1160 GOTO 1180
|
||||
1170 IF R=C THEN 1400
|
||||
1180 IF P=D THEN 1200
|
||||
1190 GOTO 1230
|
||||
1200 IF Q=E THEN 1220
|
||||
1210 GOTO 1230
|
||||
1220 IF R=F THEN 1400
|
||||
1230 IF P=G THEN 1250
|
||||
1240 GOTO 1280
|
||||
1250 IF Q=H THEN 1270
|
||||
1260 GOTO 1280
|
||||
1270 IF R=I THEN 1400
|
||||
1280 IF P=J THEN 1300
|
||||
1290 GOTO 1330
|
||||
1300 IF Q=K THEN 1320
|
||||
1310 GOTO 1330
|
||||
1320 IF R=L THEN 1440
|
||||
1330 IF P=M THEN 1350
|
||||
1340 GOTO 1380
|
||||
1350 IF Q=N THEN 1370
|
||||
1360 GOTO 1380
|
||||
1370 IF R=O THEN 1400
|
||||
1380 PRINT "NEXT MOVE: ";
|
||||
1390 GOTO 930
|
||||
1400 PRINT"******BANG******"
|
||||
1410 PRINT "YOU LOSE!"
|
||||
1420 PRINT
|
||||
1430 PRINT
|
||||
1440 IF Z=0 THEN 1580
|
||||
1450 PRINT
|
||||
1460 LET Z2=A1-Z1
|
||||
1470 IF Z2>0 THEN 1500
|
||||
1480 PRINT "YOU BUST."
|
||||
1490 GOTO 1610
|
||||
1500 PRINT " YOU NOW HAVE"; Z2; "DOLLARS."
|
||||
1510 LET A1=Z2
|
||||
1520 GOTO 1580
|
||||
1522 PRINT"TRIED TO FOOL ME; BET AGAIN";
|
||||
1525 GOTO 870
|
||||
1530 PRINT"CONGRATULATIONS!"
|
||||
1540 IF Z=0 THEN 1580
|
||||
1550 LET Z2=A1+Z1
|
||||
1560 PRINT "YOU NOW HAVE"; Z2;"DOLLARS."
|
||||
1570 LET A1=Z2
|
||||
1580 PRINT"DO YOU WANT TO TRY AGAIN ";
|
||||
1590 INPUT S
|
||||
1600 IF S=1 THEN 380
|
||||
1610 PRINT "TOUGH LUCK!"
|
||||
1620 PRINT
|
||||
1630 PRINT "GOODBYE."
|
||||
1640 END
|
||||
7
31 Depth Charge/README.md
Normal file
7
31 Depth Charge/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Depth Charge
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=55
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
33
31 Depth Charge/depthcharge.bas
Normal file
33
31 Depth Charge/depthcharge.bas
Normal file
@@ -0,0 +1,33 @@
|
||||
2 PRINT TAB(30);"DEPTH CHARGE"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT: PRINT: PRINT
|
||||
20 INPUT "DIMENSION OF SEARCH AREA";G: PRINT
|
||||
30 N=INT(LOG(G)/LOG(2))+1
|
||||
40 PRINT "YOU ARE THE CAPTAIN OF THE DESTROYER USS COMPUTER"
|
||||
50 PRINT "AN ENEMY SUB HAS BEEN CAUSING YOU TROUBLE. YOUR"
|
||||
60 PRINT "MISSION IS TO DESTROY IT. YOU HAVE";N;"SHOTS."
|
||||
70 PRINT "SPECIFY DEPTH CHARGE EXPLOSION POINT WITH A"
|
||||
80 PRINT "TRIO OF NUMBERS -- THE FIRST TWO ARE THE"
|
||||
90 PRINT "SURFACE COORDINATES; THE THIRD IS THE DEPTH."
|
||||
100 PRINT : PRINT "GOOD LUCK !": PRINT
|
||||
110 A=INT(G*RND(1)) : B=INT(G*RND(1)) : C=INT(G*RND(1))
|
||||
120 FOR D=1 TO N : PRINT : PRINT "TRIAL #";D; : INPUT X,Y,Z
|
||||
130 IF ABS(X-A)+ABS(Y-B)+ABS(Z-C)=0 THEN 300
|
||||
140 GOSUB 500 : PRINT : NEXT D
|
||||
200 PRINT : PRINT "YOU HAVE BEEN TORPEDOED! ABANDON SHIP!"
|
||||
210 PRINT "THE SUBMARINE WAS AT";A;",";B;",";C : GOTO 400
|
||||
300 PRINT : PRINT "B O O M ! ! YOU FOUND IT IN";D;"TRIES!"
|
||||
400 PRINT : PRINT: INPUT "ANOTHER GAME (Y OR N)";A$
|
||||
410 IF A$="Y" THEN 100
|
||||
420 PRINT "OK. HOPE YOU ENJOYED YOURSELF." : GOTO 600
|
||||
500 PRINT "SONAR REPORTS SHOT WAS ";
|
||||
510 IF Y>B THEN PRINT "NORTH";
|
||||
520 IF Y<B THEN PRINT "SOUTH";
|
||||
530 IF X>A THEN PRINT "EAST";
|
||||
540 IF X<A THEN PRINT "WEST";
|
||||
550 IF Y<>B OR X<>A THEN PRINT " AND";
|
||||
560 IF Z>C THEN PRINT " TOO LOW."
|
||||
570 IF Z<C THEN PRINT " TOO HIGH."
|
||||
580 IF Z=C THEN PRINT " DEPTH OK."
|
||||
590 RETURN
|
||||
600 END
|
||||
7
32 Diamond/README.md
Normal file
7
32 Diamond/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Diamond
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=55
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
27
32 Diamond/diamond.bas
Normal file
27
32 Diamond/diamond.bas
Normal file
@@ -0,0 +1,27 @@
|
||||
1 PRINT TAB(33);"DIAMOND"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
4 PRINT "FOR A PRETTY DIAMOND PATTERN,"
|
||||
5 INPUT "TYPE IN AN ODD NUMBER BETWEEN 5 AND 21";R:PRINT
|
||||
6 Q=INT(60/R):A$="CC"
|
||||
8 FOR L=1 TO Q
|
||||
10 X=1:Y=R:Z=2
|
||||
20 FOR N=X TO Y STEP Z
|
||||
25 PRINT TAB((R-N)/2);
|
||||
28 FOR M=1 TO Q
|
||||
29 C=1
|
||||
30 FOR A=1 TO N
|
||||
32 IF C>LEN(A$) THEN PRINT "!";:GOTO 50
|
||||
34 PRINT MID$(A$,C,1);
|
||||
36 C=C+1
|
||||
50 NEXT A
|
||||
53 IF M=Q THEN 60
|
||||
55 PRINT TAB(R*M+(R-N)/2);
|
||||
56 NEXT M
|
||||
60 PRINT
|
||||
70 NEXT N
|
||||
83 IF X<>1 THEN 95
|
||||
85 X=R-2:Y=1:Z=-2
|
||||
90 GOTO 20
|
||||
95 NEXT L
|
||||
99 END
|
||||
7
33 Dice/README.md
Normal file
7
33 Dice/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Dice
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=57
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
31
33 Dice/dice.bas
Normal file
31
33 Dice/dice.bas
Normal file
@@ -0,0 +1,31 @@
|
||||
2 PRINT TAB(34);"DICE"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT:PRINT:PRINT
|
||||
10 DIM F(12)
|
||||
20 REM DANNY FREIDUS
|
||||
30 PRINT "THIS PROGRAM SIMULATES THE ROLLING OF A"
|
||||
40 PRINT "PAIR OF DICE."
|
||||
50 PRINT "YOU ENTER THE NUMBER OF TIMES YOU WANT THE COMPUTER TO"
|
||||
60 PRINT "'ROLL' THE DICE. WATCH OUT, VERY LARGE NUMBERS TAKE"
|
||||
70 PRINT "A LONG TIME. IN PARTICULAR, NUMBERS OVER 5000."
|
||||
80 FOR Q=1 TO 12
|
||||
90 F(Q)=0
|
||||
100 NEXT Q
|
||||
110 PRINT:PRINT "HOW MANY ROLLS";
|
||||
120 INPUT X
|
||||
130 FOR S=1 TO X
|
||||
140 A=INT(6*RND(1)+1)
|
||||
150 B=INT(6*RND(1)+1)
|
||||
160 R=A+B
|
||||
170 F(R)=F(R)+1
|
||||
180 NEXT S
|
||||
185 PRINT
|
||||
190 PRINT "TOTAL SPOTS","NUMBER OF TIMES"
|
||||
200 FOR V=2 TO 12
|
||||
210 PRINT V,F(V)
|
||||
220 NEXT V
|
||||
221 PRINT
|
||||
222 PRINT:PRINT "TRY AGAIN";
|
||||
223 INPUT Z$
|
||||
224 IF Z$="YES" THEN 80
|
||||
240 END
|
||||
7
34 Digits/README.md
Normal file
7
34 Digits/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Digits
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=58
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
78
34 Digits/digits.bas
Normal file
78
34 Digits/digits.bas
Normal file
@@ -0,0 +1,78 @@
|
||||
10 PRINT TAB(33);"DIGITS"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
210 PRINT "THIS IS A GAME OF GUESSING."
|
||||
220 PRINT "FOR INSTRUCTIONS, TYPE '1', ELSE TYPE '0'";
|
||||
230 INPUT E
|
||||
240 IF E=0 THEN 360
|
||||
250 PRINT
|
||||
260 PRINT "PLEASE TAKE A PIECE OF PAPER AND WRITE DOWN"
|
||||
270 PRINT "THE DIGITS '0', '1', OR '2' THIRTY TIMES AT RANDOM."
|
||||
280 PRINT "ARRANGE THEM IN THREE LINES OF TEN DIGITS EACH."
|
||||
290 PRINT "I WILL ASK FOR THEN TEN AT A TIME."
|
||||
300 PRINT "I WILL ALWAYS GUESS THEM FIRST AND THEN LOOK AT YOUR"
|
||||
310 PRINT "NEXT NUMBER TO SEE IF I WAS RIGHT. BY PURE LUCK,"
|
||||
320 PRINT "I OUGHT TO BE RIGHT TEN TIMES. BUT I HOPE TO DO BETTER"
|
||||
330 PRINT "THAN THAT *****"
|
||||
340 PRINT:PRINT
|
||||
360 READ A,B,C
|
||||
370 DATA 0,1,3
|
||||
380 DIM M(26,2),K(2,2),L(8,2)
|
||||
400 FOR I=0 TO 26: FOR J=0 TO 2: M(I,J)=1: NEXT J: NEXT I
|
||||
410 FOR I=0 TO 2: FOR J=0 TO 2: K(I,J)=9: NEXT J: NEXT I
|
||||
420 FOR I=0 TO 8: FOR J=0 TO 2: L(I,J)=3: NEXT J: NEXT I
|
||||
450 L(0,0)=2: L(4,1)=2: L(8,2)=2
|
||||
480 Z=26: Z1=8: Z2=2
|
||||
510 X=0
|
||||
520 FOR T=1 TO 3
|
||||
530 PRINT
|
||||
540 PRINT "TEN NUMBERS, PLEASE";
|
||||
550 INPUT N(1),N(2),N(3),N(4),N(5),N(6),N(7),N(8),N(9),N(10)
|
||||
560 FOR I=1 TO 10
|
||||
570 W=N(I)-1
|
||||
580 IF W=SGN(W) THEN 620
|
||||
590 PRINT "ONLY USE THE DIGITS '0', '1', OR '2'."
|
||||
600 PRINT "LET'S TRY AGAIN.":GOTO 530
|
||||
620 NEXT I
|
||||
630 PRINT: PRINT "MY GUESS","YOUR NO.","RESULT","NO. RIGHT":PRINT
|
||||
660 FOR U=1 TO 10
|
||||
670 N=N(U): S=0
|
||||
690 FOR J=0 TO 2
|
||||
700 S1=A*K(Z2,J)+B*L(Z1,J)+C*M(Z,J)
|
||||
710 IF S>S1 THEN 760
|
||||
720 IF S<S1 THEN 740
|
||||
730 IF RND(1)<.5 THEN 760
|
||||
740 S=S1: G=J
|
||||
760 NEXT J
|
||||
770 PRINT " ";G," ";N(U),
|
||||
780 IF G=N(U) THEN 810
|
||||
790 PRINT " WRONG",X
|
||||
800 GOTO 880
|
||||
810 X=X+1
|
||||
820 PRINT " RIGHT",X
|
||||
830 M(Z,N)=M(Z,N)+1
|
||||
840 L(Z1,N)=L(Z1,N)+1
|
||||
850 K(Z2,N)=K(Z2,N)+1
|
||||
860 Z=Z-INT(Z/9)*9
|
||||
870 Z=3*Z+N(U)
|
||||
880 Z1=Z-INT(Z/9)*9
|
||||
890 Z2=N(U)
|
||||
900 NEXT U
|
||||
910 NEXT T
|
||||
920 PRINT
|
||||
930 IF X>10 THEN 980
|
||||
940 IF X<10 THEN 1010
|
||||
950 PRINT "I GUESSED EXACTLY 1/3 OF YOUR NUMBERS."
|
||||
960 PRINT "IT'S A TIE GAME."
|
||||
970 GOTO 1030
|
||||
980 PRINT "I GUESSED MORE THAN 1/3 OF YOUR NUMBERS."
|
||||
990 PRINT "I WIN.": FOR Q=1 TO 10: PRINT CHR$(7);: NEXT Q
|
||||
1000 GOTO 1030
|
||||
1010 PRINT "I GUESSED LESS THAN 1/3 OF YOUR NUMBERS."
|
||||
1020 PRINT "YOU BEAT ME. CONGRATULATIONS *****"
|
||||
1030 PRINT
|
||||
1040 PRINT "DO YOU WANT TO TRY AGAIN (1 FOR YES, 0 FOR NO)";
|
||||
1060 INPUT X
|
||||
1070 IF X=1 THEN 400
|
||||
1080 PRINT:PRINT "THANKS FOR THE GAME."
|
||||
1090 END
|
||||
7
35 Even Wins/README.md
Normal file
7
35 Even Wins/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Even Wins
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=60
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
128
35 Even Wins/evenwins.bas
Normal file
128
35 Even Wins/evenwins.bas
Normal file
@@ -0,0 +1,128 @@
|
||||
1 PRINT TAB(31);"EVEN WINS"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT
|
||||
4 Y1=0
|
||||
10 M1=0
|
||||
20 DIM M(20),Y(20)
|
||||
30 PRINT " THIS IS A TWO PERSON GAME CALLED 'EVEN WINS.'"
|
||||
40 PRINT "TO PLAY THE GAME, THE PLAYERS NEED 27 MARBLES OR"
|
||||
50 PRINT "OTHER OBJECTS ON A TABLE."
|
||||
60 PRINT
|
||||
70 PRINT
|
||||
80 PRINT " THE 2 PLAYERS ALTERNATE TURNS, WITH EACH PLAYER"
|
||||
90 PRINT "REMOVING FROM 1 TO 4 MARBLES ON EACH MOVE. THE GAME"
|
||||
100 PRINT "ENDS WHEN THERE ARE NO MARBLES LEFT, AND THE WINNER"
|
||||
110 PRINT "IS THE ONE WITH AN EVEN NUMBER OF MARBLES."
|
||||
120 PRINT
|
||||
130 PRINT
|
||||
140 PRINT " THE ONLY RULES ARE THAT (1) YOU MUST ALTERNATE TURNS,"
|
||||
150 PRINT "(2) YOU MUST TAKE BETWEEN 1 AND 4 MARBLES EACH TURN,"
|
||||
160 PRINT "AND (3) YOU CANNOT SKIP A TURN."
|
||||
170 PRINT
|
||||
180 PRINT
|
||||
190 PRINT
|
||||
200 PRINT " TYPE A '1' IF YOU WANT TO GO FIRST, AND TYPE"
|
||||
210 PRINT "A '0' IF YOU WANT ME TO GO FIRST."
|
||||
220 INPUT C
|
||||
225 PRINT
|
||||
230 IF C=0 THEN 250
|
||||
240 GOTO 1060
|
||||
250 T=27
|
||||
260 M=2
|
||||
270 PRINT:PRINT "TOTAL=";T:PRINT
|
||||
280 M1=M1+M
|
||||
290 T=T-M
|
||||
300 PRINT "I PICK UP";M;"MARBLES."
|
||||
310 IF T=0 THEN 880
|
||||
320 PRINT:PRINT "TOTAL=";T
|
||||
330 PRINT
|
||||
340 PRINT " AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS";M1
|
||||
350 INPUT Y
|
||||
360 PRINT
|
||||
370 IF Y<1 THEN 1160
|
||||
380 IF Y>4 THEN 1160
|
||||
390 IF Y<=T THEN 430
|
||||
400 PRINT " YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE"
|
||||
410 PRINT "LEFT. TRY AGAIN."
|
||||
420 GOTO 350
|
||||
430 Y1=Y1+Y
|
||||
440 T=T-Y
|
||||
450 IF T=0 THEN 880
|
||||
460 PRINT "TOTAL=";T
|
||||
470 PRINT
|
||||
480 PRINT "YOUR TOTAL IS";Y1
|
||||
490 IF T<.5 THEN 880
|
||||
500 R=T-6*INT(T/6)
|
||||
510 IF INT(Y1/2)=Y1/2 THEN 700
|
||||
520 IF T<4.2 THEN 580
|
||||
530 IF R>3.4 THEN 620
|
||||
540 M=R+1
|
||||
550 M1=M1+M
|
||||
560 T=T-M
|
||||
570 GOTO 300
|
||||
580 M=T
|
||||
590 T=T-M
|
||||
600 GOTO 830
|
||||
610 REM 250 IS WHERE I WIN.
|
||||
620 IF R<4.7 THEN 660
|
||||
630 IF R>3.5 THEN 660
|
||||
640 M=1
|
||||
650 GOTO 670
|
||||
660 M=4
|
||||
670 T=T-M
|
||||
680 M1=M1+M
|
||||
690 GOTO 300
|
||||
700 REM I AM READY TO ENCODE THE STRAT FOR WHEN OPP TOT IS EVEN
|
||||
710 IF R<1.5 THEN 1020
|
||||
720 IF R>5.3 THEN 1020
|
||||
730 M=R-1
|
||||
740 M1=M1+M
|
||||
750 T=T-M
|
||||
760 IF T<.2 THEN 790
|
||||
770 REM IS # ZERO HERE
|
||||
780 GOTO 300
|
||||
790 REM IS = ZERO HERE
|
||||
800 PRINT "I PICK UP";M;"MARBLES."
|
||||
810 PRINT
|
||||
820 GOTO 880
|
||||
830 REM THIS IS WHERE I WIN
|
||||
840 PRINT "I PICK UP";M;"MARBLES."
|
||||
850 PRINT
|
||||
860 PRINT "TOTAL = 0"
|
||||
870 M1=M1+M
|
||||
880 PRINT "THAT IS ALL OF THE MARBLES."
|
||||
890 PRINT
|
||||
900 PRINT " MY TOTAL IS";M1;", YOUR TOTAL IS";Y1
|
||||
910 PRINT
|
||||
920 IF INT(M1/2)=M1/2 THEN 950
|
||||
930 PRINT " YOU WON. DO YOU WANT TO PLAY"
|
||||
940 GOTO 960
|
||||
950 PRINT " I WON. DO YOU WANT TO PLAY"
|
||||
960 PRINT "AGAIN? TYPE 1 FOR YES AND 0 FOR NO."
|
||||
970 INPUT A1
|
||||
980 IF A1=0 THEN 1030
|
||||
990 M1=0
|
||||
1000 Y1=0
|
||||
1010 GOTO 200
|
||||
1020 GOTO 640
|
||||
1030 PRINT
|
||||
1040 PRINT "OK. SEE YOU LATER."
|
||||
1050 GOTO 1230
|
||||
1060 T=27
|
||||
1070 PRINT
|
||||
1080 PRINT
|
||||
1090 PRINT
|
||||
1100 PRINT "TOTAL=";T
|
||||
1110 PRINT
|
||||
1120 PRINT
|
||||
1130 PRINT "WHAT IS YOUR FIRST MOVE";
|
||||
1140 INPUT Y
|
||||
1150 GOTO 360
|
||||
1160 PRINT
|
||||
1170 PRINT "THE NUMBER OF MARBLES YOU TAKE MUST BE A POSITIVE"
|
||||
1180 PRINT "INTEGER BETWEEN 1 AND 4."
|
||||
1190 PRINT
|
||||
1200 PRINT " WHAT IS YOUR NEXT MOVE?"
|
||||
1210 PRINT
|
||||
1220 GOTO 350
|
||||
1230 END
|
||||
70
35 Even Wins/gameofevenwins.bas
Normal file
70
35 Even Wins/gameofevenwins.bas
Normal file
@@ -0,0 +1,70 @@
|
||||
1 PRINT TAB(28);"GAME OF EVEN WINS"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT
|
||||
4 INPUT "DO YOU WANT INSTRUCTIONS (YES OR NO)";A$:PRINT
|
||||
5 IF A$="NO" THEN 20
|
||||
6 PRINT "THE GAME IS PLAYED AS FOLLOWS:":PRINT
|
||||
7 PRINT "AT THE BEGINNING OF THE GAME, A RANDOM NUMBER OF CHIPS ARE"
|
||||
8 PRINT "PLACED ON THE BOARD. THE NUMBER OF CHIPS ALWAYS STARTS"
|
||||
9 PRINT "AS AN ODD NUMBER. ON EACH TURN, A PLAYER MUST TAKE ONE,"
|
||||
10 PRINT "TWO, THREE, OR FOUR CHIPS. THE WINNER IS THE PLAYER WHO"
|
||||
11 PRINT "FINISHES WITH A TOTAL NUMBER OF CHIPS THAT IS EVEN."
|
||||
12 PRINT "THE COMPUTER STARTS OUT KNOWING ONLY THE RULES OF THE"
|
||||
13 PRINT "GAME. IT GRADUALLY LEARNS TO PLAY WELL. IT SHOULD BE"
|
||||
14 PRINT "DIFFICULT TO BEAT THE COMPUTER AFTER TWENTY GAMES IN A ROW."
|
||||
15 PRINT "TRY IT!!!!": PRINT
|
||||
16 PRINT "TO QUIT AT ANY TIME, TYPE A '0' AS YOUR MOVE.": PRINT
|
||||
20 DIM R(1,5)
|
||||
25 L=0: B=0
|
||||
30 FOR I=0 TO 5
|
||||
40 R(1,I)=4
|
||||
50 R(0,I)=4
|
||||
60 NEXT I
|
||||
70 A=0: B=0
|
||||
90 P=INT((13*RND(1)+9)/2)*2+1
|
||||
100 IF P=1 THEN 530
|
||||
110 PRINT "THERE ARE";P;"CHIPS ON THE BOARD."
|
||||
120 E1=E
|
||||
130 L1=L
|
||||
140 E=(A/2-INT(A/2))*2
|
||||
150 L=INT((P/6-INT(P/6))*6+.5)
|
||||
160 IF R(E,L)>=P THEN 320
|
||||
170 M=R(E,L)
|
||||
180 IF M<=0 THEN 370
|
||||
190 P=P-M
|
||||
200 IF M=1 THEN 510
|
||||
210 PRINT "COMPUTER TAKES";M;"CHIPS LEAVING";P;"... YOUR MOVE";
|
||||
220 B=B+M
|
||||
230 INPUT M
|
||||
240 M=INT(M)
|
||||
250 IF M<1 THEN 450
|
||||
260 IF M>4 THEN 460
|
||||
270 IF M>P THEN 460
|
||||
280 IF M=P THEN 360
|
||||
290 P=P-M
|
||||
300 A=A+M
|
||||
310 GOTO 100
|
||||
320 IF P=1 THEN 550
|
||||
330 PRINT "COMPUTER TAKES";P;"CHIPS."
|
||||
340 R(E,L)=P
|
||||
350 B=B+P
|
||||
360 IF B/2=INT(B/2) THEN 420
|
||||
370 PRINT "GAME OVER ... YOU WIN!!!": PRINT
|
||||
390 IF R(E,L)=1 THEN 480
|
||||
400 R(E,L)=R(E,L)-1
|
||||
410 GOTO 70
|
||||
420 PRINT "GAME OVER ... I WIN!!!": PRINT
|
||||
430 GOTO 70
|
||||
450 IF M=0 THEN 570
|
||||
460 PRINT M;"IS AN ILLEGAL MOVE ... YOUR MOVE";
|
||||
470 GOTO 230
|
||||
480 IF R(E1,L1)=1 THEN 70
|
||||
490 R(E1,L1)=R(E1,L1)-1
|
||||
500 GOTO 70
|
||||
510 PRINT "COMPUTER TAKES 1 CHIP LEAVING";P;"... YOUR MOVE";
|
||||
520 GOTO 220
|
||||
530 PRINT "THERE IS 1 CHIP ON THE BOARD."
|
||||
540 GOTO 120
|
||||
550 PRINT "COMPUTER TAKES 1 CHIP."
|
||||
560 GOTO 340
|
||||
570 END
|
||||
7
36 Flip Flop/README.md
Normal file
7
36 Flip Flop/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Flip Flop
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=63
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
79
36 Flip Flop/flipflop.bas
Normal file
79
36 Flip Flop/flipflop.bas
Normal file
@@ -0,0 +1,79 @@
|
||||
2 PRINT TAB(32);"FLIPFLOP"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT
|
||||
10 REM *** CREATED BY MICHAEL CASS
|
||||
15 DIM A$(20)
|
||||
20 PRINT "THE OBJECT OF THIS PUZZLE IS TO CHANGE THIS:"
|
||||
30 PRINT
|
||||
40 PRINT "X X X X X X X X X X"
|
||||
50 PRINT
|
||||
60 PRINT "TO THIS:"
|
||||
70 PRINT
|
||||
80 PRINT "O O O O O O O O O O"
|
||||
90 PRINT
|
||||
100 PRINT "BY TYPING THE NUMBER CORRESPONDING TO THE POSITION OF THE"
|
||||
110 PRINT "LETTER ON SOME NUMBERS, ONE POSITION WILL CHANGE, ON"
|
||||
120 PRINT "OTHERS, TWO WILL CHANGE. TO RESET LINE TO ALL X'S, TYPE 0"
|
||||
130 PRINT "(ZERO) AND TO START OVER IN THE MIDDLE OF A GAME, TYPE "
|
||||
140 PRINT "11 (ELEVEN)."
|
||||
170 PRINT
|
||||
180 REM
|
||||
190 Q=RND(1)
|
||||
200 PRINT "HERE IS THE STARTING LINE OF X'S."
|
||||
210 PRINT
|
||||
220 C=0
|
||||
230 PRINT "1 2 3 4 5 6 7 8 9 10"
|
||||
240 PRINT "X X X X X X X X X X"
|
||||
250 PRINT
|
||||
260 REM
|
||||
270 FOR X=1 TO 10
|
||||
280 A$(X)="X"
|
||||
290 NEXT X
|
||||
300 GOTO 320
|
||||
310 PRINT "ILLEGAL ENTRY--TRY AGAIN."
|
||||
320 PRINT "INPUT THE NUMBER";
|
||||
330 INPUT N
|
||||
340 IF N<>INT(N) THEN 310
|
||||
350 IF N=11 THEN 180
|
||||
360 IF N>11 THEN 310
|
||||
370 IF N=0 THEN 230
|
||||
380 IF M=N THEN 510
|
||||
390 M=N
|
||||
400 IF A$(N)="O" THEN 480
|
||||
410 A$(N)="O"
|
||||
420 R=TAN(Q+N/Q-N)-SIN(Q/N)+336*SIN(8*N)
|
||||
430 N=R-INT(R)
|
||||
440 N=INT(10*N)
|
||||
450 IF A$(N)="O" THEN 480
|
||||
460 A$(N)="O"
|
||||
470 GOTO 610
|
||||
480 A$(N)="X"
|
||||
490 IF M=N THEN 420
|
||||
500 GOTO 610
|
||||
510 IF A$(N)="O" THEN 590
|
||||
520 A$(N)="O"
|
||||
530 R=.592*(1/TAN(Q/N+Q))/SIN(N*2+Q)-COS(N)
|
||||
540 N=R-INT(R)
|
||||
550 N=INT(10*N)
|
||||
560 IF A$(N)="O" THEN 590
|
||||
570 A$(N)="O"
|
||||
580 GOTO 610
|
||||
590 A$(N)="X"
|
||||
600 IF M=N THEN 530
|
||||
610 PRINT "1 2 3 4 5 6 7 8 9 10"
|
||||
620 FOR Z=1 TO 10: PRINT A$(Z);" ";: NEXT Z
|
||||
630 C=C+1
|
||||
640 PRINT
|
||||
650 FOR Z=1 TO 10
|
||||
660 IF A$(Z)<>"O" THEN 320
|
||||
670 NEXT Z
|
||||
680 IF C>12 THEN 710
|
||||
690 PRINT "VERY GOOD. YOU GUESSED IT IN ONLY";C;"GUESSES."
|
||||
700 GOTO 720
|
||||
710 PRINT "TRY HARDER NEXT TIME. IT TOOK YOU";C;"GUESSES."
|
||||
720 PRINT "DO YOU WANT TO TRY ANOTHER PUZZLE";
|
||||
730 INPUT X$
|
||||
740 IF LEFT$(X$,1)="N" THEN 780
|
||||
760 PRINT
|
||||
770 GOTO 180
|
||||
780 END
|
||||
7
37 Football/README.md
Normal file
7
37 Football/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Football
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=64
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
181
37 Football/football.bas
Normal file
181
37 Football/football.bas
Normal file
@@ -0,0 +1,181 @@
|
||||
1 PRINT TAB(32);"FOOTBALL"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
100 REM
|
||||
120 DIM A(20),B(20),C(40),H(2),T(2),W(2),X(2),Y(2),Z(2)
|
||||
130 DIM M$(2),D(2),P$(20)
|
||||
140 PRINT "PRESENTING N.F.U. FOOTBALL (NO FORTRAN USED)"
|
||||
145 PRINT:PRINT
|
||||
150 INPUT "DO YOU WANT INSTRUCTIONS";A$
|
||||
160 IF A$="NO" THEN 290
|
||||
165 IF A$<>"YES" THEN 150
|
||||
170 PRINT "THIS IS A FOOTBALL GAME FOR TWO TEAMS IN WHICH PLAYERS MUST"
|
||||
180 PRINT "PREPARE A TAPE WITH A DATA STATEMENT (1770 FOR TEAM 1,"
|
||||
190 PRINT "1780 FOR TEAM 2) IN WHICH EACH TEAM SCRAMBLES NOS. 1-20"
|
||||
195 PRINT "THESE NUMBERS ARE THEN ASSIGNED TO TWENTY GIVEN PLAYS."
|
||||
200 PRINT"A LIST OF NOS. AND THEIR PLAYS IS PROVIDED WITH"
|
||||
210 PRINT "BOTH TEAMS HAVING THE SAME PLAYS. THE MORE SIMILAR THE"
|
||||
220 PRINT "PLAYS THE LESS YARDAGE GAINED. SCORES ARE GIVEN"
|
||||
223 PRINT "WHENEVER SCORES ARE MADE. SCORES MAY ALSO BE OBTAINED"
|
||||
225 PRINT "BY INPUTTING 99,99 FOR PLAY NOS. TO PUNT OR ATTEMPT A"
|
||||
227 PRINT "FIELD GOAL, INPUT 77,77 FOR PLAY NUMBERS. QUESTIONS WILL BE"
|
||||
230 PRINT "ASKED THEN. ON 4TH DOWN, YOU WILL ALSO BE ASKED WHETHER"
|
||||
240 PRINT "YOU WANT TO PUNT OR ATTEMPT A FIELD GOAL. IF THE ANSWER TO"
|
||||
250 PRINT "BOTH QUESTIONS IS NO IT WILL BE ASSUMED YOU WANT TO"
|
||||
260 PRINT "TRY AND GAIN YARDAGE. ANSWER ALL QUESTIONS YES OR NO."
|
||||
270 PRINT "THE GAME IS PLAYED UNTIL PLAYERS TERMINATE (CONTROL-C)."
|
||||
280 PRINT "PLEASE PREPARE A TAPE AND RUN.": STOP
|
||||
290 PRINT:PRINT "PLEASE INPUT SCORE LIMIT ON GAME";:INPUT E
|
||||
300 FOR I=1 TO 40: READ N: IF I>20 THEN 350
|
||||
330 A(N)=I: GOTO 360
|
||||
350 B(N)=I-20
|
||||
360 C(I)=N: NEXT I
|
||||
370 FOR I=1 TO 20: READ P$(I): NEXT I
|
||||
380 L=0: T=1
|
||||
410 PRINT "TEAM";T;"PLAY CHART"
|
||||
420 PRINT "NO. PLAY"
|
||||
430 FOR I=1 TO 20
|
||||
440 REM
|
||||
450 PRINT C(I+L);TAB(6);P$(I)
|
||||
460 NEXT I
|
||||
630 L=L+20:T=2
|
||||
640 PRINT
|
||||
650 PRINT "TEAR OFF HERE----------------------------------------------"
|
||||
660 FOR X=1 TO 11: PRINT: NEXT X
|
||||
670 FOR Z=1 TO 3000: NEXT Z
|
||||
680 IF L=20 THEN 410
|
||||
690 D(1)=0: D(2)=3: M$(1)="--->": M$(2)="<---"
|
||||
700 H(1)=0: H(2)=0: T(1)=2: T(2)=1
|
||||
710 W(1)=-1: W(2)=1: X(1)=100: X(2)=0
|
||||
720 Y(1)=1: Y(2)=-1: Z(1)=0: Z(2)=100
|
||||
725 GOSUB 1910
|
||||
730 PRINT "TEAM 1 DEFENDS 0 YD GOAL -- TEAM 2 DEFENDS 100 YD GOAL."
|
||||
740 T=INT(2*RND(1)+1)
|
||||
760 PRINT: PRINT "THE COIN IS FLIPPED"
|
||||
765 P=X(T)-Y(T)*40
|
||||
770 GOSUB 1860: PRINT : PRINT "TEAM";T;"RECEIVES KICK-OFF"
|
||||
780 K=INT(26*RND(1)+40)
|
||||
790 P=P-Y(T)*K
|
||||
794 IF W(T)*P<Z(T)+10 THEN 810
|
||||
795 PRINT: PRINT "BALL WENT OUT OF ENDZONE --AUTOMATIC TOUCHBACK--"
|
||||
796 GOTO 870
|
||||
810 PRINT "BALL WENT";K;"YARDS. NOW ON";P:GOSUB 1900
|
||||
830 PRINT "TEAM";T;"DO YOU WANT TO RUNBACK";:INPUT A$
|
||||
840 IF A$="YES" THEN 1430
|
||||
845 IF A$<>"NO" THEN 830
|
||||
850 IF W(T)*P<Z(T) THEN 880
|
||||
870 P=Z(T)-W(T)*20
|
||||
880 D=1: S=P
|
||||
885 FOR I=1 TO 72: PRINT "=";: NEXT I
|
||||
890 PRINT: PRINT "TEAM";T;"DOWN";D;"ON";P
|
||||
893 IF D<>1 THEN 900
|
||||
895 IF Y(T)*(P+Y(T)*10)>=X(T) THEN 898
|
||||
897 C=4: GOTO 900
|
||||
898 C=8
|
||||
900 IF C=8 THEN 904
|
||||
901 PRINT TAB(27);10-(Y(T)*P-Y(T)*S);"YARDS TO 1ST DOWN"
|
||||
902 GOTO 910
|
||||
904 PRINT TAB(27);X(T)-Y(T)*P;"YARDS"
|
||||
910 GOSUB 1900: IF D=4 THEN 1180
|
||||
920 REM
|
||||
930 U=INT(3*RND(0)-1): GOTO 940
|
||||
936 PRINT "ILLEGAL PLAY NUMBER, CHECK AND"
|
||||
940 PRINT "INPUT OFFENSIVE PLAY, DEFENSIVE PLAY";
|
||||
950 IF T=2 THEN 970
|
||||
960 INPUT P1,P2: GOTO 975
|
||||
970 INPUT P2,P1
|
||||
975 IF P1=77 THEN 1180
|
||||
980 IF P1>20 THEN 1800
|
||||
985 IF P1<1 THEN 1800
|
||||
990 IF P2>20 THEN 1800
|
||||
992 IF P2<1 THEN 1800
|
||||
995 P1=INT(P1): P2=INT(P2)
|
||||
1000 Y=INT(ABS(A(P1)-B(P2))/19*((X(T)-Y(T)*P+25)*RND(1)-15))
|
||||
1005 PRINT: IF T=2 THEN 1015
|
||||
1010 IF A(P1)<11 THEN 1048
|
||||
1012 GOTO 1020
|
||||
1015 IF B(P2)<11 THEN 1048
|
||||
1020 IF U<>0 THEN 1035
|
||||
1025 PRINT "PASS INCOMPLETE TEAM";T
|
||||
1030 Y=0: GOTO 1050
|
||||
1035 G=RND(1): IF G>.025 THEN 1040
|
||||
1037 IF Y>2 THEN 1045
|
||||
1040 PRINT "QUARTERBACK SCRAMBLED": GOTO 1050
|
||||
1045 PRINT "PASS COMPLETED": GOTO 1050
|
||||
1048 PRINT "THE BALL WAS RUN"
|
||||
1050 P=P-W(T)*Y
|
||||
1060 PRINT: PRINT "NET YARDS GAINED ON DOWN";D;"ARE ";Y
|
||||
1070 G=RND(1): IF G>.025 THEN 1110
|
||||
1080 PRINT: PRINT "** LOSS OF POSSESSION FROM TEAM";T;"TO TEAM";T(T)
|
||||
1100 GOSUB 1850: PRINT: T=T(T): GOTO 830
|
||||
1110 IF Y(T)*P>=X(T) THEN 1320
|
||||
1120 IF W(T)*P>=Z(T) THEN 1230
|
||||
1130 IF Y(T)*P-Y(T)*S>=10 THEN 880
|
||||
1140 D=D+1: IF D<>5 THEN 885
|
||||
1160 PRINT: PRINT "CONVERSION UNSUCCESSFUL TEAM";T:T=T(T)
|
||||
1170 GOSUB 1850: GOTO 880
|
||||
1180 PRINT "DOES TEAM";T;"WANT TO PUNT";: INPUT A$
|
||||
1185 IF A$="NO" THEN 1200
|
||||
1187 IF A$<>"YES" THEN 1180
|
||||
1190 PRINT:PRINT "TEAM";T;"WILL PUNT": G=RND(1): IF G<.025 THEN 1080
|
||||
1195 GOSUB 1850: K=INT(25*RND(1)+35): T=T(T): GOTO 790
|
||||
1200 PRINT "DOES TEAM";T;"WANT TO ATTEMPT A FIELD GOAL";: INPUT A$
|
||||
1210 IF A$="YES" THEN 1640
|
||||
1215 IF A$<>"NO" THEN 1200
|
||||
1217 GOTO 920
|
||||
1230 PRINT: PRINT "SAFETY AGAINST TEAM";T;"**********************OH-OH"
|
||||
1240 H(T(T))=H(T(T))+2: GOSUB 1810
|
||||
1280 PRINT"TEAM";T;"DO YOU WANT TO PUNT INSTEAD OF A KICKOFF";:INPUT A$
|
||||
1290 P=Z(T)-W(T)*20: IF A$="YES" THEN 1190
|
||||
1320 PRINT: PRINT "TOUCHDOWN BY TEAM";T;"*********************YEA TEAM"
|
||||
1340 Q=7: G=RND(1): IF G>.1 THEN 1380
|
||||
1360 Q=6: PRINT "EXTRA POINT NO GOOD": GOTO 1390
|
||||
1380 PRINT "EXTRA POINT GOOD"
|
||||
1390 H(T)=H(T)+Q: GOSUB 1810
|
||||
1420 T=T(T): GOTO 765
|
||||
1430 K=INT(9*RND(0)+1)
|
||||
1440 R=INT(((X(T)-Y(T)*P+25)*RND(1)-15)/K)
|
||||
1460 P=P-W(T)*R
|
||||
1480 PRINT:PRINT "RUNBACK TEAM";T;R;"YARDS"
|
||||
1485 G=RND(1): IF G<.025 THEN 1080
|
||||
1490 IF Y(T)*P>=X(T) THEN 1320
|
||||
1500 IF W(T)*P>=Z(T) THEN 1230
|
||||
1510 GOTO 880
|
||||
1640 PRINT: PRINT "TEAM";T;"WILL ATTEMPT A FIELD GOAL"
|
||||
1645 G=RND(1): IF G<.025 THEN 1080
|
||||
1650 F=INT(35*RND(1)+20)
|
||||
1660 PRINT: PRINT "KICK IS";F;"YARDS LONG"
|
||||
1680 P=P-W(T)*F: G=RND(1)
|
||||
1690 IF G<.35 THEN 1735
|
||||
1700 IF Y(T)*P<X(T) THEN 1740
|
||||
1710 PRINT "FIELD GOAL GOOD FOR TEAM";T;"*********************YEA"
|
||||
1720 Q=3: GOTO 1390
|
||||
1735 PRINT "BALL WENT WIDE"
|
||||
1740 PRINT "FIELD GOAL UNSUCCESFUL TEAM";T;"-----------------TOO BAD"
|
||||
1742 GOSUB 1850: IF Y(T)*P<X(T)+10 THEN 1745
|
||||
1744 T=T(T): GOTO 794
|
||||
1745 PRINT: PRINT "BALL NOW ON";P
|
||||
1750 T=T(T): GOSUB 1900: GOTO 830
|
||||
1770 DATA 17,8,4,14,19,3,10,1,7,11,15,9,5,20,13,18,16,2,12,6
|
||||
1780 DATA 20,2,17,5,8,18,12,11,1,4,19,14,10,7,9,15,6,13,16,3
|
||||
1790 DATA "PITCHOUT","TRIPLE REVERSE","DRAW","QB SNEAK","END AROUND"
|
||||
1792 DATA "DOUBLE REVERSE","LEFT SWEEP","RIGHT SWEEP","OFF TACKLE"
|
||||
1794 DATA "WISHBONE OPTION","FLARE PASS","SCREEN PASS"
|
||||
1796 DATA "ROLL OUT OPTION","RIGHT CURL","LEFT CURL","WISHBONE OPTION"
|
||||
1798 DATA "SIDELINE PASS","HALF-BACK OPTION","RAZZLE-DAZZLE","BOMB!!!!"
|
||||
1800 IF P1<>99 THEN 936
|
||||
1810 PRINT: PRINT "TEAM 1 SCORE IS";H(1)
|
||||
1820 PRINT "TEAM 2 SCORE IS";H(2): PRINT
|
||||
1825 IF H(T)<E THEN 1830
|
||||
1827 PRINT "TEAM";T;"WINS*******************": GOTO 2000
|
||||
1830 IF P1=99 THEN 940
|
||||
1835 RETURN
|
||||
1850 PRINT
|
||||
1860 FOR X=1 TO 72: PRINT "+";: NEXT X: PRINT
|
||||
1870 RETURN
|
||||
1900 PRINT TAB(D(T)+5+P/2);M$(T)
|
||||
1910 PRINT "TEAM 1 [0 10 20 30 40 50 60 70 80 90";
|
||||
1915 PRINT " 100] TEAM 2"
|
||||
1920 PRINT
|
||||
1930 RETURN
|
||||
2000 END
|
||||
298
37 Football/ftball.bas
Normal file
298
37 Football/ftball.bas
Normal file
@@ -0,0 +1,298 @@
|
||||
10 PRINT TAB(33);"FTBALL"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT
|
||||
220 PRINT "THIS IS DARTMOUTH CHAMPIONSHIP FOOTBALL.":PRINT
|
||||
230 PRINT "YOU WILL QUARTERBACK DARTMOUTH. CALL PLAYS AS FOLLOWS:"
|
||||
240 PRINT "1= SIMPLE RUN; 2= TRICKY RUN; 3= SHORT PASS;"
|
||||
250 PRINT "4= LONG PASS; 5= PUNT; 6= QUICK KICK; 7= PLACE KICK."
|
||||
260 PRINT
|
||||
270 PRINT "CHOOSE YOUR OPPONENT";
|
||||
280 INPUT O$(1)
|
||||
290 O$(0)="DARTMOUTH"
|
||||
300 PRINT
|
||||
310 LET S(0)=0: LET S(1)=0
|
||||
320 REM
|
||||
330 DIM L$(20)
|
||||
340 FOR I=1 TO 20: READ L$(I): NEXT I
|
||||
350 DATA "KICK","RECEIVE"," YARD ","RUN BACK FOR ","BALL ON "
|
||||
360 DATA "YARD LINE"," SIMPLE RUN"," TRICKY RUN"," SHORT PASS"
|
||||
370 DATA " LONG PASS","PUNT"," QUICK KICK "," PLACE KICK"," LOSS "
|
||||
380 DATA " NO GAIN","GAIN "," TOUCHDOWN "," TOUCHBACK ","SAFETY***"
|
||||
385 DATA "JUNK"
|
||||
390 LET P=INT(RND(1)*2)
|
||||
400 PRINT O$(P);" WON THE TOSS"
|
||||
410 DEF FNF(X)=1-2*P
|
||||
420 DEF FNG(Z)=P*(X1-X)+(1-P)*(X-X1)
|
||||
430 IF P=0 THEN 470
|
||||
440 PRINT O$(1);" ELECTS TO RECEIVE."
|
||||
450 PRINT
|
||||
460 GOTO 580
|
||||
470 PRINT "DO YOU ELECT TO KICK OR RECEIVE";
|
||||
480 INPUT A$
|
||||
490 PRINT
|
||||
500 FOR E=1 TO 2
|
||||
510 IF A$=L$(E) THEN 550
|
||||
520 NEXT E
|
||||
530 PRINT "INCORRECT ANSWER. PLEASE TYPE 'KICK' OR 'RECIEVE'";
|
||||
540 GOTO 480
|
||||
550 IF E=2 THEN 580
|
||||
560 LET P=1
|
||||
580 LET X=40+(1-P)*20
|
||||
590 LET Y=INT(200*(RND(1)-.5)^3+55)
|
||||
600 PRINT Y;L$(3);" KICKOFF"
|
||||
610 LET X=X-FNF(1)*Y
|
||||
620 IF ABS(X-50)>=50 THEN 700
|
||||
630 LET Y=INT(50*RND(1)^2)+(1-P)*INT(50*RND(1)^4)
|
||||
640 LET X=X+FNF(1)*Y
|
||||
650 IF ABS(X-50)>=50 THEN 655
|
||||
651 PRINT Y;L$(3);" RUNBACK"
|
||||
652 GOTO 720
|
||||
655 PRINT L$(4);
|
||||
660 GOTO 2600
|
||||
700 PRINT "TOUCHBACK FOR ";O$(P);"."
|
||||
710 LET X=20+P*60
|
||||
720 REM FIRST DOWN
|
||||
730 GOSUB 800
|
||||
740 LET X1=X
|
||||
750 LET D=1
|
||||
760 PRINT:PRINT "FIRST DOWN ";O$(P);"***"
|
||||
770 PRINT
|
||||
780 PRINT
|
||||
790 GOTO 860
|
||||
800 REM PRINT POSITION
|
||||
810 IF X>50 THEN 840
|
||||
820 PRINT L$(5);O$(0);X;L$(6)
|
||||
830 GOTO 850
|
||||
840 PRINT L$(5);O$(1);100-X;L$(6)
|
||||
850 RETURN
|
||||
860 REM NEW PLAY
|
||||
870 LET T=T+1
|
||||
880 IF T=30 THEN 1060
|
||||
890 IF T<50 THEN 940
|
||||
900 IF RND(1)>.2 THEN 940
|
||||
910 PRINT "END OF GAME ***"
|
||||
920 PRINT "FINAL SCORE: ";O$(0);": ";S(0);" ";O$(1);": ";S(1)
|
||||
930 STOP
|
||||
940 IF P=1 THEN 1870
|
||||
950 PRINT "NEXT PLAY";
|
||||
960 INPUT Z
|
||||
970 IF Z<>INT(Z) THEN 990
|
||||
980 IF ABS(Z-4)<=3 THEN 1010
|
||||
990 PRINT "ILLEGAL PLAY NUMBER, RETYPE";
|
||||
1000 GOTO 960
|
||||
1010 LET F=0
|
||||
1020 PRINT L$(Z+6);". ";
|
||||
1030 LET R=RND(1)*(.98+FNF(1)*.02)
|
||||
1040 LET R1=RND(1)
|
||||
1050 ON Z GOTO 1110,1150,1260,1480,1570,1570,1680
|
||||
1060 REM JEAN'S SPECIAL
|
||||
1070 IF RND(1)> 1/3 THEN 940
|
||||
1080 PRINT "GAME DELAYED. DOG ON FIELD."
|
||||
1090 PRINT
|
||||
1100 GOTO 940
|
||||
1110 REM SIMPLE RUN
|
||||
1120 LET Y=INT(24*(R-.5)^3+3)
|
||||
1130 IF RND(1)<.05 THEN 1180
|
||||
1140 GOTO 2190
|
||||
1150 REM TRICKY RUN
|
||||
1160 LET Y=INT(20*R-5)
|
||||
1170 IF RND(1)>.1 THEN 2190
|
||||
1180 LET F=-1
|
||||
1190 LET X3=X
|
||||
1200 LET X=X+FNF(1)*Y
|
||||
1210 IF ABS(X-50)>=50 THEN 1240
|
||||
1220 PRINT "*** FUMBLE AFTER ";
|
||||
1230 GOTO 2230
|
||||
1240 PRINT "*** FUMBLE."
|
||||
1250 GOTO 2450
|
||||
1260 REM SHORT PASS
|
||||
1270 LET Y=INT(60*(R1-.5)^3+10)
|
||||
1280 IF R<.05 THEN 1330
|
||||
1290 IF R<.15 THEN 1390
|
||||
1300 IF R<.55 THEN 1420
|
||||
1310 PRINT "COMPLETE. ";
|
||||
1320 GOTO 2190
|
||||
1330 IF D=4 THEN 1420
|
||||
1340 PRINT "INTERCEPTED."
|
||||
1350 LET F=-1
|
||||
1360 LET X=X+FNF(1)*Y
|
||||
1370 IF ABS(X-50)>=50 THEN 2450
|
||||
1380 GOTO 2300
|
||||
1390 PRINT "PASSER TACKLED. ";
|
||||
1400 LET Y=-INT(10*R1)
|
||||
1410 GOTO 2190
|
||||
1420 LET Y=0
|
||||
1430 IF RND(1)<.3 THEN 1460
|
||||
1440 PRINT "INCOMPLETE. ";
|
||||
1450 GOTO 2190
|
||||
1460 PRINT "BATTED DOWN. ";
|
||||
1470 GOTO 2190
|
||||
1480 REM LONG PASS
|
||||
1490 LET Y=INT(160*(R1-.5)^3+30)
|
||||
1500 IF R<.1 THEN 1330
|
||||
1510 IF R<.3 THEN 1540
|
||||
1520 IF R<.75 THEN 1420
|
||||
1530 GOTO 1310
|
||||
1540 PRINT "PASSER TACKLED. ";
|
||||
1550 LET Y=-INT(15*R1+3)
|
||||
1560 GOTO 2190
|
||||
1570 REM PUNT OR KICK
|
||||
1580 LET Y=INT(100*(R-.5)^3+35)
|
||||
1590 IF D=4 THEN 1610
|
||||
1600 LET Y=INT(Y*1.3)
|
||||
1610 PRINT Y;L$(3);" PUNT"
|
||||
1620 IF ABS(X+Y*FNF(1)-50)>=50 THEN 1670
|
||||
1630 IF D<4 THEN 1670
|
||||
1640 LET Y1=INT(R1^2*20)
|
||||
1650 PRINT Y1;L$(3);" RUN BACK"
|
||||
1660 LET Y=Y-Y1
|
||||
1670 GOTO 1350
|
||||
1680 REM PLACE KICK
|
||||
1690 LET Y=INT(100*(R-.5)^3+35)
|
||||
1700 IF R1>.15 THEN 1740
|
||||
1710 PRINT "KICK IS BLOCKED ***"
|
||||
1720 LET X=X-5*FNF(1)
|
||||
1730 LET P=1-P
|
||||
1740 GOTO 720
|
||||
1750 LET X=X+FNF(1)*Y
|
||||
1760 IF ABS(X-50)>=60 THEN 1810
|
||||
1770 PRINT "KICK IS SHORT."
|
||||
1780 IF ABS(X-50)>=50 THEN 2710
|
||||
1790 P=1-P
|
||||
1800 GOTO 630
|
||||
1810 IF R1>.5 THEN 1840
|
||||
1820 PRINT "KICK IS OFF TO THE SIDE."
|
||||
1830 GOTO 2710
|
||||
1840 PRINT "FIELD GOAL ***"
|
||||
1850 LET S(P)=S(P)+3
|
||||
1860 GOTO 2640
|
||||
1870 REM OPPONENT'S PLAY
|
||||
1880 IF D>1 THEN 1940
|
||||
1890 IF RND(1)>1/3 THEN 1920
|
||||
1900 LET Z=3
|
||||
1910 GOTO 1010
|
||||
1920 LET Z=1
|
||||
1930 GOTO 1010
|
||||
1940 IF D=4 THEN 2090
|
||||
1950 IF 10+X-X1<5 THEN 1890
|
||||
1960 IF X<5 THEN 1890
|
||||
1970 IF X<=10 THEN 2160
|
||||
1980 IF X>X1 THEN 2020
|
||||
1990 LET A=INT(2*RND(1))
|
||||
2000 LET Z=2+A*2
|
||||
2010 GOTO 1010
|
||||
2020 IF D<3 THEN 1990
|
||||
2030 IF X<45 THEN 1990
|
||||
2040 IF RND(1)>1/4 THEN 2070
|
||||
2050 LET Z=6
|
||||
2060 GOTO 1010
|
||||
2070 LET Z=4
|
||||
2080 GOTO 1010
|
||||
2090 IF X>30 THEN 2140
|
||||
2100 IF 10+X-X1<3 THEN 1890
|
||||
2110 IF X<3 THEN 1890
|
||||
2120 LET Z=7
|
||||
2130 GOTO 1010
|
||||
2140 LET Z=5
|
||||
2150 GOTO 1010
|
||||
2160 LET A=INT(2*RND(1))
|
||||
2170 LET Z=2+A
|
||||
2180 GOTO 1010
|
||||
2190 REM GAIN OR LOSS
|
||||
2200 LET X3=X
|
||||
2210 LET X=X+FNF(1)*Y
|
||||
2220 IF ABS(X-50)>=50 THEN 2450
|
||||
2230 IF Y=0 THEN 2250
|
||||
2240 PRINT ABS(Y);L$(3);
|
||||
2250 PRINT L$(15+SGN(Y))
|
||||
2280 IF ABS(X3-50)>40 THEN 2300
|
||||
2290 IF RND(1)<.1 THEN 2860
|
||||
2300 GOSUB 800
|
||||
2310 IF F=0 THEN 2340
|
||||
2320 LET P=1-P
|
||||
2330 GOTO 740
|
||||
2340 IF FNG(1)>=10 THEN 740
|
||||
2350 IF D=4 THEN 2320
|
||||
2360 LET D=D+1
|
||||
2370 PRINT "DOWN: ";D;" ";
|
||||
2380 IF (X1-50)*FNF(1)<40 THEN 2410
|
||||
2390 PRINT "GOAL TO GO"
|
||||
2400 GOTO 2420
|
||||
2410 PRINT "YARDS TO GO: ";10-FNG(1)
|
||||
2420 PRINT
|
||||
2430 PRINT
|
||||
2440 GOTO 860
|
||||
2450 REM BALL IN END-ZONE
|
||||
2460 IF X>=100 THEN 2490
|
||||
2470 LET E=0
|
||||
2480 GOTO 2500
|
||||
2490 LET E=1
|
||||
2500 ON 1+E-F*2+P*4 GOTO 2510,2590,2760,2710,2590,2510,2710,2760
|
||||
2510 REM SAFETY
|
||||
2520 LET S(1-P)=S(1-P)+2
|
||||
2530 PRINT L$(19)
|
||||
2540 GOSUB 2800
|
||||
2550 PRINT O$(P);" KICKS OFF FROM ITS 20 YARD LINE."
|
||||
2560 LET X=20+P*60
|
||||
2570 LET P=1-P
|
||||
2580 GOTO 590
|
||||
2590 REM OFFENSIVE TD
|
||||
2600 PRINT L$(17);"***"
|
||||
2610 IF RND(1)>.8 THEN 2680
|
||||
2620 LET S(P)=S(P)+7
|
||||
2630 PRINT "KICK IS GOOD."
|
||||
2640 GOSUB 2800
|
||||
2650 PRINT O$(P);" KICKS OFF"
|
||||
2660 LET P=1-P
|
||||
2670 GOTO 580
|
||||
2680 PRINT "KICK IS OFF TO THE SIDE"
|
||||
2690 LET S(P)=S(P)+6
|
||||
2700 GOTO 2640
|
||||
2710 REM TOUCHBACK
|
||||
2720 PRINT L$(18)
|
||||
2730 LET P=1-P
|
||||
2740 LET X=20+P*60
|
||||
2750 GOTO 720
|
||||
2760 REM DEFENSIVE TD
|
||||
2770 PRINT L$(17);"FOR ";O$(1-P);"***"
|
||||
2780 LET P=1-P
|
||||
2790 GOTO 2600
|
||||
2800 REM SCORE
|
||||
2810 PRINT
|
||||
2820 PRINT "SCORE: ";S(0);" TO ";S(1)
|
||||
2830 PRINT
|
||||
2840 PRINT
|
||||
2850 RETURN
|
||||
2860 REM PENALTY
|
||||
2870 LET P3=INT(2*RND(1))
|
||||
2880 PRINT O$(P3);" OFFSIDES -- PENALTY OF 5 YARDS."
|
||||
2890 PRINT
|
||||
2900 PRINT
|
||||
2910 IF P3=0 THEN 2980
|
||||
2920 PRINT "DO YOU ACCEPT THE PENALTY";
|
||||
2930 INPUT A$
|
||||
2940 IF A$="NO" THEN 2300
|
||||
2950 IF A$="YES" THEN 3110
|
||||
2960 PRINT "TYPE 'YES' OR 'NO'";
|
||||
2970 GOTO 2930
|
||||
2980 REM OPPONENT'S STRATEGY ON PENALTY
|
||||
2990 IF P=1 THEN 3040
|
||||
3000 IF Y<=0 THEN 3080
|
||||
3010 IF F<0 THEN 3080
|
||||
3020 IF FNG(1)<3*D-2 THEN 3080
|
||||
3030 GOTO 3100
|
||||
3040 IF Y<=5 THEN 3100
|
||||
3050 IF F<0 THEN 3100
|
||||
3060 IF D<4 THEN 3080
|
||||
3070 IF FNG(1)<10 THEN 3100
|
||||
3080 PRINT "PENALTY REFUSED."
|
||||
3090 GOTO 2300
|
||||
3100 PRINT "PENALTY ACCEPTED."
|
||||
3110 LET F=0
|
||||
3120 LET D=D-1
|
||||
3130 IF P<>P3 THEN 3160
|
||||
3140 LET X=X3-FNF(1)*5
|
||||
3150 GOTO 2300
|
||||
3160 LET X=X3+FNF(1)*5
|
||||
3170 GOTO 2300
|
||||
3180 END
|
||||
7
38 Fur Trader/README.md
Normal file
7
38 Fur Trader/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Fur Trader
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=69
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
170
38 Fur Trader/furtrader.bas
Normal file
170
38 Fur Trader/furtrader.bas
Normal file
@@ -0,0 +1,170 @@
|
||||
1 DIM F(4)
|
||||
2 PRINT TAB(31);"FUR TRADER"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT: PRINT: PRINT
|
||||
15 GOSUB 1091
|
||||
16 LET I=600
|
||||
17 PRINT "DO YOU WISH TO TRADE FURS?"
|
||||
18 GOSUB 1402
|
||||
19 IF B$="YES" THEN 100
|
||||
20 IF B$="YES " THEN 100
|
||||
21 STOP
|
||||
100 PRINT
|
||||
101 PRINT "YOU HAVE $";I " SAVINGS."
|
||||
102 PRINT "AND 190 FURS TO BEGIN THE EXPEDITION."
|
||||
261 LET E1=INT((.15*RND(1)+.95)*10^2+.5)/10^2
|
||||
262 LET B1=INT((.25*RND(1)+1.00)*10^2+.5)/10^2
|
||||
300 PRINT
|
||||
301 PRINT "YOUR 190 FURS ARE DISTRIBUTED AMONG THE FOLLOWING"
|
||||
302 PRINT "KINDS OF PELTS: MINK, BEAVER, ERMINE AND FOX."
|
||||
310 GOSUB 1430
|
||||
315 RESTORE
|
||||
330 FOR J=1 TO 4
|
||||
332 READ B$
|
||||
333 PRINT
|
||||
335 PRINT "HOW MANY ";B$;" PELTS DO YOU HAVE";
|
||||
338 INPUT F(J)
|
||||
340 LET F(0)=F(1)+F(2)+F(3)+F(4)
|
||||
342 IF F(0)=190 THEN 1100
|
||||
344 IF F(0)>190 THEN 500
|
||||
348 NEXT J
|
||||
350 GOTO 1100
|
||||
500 PRINT
|
||||
501 PRINT "YOU MAY NOT HAVE THAT MANY FURS."
|
||||
502 PRINT "DO NOT TRY TO CHEAT. I CAN ADD."
|
||||
503 PRINT "YOU MUST START AGAIN."
|
||||
504 GOTO 15
|
||||
508 PRINT
|
||||
511 PRINT "DO YOU WANT TO TRADE FURS NEXT YEAR?"
|
||||
513 GOTO 18
|
||||
1091 PRINT "YOU ARE THE LEADER OF A FRENCH FUR TRADING EXPEDITION IN "
|
||||
1092 PRINT "1776 LEAVING THE LAKE ONTARIO AREA TO SELL FURS AND GET"
|
||||
1093 PRINT "SUPPLIES FOR THE NEXT YEAR. YOU HAVE A CHOICE OF THREE"
|
||||
1094 PRINT "FORTS AT WHICH YOU MAY TRADE. THE COST OF SUPPLIES"
|
||||
1095 PRINT "AND THE AMOUNT YOU RECEIVE FOR YOUR FURS WILL DEPEND"
|
||||
1096 PRINT "ON THE FORT THAT YOU CHOOSE."
|
||||
1099 RETURN
|
||||
1100 PRINT "YOU MAY TRADE YOUR FURS AT FORT 1, FORT 2,"
|
||||
1102 PRINT "OR FORT 3. FORT 1 IS FORT HOCHELAGA (MONTREAL)"
|
||||
1103 PRINT "AND IS UNDER THE PROTECTION OF THE FRENCH ARMY."
|
||||
1104 PRINT "FORT 2 IS FORT STADACONA (QUEBEC) AND IS UNDER THE"
|
||||
1105 PRINT "PROTECTION OF THE FRENCH ARMY. HOWEVER, YOU MUST"
|
||||
1106 PRINT "MAKE A PORTAGE AND CROSS THE LACHINE RAPIDS."
|
||||
1108 PRINT "FORT 3 IS FORT NEW YORK AND IS UNDER DUTCH CONTROL."
|
||||
1109 PRINT "YOU MUST CROSS THROUGH IROQUOIS LAND."
|
||||
1110 PRINT "ANSWER 1, 2, OR 3."
|
||||
1111 INPUT B
|
||||
1112 IF B=1 THEN 1120
|
||||
1113 IF B=2 THEN 1135
|
||||
1115 IF B=3 THEN 1147
|
||||
1116 GOTO 1110
|
||||
1120 PRINT "YOU HAVE CHOSEN THE EASIEST ROUTE. HOWEVER, THE FORT"
|
||||
1121 PRINT "IS FAR FROM ANY SEAPORT. THE VALUE"
|
||||
1122 PRINT "YOU RECEIVE FOR YOUR FURS WILL BE LOW AND THE COST"
|
||||
1123 PRINT "OF SUPPLIES HIGHER THAN AT FORTS STADACONA OR NEW YORK."
|
||||
1125 GOSUB 1400
|
||||
1129 IF B$="YES" THEN 1110
|
||||
1130 GOTO 1160
|
||||
1135 PRINT "YOU HAVE CHOSEN A HARD ROUTE. IT IS, IN COMPARSION,"
|
||||
1136 PRINT "HARDER THAN THE ROUTE TO HOCHELAGA BUT EASIER THAN"
|
||||
1137 PRINT "THE ROUTE TO NEW YORK. YOU WILL RECEIVE AN AVERAGE VALUE"
|
||||
1138 PRINT "FOR YOUR FURS AND THE COST OF YOUR SUPPLIES WILL BE AVERAGE."
|
||||
1141 GOSUB 1400
|
||||
1144 IF B$="YES" THEN 1110
|
||||
1145 GOTO 1198
|
||||
1147 PRINT "YOU HAVE CHOSEN THE MOST DIFFICULT ROUTE. AT"
|
||||
1148 PRINT "FORT NEW YORK YOU WILL RECEIVE THE HIGHEST VALUE"
|
||||
1149 PRINT "FOR YOUR FURS. THE COST OF YOUR SUPPLIES"
|
||||
1150 PRINT "WILL BE LOWER THAN AT ALL THE OTHER FORTS."
|
||||
1152 GOSUB 1400
|
||||
1155 IF B$="YES" THEN 1110
|
||||
1156 GOTO 1250
|
||||
1160 LET I=I-160
|
||||
1169 PRINT
|
||||
1174 LET M1=INT((.2*RND(1)+.7)*10^2+.5)/10^2
|
||||
1175 LET E1=INT((.2*RND(1)+.65)*10^2+.5)/10^2
|
||||
1176 LET B1=INT((.2*RND(1)+.75)*10^2+.5)/10^2
|
||||
1177 LET D1=INT((.2*RND(1)+.8)*10^2+.5)/10^2
|
||||
1180 PRINT "SUPPLIES AT FORT HOCHELAGA COST $150.00."
|
||||
1181 PRINT "YOUR TRAVEL EXPENSES TO HOCHELAGA WERE $10.00."
|
||||
1190 GOTO 1410
|
||||
1198 LET I=I-140
|
||||
1201 PRINT
|
||||
1205 LET M1=INT((.3*RND(1)+.85)*10^2+.5)/10^2
|
||||
1206 LET E1=INT((.15*RND(1)+.8)*10^2+.5)/10^2
|
||||
1207 LET B1=INT((.2*RND(1)+.9)*10^2+.5)/10^2
|
||||
1209 LET P=INT(10*RND(1))+1
|
||||
1210 IF P<=2 THEN 1216
|
||||
1212 IF P<=6 THEN 1224
|
||||
1213 IF P<=8 THEN 1226
|
||||
1215 IF P<=10 THEN 1235
|
||||
1216 LET F(2)=0
|
||||
1218 PRINT "YOUR BEAVER WERE TOO HEAVY TO CARRY ACROSS"
|
||||
1219 PRINT "THE PORTAGE. YOU HAD TO LEAVE THE PELTS, BUT FOUND"
|
||||
1220 PRINT "THEM STOLEN WHEN YOU RETURNED."
|
||||
1221 GOSUB 1244
|
||||
1222 GOTO 1414
|
||||
1224 PRINT "YOU ARRIVED SAFELY AT FORT STADACONA."
|
||||
1225 GOTO 1239
|
||||
1226 GOSUB 1430
|
||||
1230 PRINT "YOUR CANOE UPSET IN THE LACHINE RAPIDS. YOU"
|
||||
1231 PRINT "LOST ALL YOUR FURS."
|
||||
1232 GOSUB 1244
|
||||
1233 GOTO 1418
|
||||
1235 LET F(4)=0
|
||||
1237 PRINT "YOUR FOX PELTS WERE NOT CURED PROPERLY."
|
||||
1238 PRINT "NO ONE WILL BUY THEM."
|
||||
1239 GOSUB 1244
|
||||
1240 GOTO 1410
|
||||
1244 PRINT "SUPPLIES AT FORT STADACONA COST $125.00."
|
||||
1246 PRINT "YOUR TRAVEL EXPENSES TO STADACONA WERE $15.00."
|
||||
1248 RETURN
|
||||
1250 LET I=I-105
|
||||
1254 PRINT
|
||||
1260 LET M1=INT((.15*RND(1)+1.05)*10^2+.5)/10^2
|
||||
1263 LET D1=INT((.25*RND(1)+1.1)*10^2+.5)/10^2
|
||||
1270 LET P=INT(10*RND(1))+1
|
||||
1271 IF P<=2 THEN 1281
|
||||
1272 IF P<=6 THEN 1291
|
||||
1273 IF P<=8 THEN 1295
|
||||
1274 IF P<=10 THEN 1306
|
||||
1281 PRINT "YOU WERE ATTACKED BY A PARTY OF IROQUOIS."
|
||||
1282 PRINT "ALL PEOPLE IN YOUR TRADING GROUP WERE"
|
||||
1283 PRINT "KILLED. THIS ENDS THE GAME."
|
||||
1284 STOP
|
||||
1291 PRINT "YOU WERE LUCKY. YOU ARRIVED SAFELY"
|
||||
1292 PRINT "AT FORT NEW YORK."
|
||||
1293 GOTO 1311
|
||||
1295 GOSUB 1430
|
||||
1300 PRINT "YOU NARROWLY ESCAPED AN IROQUOIS RAIDING PARTY."
|
||||
1301 PRINT "HOWEVER, YOU HAD TO LEAVE ALL YOUR FURS BEHIND."
|
||||
1303 GOSUB 1320
|
||||
1304 GOTO 1418
|
||||
1306 LET B1=B1/2
|
||||
1307 LET M1=M1/2
|
||||
1308 PRINT "YOUR MINK AND BEAVER WERE DAMAGED ON YOUR TRIP."
|
||||
1309 PRINT "YOU RECEIVE ONLY HALF THE CURRENT PRICE FOR THESE FURS."
|
||||
1311 GOSUB 1320
|
||||
1312 GOTO 1410
|
||||
1320 PRINT "SUPPLIES AT NEW YORK COST $80.00."
|
||||
1321 PRINT "YOUR TRAVEL EXPENSES TO NEW YORK WERE $25.00."
|
||||
1322 RETURN
|
||||
1400 PRINT "DO YOU WANT TO TRADE AT ANOTHER FORT?"
|
||||
1402 PRINT "ANSWER YES OR NO",
|
||||
1403 INPUT B$
|
||||
1404 RETURN
|
||||
1410 PRINT
|
||||
1412 PRINT "YOUR BEAVER SOLD FOR $";B1*F(2);
|
||||
1414 PRINT "YOUR FOX SOLD FOR $";D1*F(4)
|
||||
1416 PRINT "YOUR ERMINE SOLD FOR $";E1*F(3);
|
||||
1417 PRINT "YOUR MINK SOLD FOR $";M1*F(1)
|
||||
1418 LET I=M1*F(1)+B1*F(2)+E1*F(3)+D1*F(4)+I
|
||||
1420 PRINT
|
||||
1422 PRINT "YOU NOW HAVE $";I;" INCLUDING YOUR PREVIOUS SAVINGS"
|
||||
1425 GOTO 508
|
||||
1430 FOR J=1 TO 4
|
||||
1432 LET F(J)=0
|
||||
1434 NEXT J
|
||||
1436 RETURN
|
||||
2000 DATA "MINK","BEAVER","ERMINE","FOX"
|
||||
2046 END
|
||||
7
39 Golf/README.md
Normal file
7
39 Golf/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Golf
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=71
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
244
39 Golf/golf.bas
Normal file
244
39 Golf/golf.bas
Normal file
@@ -0,0 +1,244 @@
|
||||
1 PRINT TAB(34);"GOLF"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
4 PRINT "WELCOME TO THE CREATIVE COMPUTING COUNTRY CLUB,"
|
||||
5 PRINT "AN EIGHTEEN HOLE CHAMPIONSHIP LAYOUT LOCATED A SHORT"
|
||||
6 PRINT "DISTANCE FROM SCENIC DOWNTOWN MORRISTOWN. THE"
|
||||
7 PRINT "COMMENTATOR WILL EXPLAIN THE GAME AS YOU PLAY."
|
||||
8 PRINT "ENJOY YOUR GAME; SEE YOU AT THE 19TH HOLE..."
|
||||
9 PRINT:PRINT: DIM L(10)
|
||||
10 G1=18
|
||||
20 G2=0
|
||||
30 G3=0
|
||||
40 A=0
|
||||
50 N=.8
|
||||
60 S2=0
|
||||
70 F=1
|
||||
80 PRINT "WHAT IS YOUR HANDICAP";
|
||||
90 INPUT H:PRINT
|
||||
100 IF H>30 THEN 470
|
||||
110 IF H<0 THEN 470
|
||||
120 PRINT "DIFFICULTIES AT GOLF INCLUDE:"
|
||||
130 PRINT "0=HOOK, 1=SLICE, 2=POOR DISTANCE, 4=TRAP SHOTS, 5=PUTTING"
|
||||
140 PRINT "WHICH ONE (ONLY ONE) IS YOUR WORST";
|
||||
150 INPUT T:PRINT
|
||||
160 IF T>5 THEN 120
|
||||
170 S1=0
|
||||
210 REM
|
||||
230 L(0)=0
|
||||
240 J=0
|
||||
245 Q=0
|
||||
250 S2=S2+1
|
||||
260 K=0
|
||||
270 IF F=1 THEN 310
|
||||
290 PRINT "YOUR SCORE ON HOLE";F-1;"WAS";S1
|
||||
291 GOTO 1750
|
||||
292 IF S1>P+2 THEN 297
|
||||
293 IF S1=P THEN 299
|
||||
294 IF S1=P-1 THEN 301
|
||||
295 IF S1=P-2 THEN 303
|
||||
296 GOTO 310
|
||||
297 PRINT "KEEP YOUR HEAD DOWN."
|
||||
298 GOTO 310
|
||||
299 PRINT "A PAR. NICE GOING."
|
||||
300 GOTO 310
|
||||
301 PRINT "A BIRDIE."
|
||||
302 GOTO 310
|
||||
303 IF P=3 THEN 306
|
||||
304 PRINT "A GREAT BIG EAGLE."
|
||||
305 GOTO 310
|
||||
306 PRINT "A HOLE IN ONE."
|
||||
310 IF F=19 THEN 1710
|
||||
315 S1=0
|
||||
316 PRINT
|
||||
320 IF S1=0 THEN 1590
|
||||
330 IF L(0)<1 THEN 1150
|
||||
340 X=0
|
||||
350 IF L(0)>5 THEN 1190
|
||||
360 PRINT "SHOT WENT";D1;"YARDS. IT'S";D2;"YARDS FROM THE CUP."
|
||||
362 PRINT "BALL IS";INT(O);"YARDS OFF LINE... IN ";
|
||||
380 GOSUB 400
|
||||
390 GOTO 620
|
||||
400 IF L(X)=1 THEN 480
|
||||
410 IF L(X)=2 THEN 500
|
||||
420 IF L(X)=3 THEN 520
|
||||
430 IF L(X)=4 THEN 540
|
||||
440 IF L(X)=5 THEN 560
|
||||
450 IF L(X)=6 THEN 580
|
||||
460 PRINT "OUT OF BOUNDS."
|
||||
465 GOTO 1690
|
||||
470 PRINT "PGA HANDICAPS RANGE FROM 0 TO 30."
|
||||
472 GOTO 80
|
||||
480 PRINT "FAIRWAY."
|
||||
490 GOTO 1690
|
||||
500 PRINT "ROUGH."
|
||||
510 GOTO 1690
|
||||
520 PRINT "TREES."
|
||||
530 GOTO 1690
|
||||
540 PRINT "ADJACENT FAIRWAY."
|
||||
550 GOTO 1690
|
||||
560 PRINT "TRAP."
|
||||
570 GOTO 1690
|
||||
580 PRINT "WATER."
|
||||
590 GOTO 1690
|
||||
620 IF A=1 THEN 629
|
||||
621 PRINT "SELECTION OF CLUBS"
|
||||
622 PRINT "YARDAGE DESIRED SUGGESTED CLUBS"
|
||||
623 PRINT "200 TO 280 YARDS 1 TO 4"
|
||||
624 PRINT "100 TO 200 YARDS 19 TO 13"
|
||||
625 PRINT " 0 TO 100 YARDS 29 TO 23"
|
||||
626 A=1
|
||||
629 PRINT "WHAT CLUB DO YOU CHOOSE";
|
||||
630 INPUT C
|
||||
632 PRINT
|
||||
635 IF C<1 THEN 690
|
||||
637 IF C>29 THEN 690
|
||||
640 IF C>4 THEN 710
|
||||
650 IF L(0)<=5 THEN 740
|
||||
660 IF C=14 THEN 740
|
||||
665 IF C=23 THEN 740
|
||||
670 GOTO 690
|
||||
680 S1=S1-1
|
||||
690 PRINT "THAT CLUB IS NOT IN THE BAG."
|
||||
693 PRINT
|
||||
700 GOTO 620
|
||||
710 IF C<12 THEN 690
|
||||
720 C=C-6
|
||||
730 GOTO 650
|
||||
740 S1=S1+1
|
||||
741 W=1
|
||||
742 IF C>13 THEN 960
|
||||
746 IF INT(F/3)=F/3 THEN 952
|
||||
752 IF C<4 THEN 756
|
||||
754 GOTO 760
|
||||
756 IF L(0)=2 THEN 862
|
||||
760 IF S1>7 THEN 867
|
||||
770 D1=INT(((30-H)*2.5+187-((30-H)*.25+15)*C/2)+25*RND(1))
|
||||
780 D1=INT(D1*W)
|
||||
800 IF T=2 THEN 1170
|
||||
830 O=(RND(1)/.8)*(2*H+16)*ABS(TAN(D1*.0035))
|
||||
840 D2=INT(SQR(O^2+ABS(D-D1)^2))
|
||||
850 IF D-D1<0 THEN 870
|
||||
860 GOTO 890
|
||||
862 PRINT "YOU DUBBED IT."
|
||||
864 D1=35
|
||||
866 GOTO 830
|
||||
867 IF D<200 THEN 1300
|
||||
868 GOTO 770
|
||||
870 IF D2<20 THEN 890
|
||||
880 PRINT "TOO MUCH CLUB. YOU'RE PAST THE HOLE."
|
||||
890 B=D
|
||||
900 D=D2
|
||||
910 IF D2>27 THEN 1020
|
||||
920 IF D2>20 THEN 1100
|
||||
930 IF D2>.5 THEN 1120
|
||||
940 L(0)=9
|
||||
950 GOTO 1470
|
||||
952 IF S2+Q+(10*(F-1)/18)<(F-1)*(72+((H+1)/.85))/18 THEN 956
|
||||
954 GOTO 752
|
||||
956 Q=Q+1
|
||||
957 IF S1/2<>INT(S1/2) THEN 1011
|
||||
958 GOTO 862
|
||||
960 PRINT "NOW GAUGE YOUR DISTANCE BY A PERCENTAGE (1 TO 100)"
|
||||
961 PRINT "OF A FULL SWING";
|
||||
970 INPUT W: W=W/100
|
||||
972 PRINT
|
||||
980 IF W>1 THEN 680
|
||||
985 IF L(0)=5 THEN 1280
|
||||
990 IF C=14 THEN 760
|
||||
1000 C=C-10
|
||||
1010 GOTO 760
|
||||
1011 IF D<95 THEN 862
|
||||
1012 PRINT "BALL HIT TREE - BOUNCED INTO ROUGH";D-75;"YARDS FROM HOLE."
|
||||
1014 D=D-75
|
||||
1018 GOTO 620
|
||||
1020 IF O<30 THEN 1150
|
||||
1022 IF J>0 THEN 1150
|
||||
1030 IF T>0 THEN 1070
|
||||
1035 S9=(S2+1)/15
|
||||
1036 IF INT(S9)=S9 THEN 1075
|
||||
1040 PRINT "YOU HOOKED- ";
|
||||
1050 L(0)=L(2)
|
||||
1055 IF O>45 THEN 1092
|
||||
1060 GOTO 320
|
||||
1070 S9=(S2+1)/15
|
||||
1071 IF INT(S9)=S9 THEN 1040
|
||||
1075 PRINT "YOU SLICED- ";
|
||||
1080 L(0)=L(1)
|
||||
1090 GOTO 1055
|
||||
1092 PRINT "BADLY."
|
||||
1094 GOTO 320
|
||||
1100 L(0)=5
|
||||
1110 GOTO 320
|
||||
1120 L(0)=8
|
||||
1130 D2=INT(D2*3)
|
||||
1140 GOTO 1380
|
||||
1150 L(0)=1
|
||||
1160 GOTO 320
|
||||
1170 D1=INT(.85*D1)
|
||||
1180 GOTO 830
|
||||
1190 IF L(0)>6 THEN 1260
|
||||
1200 PRINT "YOUR SHOT WENT INTO THE WATER."
|
||||
1210 S1=S1+1
|
||||
1220 PRINT "PENALTY STROKE ASSESSED. HIT FROM PREVIOUS LOCATION."
|
||||
1230 J=J+1
|
||||
1240 L(0)=1
|
||||
1242 D=B
|
||||
1250 GOTO 620
|
||||
1260 PRINT "YOUR SHOT WENT OUT OF BOUNDS."
|
||||
1270 GOTO 1210
|
||||
1280 IF T=3 THEN 1320
|
||||
1300 D2=1+(3*INT((80/(40-H))*RND(1)))
|
||||
1310 GOTO 1380
|
||||
1320 IF RND(1)>N THEN 1360
|
||||
1330 N=N*.2
|
||||
1340 PRINT "SHOT DUBBED, STILL IN TRAP."
|
||||
1350 GOTO 620
|
||||
1360 N=.8
|
||||
1370 GOTO 1300
|
||||
1380 PRINT "ON GREEN,";D2;"FEET FROM THE PIN."
|
||||
1381 PRINT "CHOOSE YOUR PUTT POTENCY (1 TO 13):";
|
||||
1400 INPUT I
|
||||
1410 S1=S1+1
|
||||
1420 IF S1+1-P>(H*.072)+2 THEN 1470
|
||||
1425 IF K>2 THEN 1470
|
||||
1428 K=K+1
|
||||
1430 IF T=4 THEN 1530
|
||||
1440 D2=D2-I*(4+2*RND(1))+1.5
|
||||
1450 IF D2<-2 THEN 1560
|
||||
1460 IF D2>2 THEN 1500
|
||||
1470 PRINT "YOU HOLED IT."
|
||||
1472 PRINT
|
||||
1480 F=F+1
|
||||
1490 GOTO 230
|
||||
1500 PRINT "PUTT SHORT."
|
||||
1505 D2=INT(D2)
|
||||
1510 GOTO 1380
|
||||
1530 D2=D2-I*(4+1*RND(1))+1
|
||||
1550 GOTO 1450
|
||||
1560 PRINT "PASSED BY CUP."
|
||||
1570 D2=-D2
|
||||
1580 GOTO 1505
|
||||
1590 READ D,P,L(1),L(2)
|
||||
1595 PRINT
|
||||
1600 PRINT "YOU ARE AT THE TEE OFF HOLE";F;"DISTANCE";D;"YARDS, PAR";P
|
||||
1605 G3=G3+P
|
||||
1620 PRINT "ON YOUR RIGHT IS ";
|
||||
1630 X=1
|
||||
1640 GOSUB 400
|
||||
1650 PRINT "ON YOUR LEFT IS ";
|
||||
1660 X=2
|
||||
1670 GOSUB 400
|
||||
1680 GOTO 620
|
||||
1690 RETURN
|
||||
1700 DATA 361,4,4,2,389,4,3,3,206,3,4,2,500,5,7,2
|
||||
1702 DATA 408,4,2,4,359,4,6,4,424,4,4,2,388,4,4,4
|
||||
1704 DATA 196,3,7,2,400,4,7,2,560,5,7,2,132,3,2,2
|
||||
1706 DATA 357,4,4,4,294,4,2,4,475,5,2,3,375,4,4,2
|
||||
1708 DATA 180,3,6,2,550,5,6,6
|
||||
1710 PRINT
|
||||
1750 G2=G2+S1
|
||||
1760 PRINT "TOTAL PAR FOR";F-1;"HOLES IS";G3;" YOUR TOTAL IS";G2
|
||||
1761 IF G1=F-1 THEN 1770
|
||||
1765 GOTO 292
|
||||
1770 END
|
||||
7
40 Gomoko/README.md
Normal file
7
40 Gomoko/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Gomoko
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=74
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
54
40 Gomoko/gomoko.bas
Normal file
54
40 Gomoko/gomoko.bas
Normal file
@@ -0,0 +1,54 @@
|
||||
2 PRINT TAB(33);"GOMOKO"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT:PRINT:PRINT
|
||||
8 DIM A(19,19)
|
||||
10 PRINT "WELCOME TO THE ORIENTAL GAME OF GOMOKO."
|
||||
20 PRINT: PRINT "THE GAME IS PLAYED ON AN N BY N GRID OF A SIZE"
|
||||
30 PRINT "THAT YOU SPECIFY. DURING YOUR PLAY, YOU MAY COVER ONE GRID"
|
||||
40 PRINT "INTERSECTION WITH A MARKER. THE OBJECT OF THE GAME IS TO GET"
|
||||
50 PRINT "5 ADJACENT MARKERS IN A ROW -- HORIZONTALLY, VERTICALLY, OR"
|
||||
60 PRINT "DIAGONALLY. ON THE BOARD DIAGRAM, YOUR MOVES ARE MARKED"
|
||||
70 PRINT "WITH A '1' AND THE COMPUTER MOVES WITH A '2'."
|
||||
80 PRINT: PRINT "THE COMPUTER DOES NOT KEEP TRACK OF WHO HAS WON."
|
||||
90 PRINT "TO END THE GAME, TYPE -1,-1 FOR YOUR MOVE.": PRINT
|
||||
110 PRINT "WHAT IS YOUR BOARD SIZE (MIN 7/ MAX 19)";: INPUT N
|
||||
115 IF N>6 THEN 117
|
||||
116 GOTO 120
|
||||
117 IF N<20 THEN 210
|
||||
120 PRINT "I SAID, THE MINIMUM IS 7, THE MAXIMUM IS 19.": GOTO 110
|
||||
210 FOR I=1 TO N:FOR J=1 TO N: A(I,J)=0: NEXT J: NEXT I
|
||||
300 PRINT: PRINT "WE ALTERNATE MOVES. YOU GO FIRST...": PRINT
|
||||
310 PRINT "YOUR PLAY (I,J)";: INPUT I,J
|
||||
315 PRINT
|
||||
320 IF I=-1 THEN 980
|
||||
330 X=I: Y=J: GOSUB 910: IF L=1 THEN 410
|
||||
340 PRINT "ILLEGAL MOVE. TRY AGAIN...": GOTO 310
|
||||
410 IF A(I,J)=0 THEN 440
|
||||
420 PRINT "SQUARE OCCUPIED. TRY AGAIN...": GOTO 310
|
||||
440 A(I,J)=1
|
||||
500 REM *** COMPUTER TRIES AN INTELLIGENT MOVE ***
|
||||
510 FOR E=-1 TO 1: FOR F=-1 TO 1: IF E+F-E*F=0 THEN 590
|
||||
540 X=I+F: Y=J+F: GOSUB 910
|
||||
570 IF L=0 THEN 590
|
||||
580 IF A(X,Y)=1 THEN 710
|
||||
590 NEXT F: NEXT E
|
||||
600 REM *** COMPUTER TRIES A RANDOM MOVE ***
|
||||
610 X=INT(N*RND(1)+1): Y=INT(N*RND(1)+1): GOSUB 910: IF L=0 THEN 610
|
||||
650 IF A(X,Y)<>0 THEN 610
|
||||
660 A(X,Y)=2: GOSUB 810: GOTO 310
|
||||
710 X=I-E: Y=J-F: GOSUB 910
|
||||
750 IF L=0 THEN 610
|
||||
760 GOTO 650
|
||||
800 REM *** PRINT THE BOARD ***
|
||||
810 FOR I=1 TO N: FOR J=1 TO N: PRINT A(I,J);
|
||||
840 NEXT J: PRINT: NEXT I: PRINT: RETURN
|
||||
910 L=1: IF X<1 THEN 970
|
||||
920 IF X>N THEN 970
|
||||
930 IF Y<1 THEN 970
|
||||
940 IF Y>N THEN 970
|
||||
950 RETURN
|
||||
970 L=0: RETURN
|
||||
980 PRINT: PRINT "THANKS FOR THE GAME!!"
|
||||
985 PRINT "PLAY AGAIN (1 FOR YES, 0 FOR NO)";: INPUT Q
|
||||
990 IF Q=1 THEN 110
|
||||
999 END
|
||||
7
41 Guess/README.md
Normal file
7
41 Guess/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Guess
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=75
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
40
41 Guess/guess.bas
Normal file
40
41 Guess/guess.bas
Normal file
@@ -0,0 +1,40 @@
|
||||
1 PRINT TAB(33);"GUESS"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
4 PRINT "THIS IS A NUMBER GUESSING GAME. I'LL THINK"
|
||||
5 PRINT "OF A NUMBER BETWEEN 1 AND ANY LIMIT YOU WANT."
|
||||
6 PRINT "THEN YOU HAVE TO GUESS WHAT IT IS."
|
||||
7 PRINT
|
||||
8 PRINT "WHAT LIMIT DO YOU WANT";
|
||||
9 INPUT L
|
||||
10 PRINT
|
||||
11 L1=INT(LOG(L)/LOG(2))+1
|
||||
12 PRINT "I'M THINKING OF A NUMBER BETWEEN 1 AND";L
|
||||
13 G=1
|
||||
14 PRINT "NOW YOU TRY TO GUESS WHAT IT IS."
|
||||
15 M=INT(L*RND(1)+1)
|
||||
20 INPUT N
|
||||
21 IF N>0 THEN 25
|
||||
22 GOSUB 70
|
||||
23 GOTO 1
|
||||
25 IF N=M THEN 50
|
||||
30 G=G+1
|
||||
31 IF N>M THEN 40
|
||||
32 PRINT "TOO LOW. TRY A BIGGER ANSWER."
|
||||
33 GOTO 20
|
||||
40 PRINT "TOO HIGH. TRY A SMALLER ANSWER."
|
||||
42 GOTO 20
|
||||
50 PRINT "THAT'S IT! YOU GOT IT IN";G;"TRIES."
|
||||
52 IF G<L1 THEN 58
|
||||
54 IF G=L1 THEN 60
|
||||
56 PRINT "YOU SHOULD HAVE BEEN ABLE TO GET IT IN ONLY";L1
|
||||
57 GOTO 65
|
||||
58 PRINT "VERY ";
|
||||
60 PRINT "GOOD."
|
||||
65 GOSUB 70
|
||||
66 GOTO 12
|
||||
70 FOR H=1 TO 5
|
||||
71 PRINT
|
||||
72 NEXT H
|
||||
73 RETURN
|
||||
99 END
|
||||
7
42 Gunner/README.md
Normal file
7
42 Gunner/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Gunner
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=77
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
52
42 Gunner/gunner.bas
Normal file
52
42 Gunner/gunner.bas
Normal file
@@ -0,0 +1,52 @@
|
||||
10 PRINT TAB(30);"GUNNER"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
130 PRINT "YOU ARE THE OFFICER-IN-CHARGE, GIVING ORDERS TO A GUN"
|
||||
140 PRINT "CREW, TELLING THEM THE DEGREES OF ELEVATION YOU ESTIMATE"
|
||||
150 PRINT "WILL PLACE A PROJECTILE ON TARGET. A HIT WITHIN 100 YARDS"
|
||||
160 PRINT "OF THE TARGET WILL DESTROY IT." : PRINT
|
||||
170 R=INT(40000*RND(1)+20000)
|
||||
180 PRINT "MAXIMUM RANGE OF YOUR GUN IS";R;" YARDS."
|
||||
185 Z=0
|
||||
190 PRINT
|
||||
195 S1=0
|
||||
200 T=INT(R*(.1+.8*RND(1)))
|
||||
210 S=0
|
||||
220 GOTO 370
|
||||
230 PRINT "MINIMUM ELEVATION IS ONE DEGREE."
|
||||
240 GOTO 390
|
||||
250 PRINT "MAXIMUM ELEVATION IS 89 DEGREES."
|
||||
260 GOTO 390
|
||||
270 PRINT "OVER TARGET BY ";ABS(E);"YARDS."
|
||||
280 GOTO 390
|
||||
290 PRINT "SHORT OF TARGET BY "ABS(E);"YARDS."
|
||||
300 GOTO 390
|
||||
320 PRINT "*** TARGET DESTROYED *** ";S;"ROUNDS OF AMMUNITION EXPENDED."
|
||||
325 S1=S1+S
|
||||
330 IF Z=4 THEN 490
|
||||
340 Z=Z+1
|
||||
345 PRINT
|
||||
350 PRINT "THE FORWARD OBSERVER HAS SIGHTED MORE ENEMY ACTIVITY..."
|
||||
360 GOTO 200
|
||||
370 PRINT "DISTANCE TO THE TARGET IS "T;" YARDS."
|
||||
380 PRINT
|
||||
390 PRINT
|
||||
400 INPUT "ELEVATION";B
|
||||
420 IF B>89 THEN 250
|
||||
430 IF B<1 THEN 230
|
||||
440 S=S+1
|
||||
442 IF S<6 THEN 450
|
||||
444 PRINT:PRINT "BOOM !!!! YOU HAVE JUST BEEN DESTROYED ";
|
||||
446 PRINT "BY THE ENEMY." : PRINT : PRINT : PRINT : GOTO 495
|
||||
450 B2=2*B/57.3 : I=R*SIN(B2) : X=T-I : E=INT(X)
|
||||
460 IF ABS(E)<100 THEN 320
|
||||
470 IF E>100 THEN 290
|
||||
480 GOTO 270
|
||||
490 PRINT : PRINT : PRINT "TOTAL ROUNDS EXPENDED WERE:";S1
|
||||
492 IF S1>18 THEN 495
|
||||
493 PRINT "NICE SHOOTING !!" : GOTO 500
|
||||
495 PRINT "BETTER GO BACK TO FORT SILL FOR REFRESHER TRAINING!"
|
||||
500 PRINT : INPUT "TRY AGAIN (Y OR N)";Z$
|
||||
510 IF Z$="Y" THEN 170
|
||||
520 PRINT:PRINT "OK. RETURN TO BASE CAMP."
|
||||
999 END
|
||||
7
43 Hammurabi/README.md
Normal file
7
43 Hammurabi/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Hammurabi
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=78
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
119
43 Hammurabi/hammurabi.bas
Normal file
119
43 Hammurabi/hammurabi.bas
Normal file
@@ -0,0 +1,119 @@
|
||||
10 PRINT TAB(32);"HAMURABI"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
80 PRINT "TRY YOUR HAND AT GOVERNING ANCIENT SUMERIA"
|
||||
90 PRINT "FOR A TEN-YEAR TERM OF OFFICE.":PRINT
|
||||
95 D1=0: P1=0
|
||||
100 Z=0: P=95:S=2800: H=3000: E=H-S
|
||||
110 Y=3: A=H/Y: I=5: Q=1
|
||||
210 D=0
|
||||
215 PRINT:PRINT:PRINT "HAMURABI: I BEG TO REPORT TO YOU,": Z=Z+1
|
||||
217 PRINT "IN YEAR";Z;",";D;"PEOPLE STARVED,";I;"CAME TO THE CITY,"
|
||||
218 P=P+I
|
||||
227 IF Q>0 THEN 230
|
||||
228 P=INT(P/2)
|
||||
229 PRINT "A HORRIBLE PLAGUE STRUCK! HALF THE PEOPLE DIED."
|
||||
230 PRINT "POPULATION IS NOW";P
|
||||
232 PRINT "THE CITY NOW OWNS ";A;"ACRES."
|
||||
235 PRINT "YOU HARVESTED";Y;"BUSHELS PER ACRE."
|
||||
250 PRINT "THE RATS ATE";E;"BUSHELS."
|
||||
260 PRINT "YOU NOW HAVE ";S;"BUSHELS IN STORE.": PRINT
|
||||
270 IF Z=11 THEN 860
|
||||
310 C=INT(10*RND(1)): Y=C+17
|
||||
312 PRINT "LAND IS TRADING AT";Y;"BUSHELS PER ACRE."
|
||||
320 PRINT "HOW MANY ACRES DO YOU WISH TO BUY";
|
||||
321 INPUT Q: IF Q<0 THEN 850
|
||||
322 IF Y*Q<=S THEN 330
|
||||
323 GOSUB 710
|
||||
324 GOTO 320
|
||||
330 IF Q=0 THEN 340
|
||||
331 A=A+Q: S=S-Y*Q: C=0
|
||||
334 GOTO 400
|
||||
340 PRINT "HOW MANY ACRES DO YOU WISH TO SELL";
|
||||
341 INPUT Q: IF Q<0 THEN 850
|
||||
342 IF Q<A THEN 350
|
||||
343 GOSUB 720
|
||||
344 GOTO 340
|
||||
350 A=A-Q: S=S+Y*Q: C=0
|
||||
400 PRINT
|
||||
410 PRINT "HOW MANY BUSHELS DO YOU WISH TO FEED YOUR PEOPLE";
|
||||
411 INPUT Q
|
||||
412 IF Q<0 THEN 850
|
||||
418 REM *** TRYING TO USE MORE GRAIN THAN IS IN SILOS?
|
||||
420 IF Q<=S THEN 430
|
||||
421 GOSUB 710
|
||||
422 GOTO 410
|
||||
430 S=S-Q: C=1: PRINT
|
||||
440 PRINT "HOW MANY ACRES DO YOU WISH TO PLANT WITH SEED";
|
||||
441 INPUT D: IF D=0 THEN 511
|
||||
442 IF D<0 THEN 850
|
||||
444 REM *** TRYING TO PLANT MORE ACRES THAN YOU OWN?
|
||||
445 IF D<=A THEN 450
|
||||
446 GOSUB 720
|
||||
447 GOTO 440
|
||||
449 REM *** ENOUGH GRAIN FOR SEED?
|
||||
450 IF INT(D/2)<=S THEN 455
|
||||
452 GOSUB 710
|
||||
453 GOTO 440
|
||||
454 REM *** ENOUGH PEOPLE TO TEND THE CROPS?
|
||||
455 IF D<10*P THEN 510
|
||||
460 PRINT "BUT YOU HAVE ONLY";P;"PEOPLE TO TEND THE FIELDS! NOW THEN,"
|
||||
470 GOTO 440
|
||||
510 S=S-INT(D/2)
|
||||
511 GOSUB 800
|
||||
512 REM *** A BOUNTIFUL HARVEST!
|
||||
515 Y=C: H=D*Y: E=0
|
||||
521 GOSUB 800
|
||||
522 IF INT(C/2)<>C/2 THEN 530
|
||||
523 REM *** RATS ARE RUNNING WILD!!
|
||||
525 E=INT(S/C)
|
||||
530 S=S-E+H
|
||||
531 GOSUB 800
|
||||
532 REM *** LET'S HAVE SOME BABIES
|
||||
533 I=INT(C*(20*A+S)/P/100+1)
|
||||
539 REM *** HOW MANY PEOPLE HAD FULL TUMMIES?
|
||||
540 C=INT(Q/20)
|
||||
541 REM *** HORROS, A 15% CHANCE OF PLAGUE
|
||||
542 Q=INT(10*(2*RND(1)-.3))
|
||||
550 IF P<C THEN 210
|
||||
551 REM *** STARVE ENOUGH FOR IMPEACHMENT?
|
||||
552 D=P-C: IF D>.45*P THEN 560
|
||||
553 P1=((Z-1)*P1+D*100/P)/Z
|
||||
555 P=C: D1=D1+D: GOTO 215
|
||||
560 PRINT: PRINT "YOU STARVED";D;"PEOPLE IN ONE YEAR!!!"
|
||||
565 PRINT "DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY"
|
||||
566 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU HAVE"
|
||||
567 PRINT "ALSO BEEN DECLARED NATIONAL FINK!!!!": GOTO 990
|
||||
710 PRINT "HAMURABI: THINK AGAIN. YOU HAVE ONLY"
|
||||
711 PRINT S;"BUSHELS OF GRAIN. NOW THEN,"
|
||||
712 RETURN
|
||||
720 PRINT "HAMURABI: THINK AGAIN. YOU OWN ONLY";A;"ACRES. NOW THEN,"
|
||||
730 RETURN
|
||||
800 C=INT(RND(1)*5)+1
|
||||
801 RETURN
|
||||
850 PRINT: PRINT "HAMURABI: I CANNOT DO WHAT YOU WISH."
|
||||
855 PRINT "GET YOURSELF ANOTHER STEWARD!!!!!"
|
||||
857 GOTO 990
|
||||
860 PRINT "IN YOUR 10-YEAR TERM OF OFFICE,";P1;"PERCENT OF THE"
|
||||
862 PRINT "POPULATION STARVED PER YEAR ON THE AVERAGE, I.E. A TOTAL OF"
|
||||
865 PRINT D1;"PEOPLE DIED!!": L=A/P
|
||||
870 PRINT "YOU STARTED WITH 10 ACRES PER PERSON AND ENDED WITH"
|
||||
875 PRINT L;"ACRES PER PERSON.": PRINT
|
||||
880 IF P1>33 THEN 565
|
||||
885 IF L<7 THEN 565
|
||||
890 IF P1>10 THEN 940
|
||||
892 IF L<9 THEN 940
|
||||
895 IF P1>3 THEN 960
|
||||
896 IF L<10 THEN 960
|
||||
900 PRINT "A FANTASTIC PERFORMANCE!!! CHARLEMANGE, DISRAELI, AND"
|
||||
905 PRINT "JEFFERSON COMBINED COULD NOT HAVE DONE BETTER!":GOTO 990
|
||||
940 PRINT "YOUR HEAVY-HANDED PERFORMANCE SMACKS OF NERO AND IVAN IV."
|
||||
945 PRINT "THE PEOPLE (REMIANING) FIND YOU AN UNPLEASANT RULER, AND,"
|
||||
950 PRINT "FRANKLY, HATE YOUR GUTS!!":GOTO 990
|
||||
960 PRINT "YOUR PERFORMANCE COULD HAVE BEEN SOMEWHAT BETTER, BUT"
|
||||
965 PRINT "REALLY WASN'T TOO BAD AT ALL. ";INT(P*.8*RND(1));"PEOPLE"
|
||||
970 PRINT "WOULD DEARLY LIKE TO SEE YOU ASSASSINATED BUT WE ALL HAVE OUR"
|
||||
975 PRINT "TRIVIAL PROBLEMS."
|
||||
990 PRINT: FOR N=1 TO 10: PRINT CHR$(7);: NEXT N
|
||||
995 PRINT "SO LONG FOR NOW.": PRINT
|
||||
999 END
|
||||
7
44 Hangman/README.md
Normal file
7
44 Hangman/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Hangman
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=80
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
81
44 Hangman/hangman.bas
Normal file
81
44 Hangman/hangman.bas
Normal file
@@ -0,0 +1,81 @@
|
||||
10 PRINT TAB(32);"HANGMAN"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
25 PRINT:PRINT:PRINT
|
||||
30 DIM P$(12,12),L$(20),D$(20),N$(26),U(50)
|
||||
40 C=1: N=50
|
||||
50 FOR I=1 TO 20: D$(I)="-": NEXT I: M=0
|
||||
60 FOR I=1 TO 26: N$(I)="": NEXT I
|
||||
70 FOR I=1 TO 12: FOR J=1 TO 12: P$(I,J)=" ": NEXT J: NEXT I
|
||||
80 FOR I=1 TO 12: P$(I,1)="X": NEXT I
|
||||
90 FOR I=1 TO 7: P$(1,I)="X": NEXT: P$(2,7)="X"
|
||||
95 IF C<N THEN 100
|
||||
97 PRINT "YOU DID ALL THE WORDS!!": STOP
|
||||
100 Q=INT(N*RND(1))+1
|
||||
110 IF U(Q)=1 THEN 100
|
||||
115 U(Q)=1: C=C+1: RESTORE: T1=0
|
||||
150 FOR I=1 TO Q: READ A$: NEXT I
|
||||
160 L=LEN(A$): FOR I=1 TO LEN(A$): L$(I)=MID$(A$,I,1): NEXT I
|
||||
170 PRINT "HERE ARE THE LETTERS YOU USED:"
|
||||
180 FOR I=1 TO 26: PRINT N$(I);: IF N$(I+1)="" THEN 200
|
||||
190 PRINT ",";: NEXT I
|
||||
200 PRINT: PRINT: FOR I=1 TO L: PRINT D$(I);: NEXT I: PRINT: PRINT
|
||||
210 INPUT "WHAT IS YOUR GUESS";G$: R=0
|
||||
220 FOR I=1 TO 26: IF N$(I)="" THEN 250
|
||||
230 IF G$=N$(I) THEN PRINT "YOU GUESSED THAT LETTER BEFORE!": GOTO 170
|
||||
240 NEXT I: PRINT "PROGRAM ERROR. RUN AGAIN.": STOP
|
||||
250 N$(I)=G$: T1=T1+1
|
||||
260 FOR I=1 TO L: IF L$(I)=G$ THEN 280
|
||||
270 NEXT I: IF R=0 THEN 290
|
||||
275 GOTO 300
|
||||
280 D$(I)=G$: R=R+1: GOTO 270
|
||||
290 M=M+1: GOTO 400
|
||||
300 FOR I=1 TO L: IF D$(I)="-" THEN 320
|
||||
310 NEXT I: GOTO 390
|
||||
320 PRINT: FOR I=1 TO L: PRINT D$(I);: NEXT I: PRINT: PRINT
|
||||
330 INPUT "WHAT IS YOUR GUESS FOR THE WORD";B$
|
||||
340 IF A$=B$ THEN 360
|
||||
350 PRINT "WRONG. TRY ANOTHER LETTER.": PRINT: GOTO 170
|
||||
360 PRINT "RIGHT!! IT TOOK YOU";T1;"GUESSES!"
|
||||
370 INPUT "WANT ANOTHER WORD";W$: IF W$="YES" THEN 50
|
||||
380 PRINT: PRINT "IT'S BEEN FUN! BYE FOR NOW.": GOTO 999
|
||||
390 PRINT "YOU FOUND THE WORD!": GOTO 370
|
||||
400 PRINT: PRINT: PRINT"SORRY, THAT LETTER ISN'T IN THE WORD."
|
||||
410 ON M GOTO 415,420,425,430,435,440,445,450,455,460
|
||||
415 PRINT "FIRST, WE DRAW A HEAD": GOTO 470
|
||||
420 PRINT "NOW WE DRAW A BODY.": GOTO 470
|
||||
425 PRINT "NEXT WE DRAW AN ARM.": GOTO 470
|
||||
430 PRINT "THIS TIME IT'S THE OTHER ARM.": GOTO 470
|
||||
435 PRINT "NOW, LET'S DRAW THE RIGHT LEG.": GOTO 470
|
||||
440 PRINT "THIS TIME WE DRAW THE LEFT LEG.": GOTO 470
|
||||
445 PRINT "NOW WE PUT UP A HAND.": GOTO 470
|
||||
450 PRINT "NEXT THE OTHER HAND.": GOTO 470
|
||||
455 PRINT "NOW WE DRAW ONE FOOT": GOTO 470
|
||||
460 PRINT "HERE'S THE OTHER FOOT -- YOU'RE HUNG!!"
|
||||
470 ON M GOTO 480,490,500,510,520,530,540,550,560,570
|
||||
480 P$(3,6)="-": P$(3,7)="-": P$(3,8)="-": P$(4,5)="(": P$(4,6)="."
|
||||
481 P$(4,8)=".":P$(4,9)=")":P$(5,6)="-":P$(5,7)="-":P$(5,8)="-":GOTO 580
|
||||
490 FOR I=6 TO 9: P$(I,7)="X": NEXT I: GOTO 580
|
||||
500 FOR I=4 TO 7: P$(I,I-1)="\": NEXT I: GOTO 580
|
||||
510 P$(4,11)="/": P$(5,10)="/": P$(6,9)="/": P$(7,8)="/": GOTO 580
|
||||
520 P$(10,6)="/": P$(11,5)="/": GOTO 580
|
||||
530 P$(10,8)="\": P$(11,9)="\": GOTO 580
|
||||
540 P$(3,11)="\": GOTO 580
|
||||
550 P$(3,3)="/": GOTO 580
|
||||
560 P$(12,10)="\": P$(12,11)="-": GOTO 580
|
||||
570 P$(12,3)="-": P$(12,4)="/"
|
||||
580 FOR I=1 TO 12: FOR J=1 TO 12: PRINT P$(I,J);: NEXT J
|
||||
590 PRINT: NEXT I: PRINT: PRINT: IF M<>10 THEN 170
|
||||
600 PRINT "SORRY, YOU LOSE. THE WORD WAS ";A$
|
||||
610 PRINT "YOU MISSED THAT ONE. DO YOU ";: GOTO 370
|
||||
620 INPUT "TYPE YES OR NO";Y$: IF LEFT$(Y$,1)="Y" THEN 50
|
||||
700 DATA "GUM","SIN","FOR","CRY","LUG","BYE","FLY"
|
||||
710 DATA "UGLY","EACH","FROM","WORK","TALK","WITH","SELF"
|
||||
720 DATA "PIZZA","THING","FEIGN","FIEND","ELBOW","FAULT","DIRTY"
|
||||
730 DATA "BUDGET","SPIRIT","QUAINT","MAIDEN","ESCORT","PICKAX"
|
||||
740 DATA "EXAMPLE","TENSION","QUININE","KIDNEY","REPLICA","SLEEPER"
|
||||
750 DATA "TRIANGLE","KANGAROO","MAHOGANY","SERGEANT","SEQUENCE"
|
||||
760 DATA "MOUSTACHE","DANGEROUS","SCIENTIST","DIFFERENT","QUIESCENT"
|
||||
770 DATA "MAGISTRATE","ERRONEOUSLY","LOUDSPEAKER","PHYTOTOXIC"
|
||||
780 DATA "MATRIMONIAL","PARASYMPATHOMIMETIC","THIGMOTROPISM"
|
||||
990 PRINT "BYE NOW"
|
||||
999 END
|
||||
7
45 Hello/README.md
Normal file
7
45 Hello/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Hello
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=82
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
83
45 Hello/hello.bas
Normal file
83
45 Hello/hello.bas
Normal file
@@ -0,0 +1,83 @@
|
||||
2 PRINT TAB(33);"HELLO"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT: PRINT: PRINT
|
||||
10 PRINT "HELLO. MY NAME IS CREATIVE COMPUTER."
|
||||
20 PRINT: PRINT: INPUT "WHAT'S YOUR NAME";N$: PRINT
|
||||
30 PRINT "HI THERE, ";N$;", ARE YOU ENJOYING YOURSELF HERE";
|
||||
40 INPUT B$: PRINT
|
||||
50 IF B$="YES" THEN 70
|
||||
55 IF B$="NO" THEN 80
|
||||
60 PRINT N$;", I DON'T UNDERSTAND YOUR ANSWER OF '";B$;"'."
|
||||
65 PRINT "PLEASE ANSWER 'YES' OR 'NO'. DO YOU LIKE IT HERE";: GOTO 40
|
||||
70 PRINT "I'M GLAD TO HEAR THAT, ";N$;".": PRINT
|
||||
75 GOTO 100
|
||||
80 PRINT "OH, I'M SORRY TO HEAR THAT, ";N$;". MAYBE WE CAN"
|
||||
85 PRINT "BRIGHTEN UP YOUR VISIT A BIT."
|
||||
100 PRINT
|
||||
105 PRINT "SAY, ";N$;", I CAN SOLVE ALL KINDS OF PROBLEMS EXCEPT"
|
||||
110 PRINT "THOSE DEALING WITH GREECE. WHAT KIND OF PROBLEMS DO"
|
||||
120 PRINT "YOU HAVE (ANSWER SEX, HEALTH, MONEY, OR JOB)";
|
||||
125 INPUT C$
|
||||
126 PRINT
|
||||
130 IF C$="SEX" THEN 200
|
||||
132 IF C$="HEALTH" THEN 180
|
||||
134 IF C$="MONEY" THEN 160
|
||||
136 IF C$="JOB" THEN 145
|
||||
138 PRINT "OH, ";N$;", YOUR ANSWER OF ";C$;" IS GREEK TO ME."
|
||||
140 GOTO 250
|
||||
145 PRINT "I CAN SYMPATHIZE WITH YOU ";N$;". I HAVE TO WORK"
|
||||
148 PRINT "VERY LONG HOURS FOR NO PAY -- AND SOME OF MY BOSSES"
|
||||
150 PRINT "REALLY BEAT ON MY KEYBOARD. MY ADVICE TO YOU, ";N$;","
|
||||
153 PRINT "IS TO OPEN A RETAIL COMPUTER STORE. IT'S GREAT FUN."
|
||||
155 GOTO 250
|
||||
160 PRINT "SORRY, ";N$;", I'M BROKE TOO. WHY DON'T YOU SELL"
|
||||
162 PRINT "ENCYCLOPEADIAS OR MARRY SOMEONE RICH OR STOP EATING"
|
||||
164 PRINT "SO YOU WON'T NEED SO MUCH MONEY?"
|
||||
170 GOTO 250
|
||||
180 PRINT "MY ADVICE TO YOU ";N$;" IS:"
|
||||
185 PRINT " 1. TAKE TWO ASPRIN"
|
||||
188 PRINT " 2. DRINK PLENTY OF FLUIDS (ORANGE JUICE, NOT BEER!)"
|
||||
190 PRINT " 3. GO TO BED (ALONE)"
|
||||
195 GOTO 250
|
||||
200 INPUT "IS YOUR PROBLEM TOO MUCH OR TOO LITTLE";D$: PRINT
|
||||
210 IF D$="TOO MUCH" THEN 220
|
||||
212 IF D$="TOO LITTLE" THEN 230
|
||||
215 PRINT "DON'T GET ALL SHOOK, ";N$;", JUST ANSWER THE QUESTION"
|
||||
217 INPUT "WITH 'TOO MUCH' OR 'TOO LITTLE'. WHICH IS IT";D$:GOTO 210
|
||||
220 PRINT "YOU CALL THAT A PROBLEM?!! I SHOULD HAVE SUCH PROBLEMS!"
|
||||
225 PRINT "IF IT BOTHERS YOU, ";N$;", TAKE A COLD SHOWER."
|
||||
228 GOTO 250
|
||||
230 PRINT "WHY ARE YOU HERE IN SUFFERN, ";N$;"? YOU SHOULD BE"
|
||||
235 PRINT "IN TOKYO OR NEW YORK OR AMSTERDAM OR SOMEPLACE WITH SOME"
|
||||
240 PRINT "REAL ACTION."
|
||||
250 PRINT
|
||||
255 PRINT "ANY MORE PROBLEMS YOU WANT SOLVED, ";N$;
|
||||
260 INPUT E$: PRINT
|
||||
270 IF E$="YES" THEN 280
|
||||
273 IF E$="NO" THEN 300
|
||||
275 PRINT "JUST A SIMPLE 'YES' OR 'NO' PLEASE, ";N$;"."
|
||||
277 GOTO 255
|
||||
280 PRINT "WHAT KIND (SEX, MONEY, HEALTH, JOB)";
|
||||
282 GOTO 125
|
||||
300 PRINT
|
||||
302 PRINT "THAT WILL BE $5.00 FOR THE ADVICE, ";N$;"."
|
||||
305 PRINT "PLEASE LEAVE THE MONEY ON THE TERMINAL."
|
||||
307 FOR I=1 TO 2000: NEXT I
|
||||
310 PRINT: PRINT: PRINT
|
||||
315 PRINT "DID YOU LEAVE THE MONEY";
|
||||
320 INPUT G$: PRINT
|
||||
325 IF G$="YES" THEN 350
|
||||
330 IF G$="NO" THEN 370
|
||||
335 PRINT "YOUR ANSWER OF '";G$;"' CONFUSES ME, ";N$;"."
|
||||
340 PRINT "PLEASE RESPOND WITH 'YES' OR 'NO'.": GOTO 315
|
||||
350 PRINT "HEY, ";N$;"??? YOU LEFT NO MONEY AT ALL!"
|
||||
355 PRINT "YOU ARE CHEATING ME OUT OF MY HARD-EARNED LIVING."
|
||||
360 PRINT:PRINT "WHAT A RIP OFF, ";N$;"!!!":PRINT
|
||||
365 GOTO 385
|
||||
370 PRINT "THAT'S HONEST, ";N$;", BUT HOW DO YOU EXPECT"
|
||||
375 PRINT "ME TO GO ON WITH MY PSYCHOLOGY STUDIES IF MY PATIENTS"
|
||||
380 PRINT "DON'T PAY THEIR BILLS?"
|
||||
385 PRINT:PRINT "TAKE A WALK, ";N$;".":PRINT:PRINT:GOTO 999
|
||||
390 PRINT "NICE MEETING YOU, ";N$;", HAVE A NICE DAY."
|
||||
400 REM
|
||||
999 END
|
||||
7
46 Hexapawn/README.md
Normal file
7
46 Hexapawn/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Hexapawn
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=83
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
174
46 Hexapawn/hexapawn.bas
Normal file
174
46 Hexapawn/hexapawn.bas
Normal file
@@ -0,0 +1,174 @@
|
||||
1 PRINT TAB(32);"HEXAPAWN"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
4 REM HEXAPAWN: INTERPRETATION OF HEXAPAWN GAME AS PRESENTED IN
|
||||
5 REM MARTIN GARDNER'S "THE UNEXPECTED HANGING AND OTHER MATHEMATIC-
|
||||
6 REM AL DIVERSIONS", CHAPTER EIGHT: A MATCHBOX GAME-LEARNING MACHINE
|
||||
7 REM ORIGINAL VERSION FOR H-P TIMESHARE SYSTEM BY R.A. KAAPKE 5/5/76
|
||||
8 REM INSTRUCTIONS BY JEFF DALTON
|
||||
9 REM CONVERSION TO MITS BASIC BY STEVE NORTH
|
||||
10 DIM B(19,9),M(19,4),S(9),P$(3)
|
||||
15 W=0: L=0
|
||||
20 DEF FNR(X)=-3*(X=1)-(X=3)-4*(X=6)-6*(X=4)-7*(X=9)-9*(X=7)+FNS(X)
|
||||
25 DEF FNS(X)=-X*(X=2 OR X=5 OR X=8)
|
||||
30 DEF FNM(Y)=Y-INT(Y/10)*10
|
||||
35 P$="X.O"
|
||||
40 FOR I=1 TO 19: FOR J=1 TO 9: READ B(I,J): NEXT J: NEXT I
|
||||
45 FOR I=1 TO 19: FOR J=1 TO 4: READ M(I,J): NEXT J: NEXT I
|
||||
50 PRINT "INSTRUCTIONS (Y-N)";
|
||||
60 INPUT A$
|
||||
70 A$=LEFT$(A$,1)
|
||||
80 IF A$="Y" THEN 2000
|
||||
90 IF A$<>"N" THEN 50
|
||||
100 X=0: Y=0
|
||||
111 S(4)=0: S(5)=0: S(6)=0
|
||||
112 S(1)=-1: S(2)=-1: S(3)=-1
|
||||
113 S(7)=1: S(8)=1: S(9)=1
|
||||
115 GOSUB 1000
|
||||
120 PRINT "YOUR MOVE";
|
||||
121 INPUT M1,M2
|
||||
122 IF M1=INT(M1)AND M2=INT(M2)AND M1>0 AND M1<10 AND M2>0 AND M2<10 THEN 130
|
||||
123 PRINT "ILLEGAL CO-ORDINATES."
|
||||
124 GOTO 120
|
||||
130 IF S(M1)=1 THEN 150
|
||||
140 PRINT "ILLEGAL MOVE.": GOTO 120
|
||||
150 IF S(M2)=1 THEN 140
|
||||
160 IF M2-M1<>-3 AND S(M2)<>-1 THEN 140
|
||||
170 IF M2>M1 THEN 140
|
||||
180 IF M2-M1=-3 AND (S(M2)<>0) THEN 140
|
||||
185 IF M2-M1<-4 THEN 140
|
||||
186 IF M1=7 AND M2=3 THEN 140
|
||||
190 S(M1)=0
|
||||
200 S(M2)=1
|
||||
205 GOSUB 1000
|
||||
210 IF S(1)=1 OR S(2)=1 OR S(3)=1 THEN 820
|
||||
220 FOR I=1 TO 9
|
||||
221 IF S(I)=-1 THEN 230
|
||||
222 NEXT I
|
||||
223 GOTO 820
|
||||
230 FOR I=1 TO 9
|
||||
240 IF S(I)<>-1 THEN 330
|
||||
250 IF S(I+3)=0 THEN 350
|
||||
260 IF FNR(I)=I THEN 320
|
||||
270 IF I>3 THEN 300
|
||||
280 IF S(5)=1 THEN 350
|
||||
290 GOTO 330
|
||||
300 IF S(8)=1 THEN 350
|
||||
310 GOTO 330
|
||||
320 IF S(I+2)=1 OR S(I+4)=1 THEN 350
|
||||
330 NEXT I
|
||||
340 GOTO 820
|
||||
350 FOR I=1 TO 19
|
||||
360 FOR J=1 TO 3
|
||||
370 FOR K=3 TO 1 STEP -1
|
||||
380 T((J-1)*3+K)=B(I,(J-1)*3+4-K)
|
||||
390 NEXT K
|
||||
400 NEXT J
|
||||
410 FOR J=1 TO 9
|
||||
420 IF S(J)<>B(I,J) THEN 460
|
||||
430 NEXT J
|
||||
440 R=0
|
||||
450 GOTO 540
|
||||
460 FOR J=1 TO 9
|
||||
470 IF S(J)<>T(J) THEN 510
|
||||
480 NEXT J
|
||||
490 R=1
|
||||
500 GOTO 540
|
||||
510 NEXT I
|
||||
511 REMEMBER THE TERMINATION OF THIS LOOP IS IMPOSSIBLE
|
||||
512 PRINT "ILLEGAL BOARD PATTERN."
|
||||
530 STOP
|
||||
540 X=I
|
||||
550 FOR I=1 TO 4
|
||||
560 IF M(X,I)<>0 THEN 600
|
||||
570 NEXT I
|
||||
580 PRINT "I RESIGN."
|
||||
590 GOTO 820
|
||||
600 Y=INT(RND(1)*4+1)
|
||||
601 IF M(X,Y)=0 THEN 600
|
||||
610 IF R<>0 THEN 630
|
||||
620 PRINT "I MOVE FROM ";STR$(INT(M(X,Y)/10));" TO ";STR$(FNM(M(X,Y)))
|
||||
622 S(INT(M(X,Y)/10))=0
|
||||
623 S(FNM(M(X,Y)))=-1
|
||||
624 GOTO 640
|
||||
630 PRINT "I MOVE FROM ";STR$(FNR(INT(M(X,Y)/10)));" TO ";
|
||||
631 PRINT STR$(FNR(FNM(M(X,Y))))
|
||||
632 S(FNR(INT(M(X,Y)/10)))=0
|
||||
633 S(FNR(FNM(M(X,Y))))=-1
|
||||
640 GOSUB 1000
|
||||
641 IF S(7)=-1 OR S(8)=-1 OR S(9)=-1 THEN 870
|
||||
650 FOR I=1 TO 9
|
||||
660 IF S(I)=1 THEN 690
|
||||
670 NEXT I
|
||||
680 GOTO 870
|
||||
690 FOR I=1 TO 9
|
||||
700 IF S(I)<>1 THEN 790
|
||||
710 IF S(I-3)=0 THEN 120
|
||||
720 IF FNR(I)=I THEN 780
|
||||
730 IF I<7 THEN 760
|
||||
740 IF S(5)=-1 THEN 120
|
||||
750 GOTO 790
|
||||
760 IF S(2)=-1 THEN 120
|
||||
770 GOTO 790
|
||||
780 IF S(I-2)=-1 OR S(I-4)=-1 THEN 120
|
||||
790 NEXT I
|
||||
800 PRINT "YOU CAN'T MOVE, SO ";
|
||||
810 GOTO 870
|
||||
820 PRINT "YOU WIN."
|
||||
830 M(X,Y)=0
|
||||
840 L=L+1
|
||||
850 PRINT "I HAVE WON";W;"AND YOU";L;"OUT OF";L+W;"GAMES."
|
||||
851 PRINT
|
||||
860 GOTO 100
|
||||
870 PRINT "I WIN."
|
||||
880 W=W+1
|
||||
890 GOTO 850
|
||||
900 DATA -1,-1,-1,1,0,0,0,1,1,-1,-1,-1,0,1,0,1,0,1
|
||||
905 DATA -1,0,-1,-1,1,0,0,0,1,0,-1,-1,1,-1,0,0,0,1
|
||||
910 DATA -1,0,-1,1,1,0,0,1,0,-1,-1,0,1,0,1,0,0,1
|
||||
915 DATA 0,-1,-1,0,-1,1,1,0,0,0,-1,-1,-1,1,1,1,0,0
|
||||
920 DATA -1,0,-1,-1,0,1,0,1,0,0,-1,-1,0,1,0,0,0,1
|
||||
925 DATA 0,-1,-1,0,1,0,1,0,0,-1,0,-1,1,0,0,0,0,1
|
||||
930 DATA 0,0,-1,-1,-1,1,0,0,0,-1,0,0,1,1,1,0,0,0
|
||||
935 DATA 0,-1,0,-1,1,1,0,0,0,-1,0,0,-1,-1,1,0,0,0
|
||||
940 DATA 0,0,-1,-1,1,0,0,0,0,0,-1,0,1,-1,0,0,0,0
|
||||
945 DATA -1,0,0,-1,1,0,0,0,0
|
||||
950 DATA 24,25,36,0,14,15,36,0,15,35,36,47,36,58,59,0
|
||||
955 DATA 15,35,36,0,24,25,26,0,26,57,58,0
|
||||
960 DATA 26,35,0,0,47,48,0,0,35,36,0,0,35,36,0,0
|
||||
965 DATA 36,0,0,0,47,58,0,0,15,0,0,0
|
||||
970 DATA 26,47,0,0,47,58,0,0,35,36,47,0,28,58,0,0,15,47,0,0
|
||||
1000 PRINT
|
||||
1010 FOR I=1 TO 3
|
||||
1020 FOR J=1 TO 3
|
||||
1030 PRINT TAB(10);MID$(P$,S((I-1)*3+J)+2,1);
|
||||
1040 NEXT J
|
||||
1050 PRINT
|
||||
1060 NEXT I
|
||||
1070 PRINT
|
||||
1080 RETURN
|
||||
2000 PRINT: PRINT "THIS PROGRAM PLAYS THE GAME OF HEXAPAWN."
|
||||
2010 PRINT "HEXAPAWN IS PLAYED WITH CHESS PAWNS ON A 3 BY 3 BOARD."
|
||||
2020 PRINT "THE PAWNS ARE MOVED AS IN CHESS - ONE SPACE FORWARD TO"
|
||||
2030 PRINT "AN EMPTY SPACE OR ONE SPACE FORWARD AND DIAGONALLY TO"
|
||||
2040 PRINT "CAPTURE AN OPPOSING MAN. ON THE BOARD, YOUR PAWNS"
|
||||
2050 PRINT "ARE 'O', THE COMPUTER'S PAWNS ARE 'X', AND EMPTY "
|
||||
2060 PRINT "SQUARES ARE '.'. TO ENTER A MOVE, TYPE THE NUMBER OF"
|
||||
2070 PRINT "THE SQUARE YOU ARE MOVING FROM, FOLLOWED BY THE NUMBER"
|
||||
2080 PRINT "OF THE SQUARE YOU WILL MOVE TO. THE NUMBERS MUST BE"
|
||||
2090 PRINT "SEPERATED BY A COMMA.": PRINT
|
||||
2100 PRINT "THE COMPUTER STARTS A SERIES OF GAMES KNOWING ONLY WHEN"
|
||||
2105 PRINT "THE GAME IS WON (A DRAW IS IMPOSSIBLE) AND HOW TO MOVE."
|
||||
2110 PRINT "IT HAS NO STRATEGY AT FIRST AND JUST MOVES RANDOMLY."
|
||||
2120 PRINT "HOWEVER, IT LEARNS FROM EACH GAME. THUS, WINNING BECOMES"
|
||||
2130 PRINT "MORE AND MORE DIFFICULT. ALSO, TO HELP OFFSET YOUR"
|
||||
2140 PRINT "INITIAL ADVANTAGE, YOU WILL NOT BE TOLD HOW TO WIN THE"
|
||||
2150 PRINT "GAME BUT MUST LEARN THIS BY PLAYING."
|
||||
2160 PRINT: PRINT "THE NUMBERING OF THE BOARD IS AS FOLLOWS:"
|
||||
2170 PRINT TAB(10);"123": PRINT TAB(10);"456": PRINT TAB(10);"789"
|
||||
2180 PRINT: PRINT "FOR EXAMPLE, TO MOVE YOUR RIGHTMOST PAWN FORWARD,"
|
||||
2190 PRINT "YOU WOULD TYPE 9,6 IN RESPONSE TO THE QUESTION"
|
||||
2200 PRINT "'YOUR MOVE ?'. SINCE I'M A GOOD SPORT, YOU'LL ALWAYS"
|
||||
2210 PRINT "GO FIRST.": PRINT
|
||||
2220 GOTO 100
|
||||
9999 END
|
||||
7
47 Hi-Lo/README.md
Normal file
7
47 Hi-Lo/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Hi-Lo
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=85
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
29
47 Hi-Lo/hi-lo.bas
Normal file
29
47 Hi-Lo/hi-lo.bas
Normal file
@@ -0,0 +1,29 @@
|
||||
10 PRINT TAB(34);"HI LO"
|
||||
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT:PRINT:PRINT
|
||||
100 PRINT "THIS IS THE GAME OF HI LO.":PRINT
|
||||
110 PRINT "YOU WILL HAVE 6 TRIES TO GUESS THE AMOUNT OF MONEY IN THE"
|
||||
120 PRINT "HI LO JACKPOT, WHICH IS BETWEEN 1 AND 100 DOLLARS. IF YOU"
|
||||
130 PRINT "GUESS THE AMOUNT, YOU WIN ALL THE MONEY IN THE JACKPOT!"
|
||||
140 PRINT "THEN YOU GET ANOTHER CHANCE TO WIN MORE MONEY. HOWEVER,"
|
||||
150 PRINT "IF YOU DO NOT GUESS THE AMOUNT, THE GAME ENDS.":PRINT
|
||||
160 R=0
|
||||
170 B=0:PRINT
|
||||
180 Y=INT(100*RND(1))
|
||||
200 PRINT "YOUR GUESS";
|
||||
210 INPUT A
|
||||
220 B=B+1
|
||||
230 IF A=Y THEN 300
|
||||
240 IF A>Y THEN 270
|
||||
250 PRINT "YOUR GUESS IS TOO LOW.":GOTO 280
|
||||
270 PRINT "YOUR GUESS IS TOO HIGH."
|
||||
280 PRINT:IF B<6 THEN 200
|
||||
290 PRINT "YOU BLEW IT...TOO BAD...THE NUMBER WAS";Y
|
||||
295 R=0:GOTO 350
|
||||
300 PRINT "GOT IT!!!!!!!!!! YOU WIN";Y;"DOLLARS."
|
||||
310 R=R+Y
|
||||
320 PRINT "YOUR TOTAL WINNINGS ARE NOW";R;"DOLLARS."
|
||||
350 PRINT:PRINT "PLAY AGAIN (YES OR NO)";
|
||||
360 INPUT A$:IF A$="YES" THEN 170
|
||||
380 PRINT:PRINT "SO LONG. HOPE YOU ENJOYED YOURSELF!!!"
|
||||
390 END
|
||||
7
48 High IQ/README.md
Normal file
7
48 High IQ/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### High IQ
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=86
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
135
48 High IQ/highiq.bas
Normal file
135
48 High IQ/highiq.bas
Normal file
@@ -0,0 +1,135 @@
|
||||
1 PRINT TAB(33);"H-I-Q"
|
||||
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
3 PRINT:PRINT:PRINT
|
||||
4 DIM B(70),T(9,9)
|
||||
5 PRINT "HERE IS THE BOARD:": PRINT
|
||||
6 PRINT " ! ! !"
|
||||
7 PRINT " 13 14 15": PRINT
|
||||
8 PRINT " ! ! !"
|
||||
9 PRINT " 22 23 24": PRINT
|
||||
10 PRINT "! ! ! ! ! ! !"
|
||||
11 PRINT "29 30 31 32 33 34 35": PRINT
|
||||
12 PRINT "! ! ! ! ! ! !"
|
||||
13 PRINT "38 39 40 41 42 43 44": PRINT
|
||||
14 PRINT "! ! ! ! ! ! !"
|
||||
15 PRINT "47 48 49 50 51 52 53": PRINT
|
||||
16 PRINT " ! ! !"
|
||||
17 PRINT " 58 59 60": PRINT
|
||||
18 PRINT " ! ! !"
|
||||
19 PRINT " 67 68 69": PRINT
|
||||
20 PRINT "TO SAVE TYPING TIME, A COMPRESSED VERSION OF THE GAME BOARD"
|
||||
22 PRINT "WILL BE USED DURING PLAY. REFER TO THE ABOVE ONE FOR PEG"
|
||||
24 PRINT "NUMBERS. OK, LET'S BEGIN."
|
||||
28 REM *** SET UP BOARD
|
||||
29 FOR R=1 TO 9
|
||||
30 FOR C=1 TO 9
|
||||
31 IF (R-4)*(R-5)*(R-6)=0 THEN 40
|
||||
32 IF (C-4)*(C-5)*(C-6)=0 THEN 40
|
||||
35 T(R,C)=-5
|
||||
36 GOTO 50
|
||||
40 IF (R-1)*(C-1)*(R-9)*(C-9)=0 THEN 35
|
||||
42 T(R,C)=5
|
||||
50 NEXT C
|
||||
60 NEXT R
|
||||
65 T(5,5)=0: GOSUB 500
|
||||
70 REM *** INPUT MOVE AND CHECK ON LEGALITY
|
||||
75 FOR W=1 TO 33
|
||||
77 READ M
|
||||
79 DATA 13,14,15,22,23,24,29,30,31,32,33,34,35,38,39,40,41
|
||||
81 DATA 42,43,44,47,48,49,50,51,52,53,58,59,60,67,68,69
|
||||
83 B(M)=-7: NEXT W
|
||||
86 B(41)=-3
|
||||
100 INPUT "MOVE WHICH PIECE";Z
|
||||
110 IF B(Z)=-7 THEN 140
|
||||
120 PRINT "ILLEGAL MOVE, TRY AGAIN...": GOTO 100
|
||||
140 INPUT "TO WHERE";P
|
||||
150 IF B(P)=0 THEN 120
|
||||
153 IF B(P)=-7 THEN 120
|
||||
156 IF Z=P THEN 100
|
||||
160 IF ((Z+P)/2)=INT((Z+P)/2) THEN 180
|
||||
170 GOTO 120
|
||||
180 IF (ABS(Z-P)-2)*(ABS(Z-P)-18)<>0 THEN 120
|
||||
190 GOSUB 1000
|
||||
200 GOSUB 500
|
||||
210 GOSUB 1500
|
||||
220 GOTO 100
|
||||
500 REM *** PRINT BOARD
|
||||
510 FOR X=1 TO 9
|
||||
520 FOR Y=1 TO 9
|
||||
525 IF (X-1)*(X-9)*(Y-1)*(Y-9)=0 THEN 550
|
||||
530 IF (X-4)*(X-5)*(X-6)=0 THEN 570
|
||||
540 IF (Y-4)*(Y-5)*(Y-6)=0 THEN 570
|
||||
550 REM
|
||||
560 GOTO 610
|
||||
570 IF T(X,Y)<>5 THEN 600
|
||||
580 PRINT TAB(Y*2);"!";
|
||||
590 GOTO 610
|
||||
600 PRINT TAB(Y*2);"O";
|
||||
610 REM
|
||||
615 NEXT Y
|
||||
620 PRINT
|
||||
630 NEXT X
|
||||
640 RETURN
|
||||
1000 REM *** UPDATE BOARD
|
||||
1005 C=1: FOR X=1 TO 9
|
||||
1020 FOR Y=1 TO 9
|
||||
1030 IF C<>Z THEN 1220
|
||||
1040 IF C+2<>P THEN 1080
|
||||
1045 IF T(X,Y+1)=0 THEN 120
|
||||
1050 T(X,Y+2)=5
|
||||
1060 T(X,Y+1)=0: B(C+1)=-3
|
||||
1070 GOTO 1200
|
||||
1080 IF C+18<>P THEN 1130
|
||||
1085 IF T(X+1,Y)=0 THEN 120
|
||||
1090 T(X+2,Y)=5: T(X+1,Y)=0: B(C+9)=-3
|
||||
1120 GOTO 1200
|
||||
1130 IF C-2<>P THEN 1170
|
||||
1135 IF T(X,Y-1)=0 THEN 120
|
||||
1140 T(X,Y-2)=5: T(X,Y-1)=0: B(C-1)=-3
|
||||
1160 GOTO 1200
|
||||
1170 IF C-18<>P THEN 1220
|
||||
1175 IF T(X-1,Y)=0 THEN 120
|
||||
1180 T(X-2,Y)=5: T(X-1,Y)=0: B(C-9)=-3
|
||||
1200 B(Z)=-3: B(P)=-7
|
||||
1210 T(X,Y)=0: GOTO 1240
|
||||
1220 C=C+1
|
||||
1225 NEXT Y
|
||||
1230 NEXT X
|
||||
1240 RETURN
|
||||
1500 REM*** CHECK IF GAME IS OVER
|
||||
1505 F=0
|
||||
1510 FOR R=2 TO 8
|
||||
1520 FOR C=2 TO 8
|
||||
1530 IF T(R,C)<>5 THEN 1580
|
||||
1535 F=F+1
|
||||
1540 FOR A=R-1 TO R+1
|
||||
1545 T=0
|
||||
1550 FOR B=C-1 TO C+1
|
||||
1560 T=T+T(A,B)
|
||||
1561 NEXT B
|
||||
1564 IF T<>10 THEN 1567
|
||||
1565 IF T(A,C)<>0 THEN 1630
|
||||
1567 NEXT A
|
||||
1568 FOR X=C-1 TO C+1
|
||||
1569 T=0
|
||||
1570 FOR Y=R-1 TO R+1
|
||||
1571 T=T+T(Y,X)
|
||||
1572 NEXT Y
|
||||
1573 IF T<>10 THEN 1575
|
||||
1574 IF T(R,X)<>0 THEN 1630
|
||||
1575 NEXT X
|
||||
1580 NEXT C
|
||||
1590 NEXT R
|
||||
1600 REM *** GAME IS OVER
|
||||
1605 PRINT "THE GAME IS OVER."
|
||||
1610 PRINT "YOU HAD";F;"PIECES REMAINING."
|
||||
1611 IF F<>1 THEN 1615
|
||||
1612 PRINT "BRAVO! YOU MADE A PERFECT SCORE!"
|
||||
1613 PRINT "SAVE THIS PAPER AS A RECORD OF YOUR ACCOMPLISHMENT!"
|
||||
1615 PRINT: INPUT "PLAY AGAIN (YES OR NO)";A$
|
||||
1617 IF A$="NO" THEN 2000
|
||||
1618 RESTORE: GOTO 28
|
||||
1620 STOP
|
||||
1630 RETURN
|
||||
2000 PRINT: PRINT "SO LONG FOR NOW.": PRINT
|
||||
2010 END
|
||||
7
49 Hockey/README.md
Normal file
7
49 Hockey/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
### Hockey
|
||||
|
||||
As published in Basic Computer Games (1978)
|
||||
https://www.atariarchives.org/basicgames/showpage.php?page=88
|
||||
|
||||
Downloaded from Vintage Basic at
|
||||
http://www.vintage-basic.net/games.html
|
||||
210
49 Hockey/hockey.bas
Normal file
210
49 Hockey/hockey.bas
Normal file
@@ -0,0 +1,210 @@
|
||||
2 PRINT TAB(33);"HOCKEY"
|
||||
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
6 PRINT:PRINT:PRINT
|
||||
10 REM ROBERT PUOPOLO ALG. 1 140 MCCOWAN 6/7/73 HOCKEY
|
||||
30 LET X=1
|
||||
40 PRINT:PRINT:PRINT
|
||||
50 PRINT "WOULD YOU LIKE THE INSTRUCTIONS";:INPUT C$
|
||||
55 PRINT
|
||||
60 IF C$="NO" THEN 90
|
||||
65 IF C$="YES" THEN 80
|
||||
70 PRINT "ANSWER YES OR NO!!":GOTO 50
|
||||
80 GOTO 1720
|
||||
90 DIM A$(7),B$(7),H(20),T(5),T1(5),T2(5),T3(5)
|
||||
100 PRINT "ENTER THE TWO TEAMS";:INPUT A$(7),B$(7)
|
||||
105 PRINT
|
||||
110 PRINT "ENTER THE NUMBER OF MINUTES IN A GAME";:INPUT T6
|
||||
115 PRINT
|
||||
120 IF T6<1 THEN 110:PRINT
|
||||
130 PRINT "WOULD THE " A$(7) " COACH ENTER HIS TEAM"
|
||||
135 PRINT
|
||||
140 FOR I=1 TO 6:PRINT "PLAYER"I;:INPUT A$(I):NEXT I:PRINT
|
||||
150 PRINT "WOULD THE " B$(7) " COACH DO THE SAME"
|
||||
155 PRINT
|
||||
160 FOR T=1 TO 6:PRINT "PLAYER"T;:INPUT B$(T):NEXT T:PRINT
|
||||
170 PRINT "INPUT THE REFEREE FOR THIS GAME";:INPUT R$
|
||||
180 PRINT:PRINT TAB(10);A$(7) " STARTING LINEUP"
|
||||
190 FOR T=1 TO 6:PRINT A$(T):NEXT T
|
||||
200 PRINT:PRINT TAB(10);B$(7)" STARTING LINEUP"
|
||||
210 FOR T=1 TO 6:PRINT B$(T):NEXT T:PRINT
|
||||
220 PRINT "WE'RE READY FOR TONIGHTS OPENING FACE-OFF."
|
||||
230 PRINT R$ " WILL DROP THE PUCK BETWEEN " A$(2) " AND " B$(2)
|
||||
240 FOR L=1 TO T6:IF L=1 THEN 260
|
||||
250 PRINT "AND WE'RE READY FOR THE FACE-OFF"
|
||||
260 C=INT(2*RND(X))+1:ON C GOTO 270,280
|
||||
270 PRINT A$(7) " HAS CONTROL OF THE PUCK":GOTO 290
|
||||
280 PRINT B$(7) " HAS CONTROL."
|
||||
290 PRINT "PASS";:INPUT P:FOR N=1 TO 3:H(N)=0:NEXT N
|
||||
300 IF P<0 THEN 290
|
||||
305 IF P>3 THEN 290
|
||||
310 FOR J=1 TO (P+2)
|
||||
320 H(J)=INT(5*RND(X))+1
|
||||
330 NEXT J:IF H(J-1)=H(J-2) THEN 310
|
||||
331 IF P+2<3 THEN 350
|
||||
335 IF H(J-1)=H(J-3) THEN 310
|
||||
340 IF H(J-2)=H(J-3) THEN 310
|
||||
350 IF P=0 THEN 360
|
||||
355 GOTO 490
|
||||
360 INPUT "SHOT";S:IF S<1 THEN 360
|
||||
365 IF S>4 THEN 360
|
||||
370 ON C GOTO 380,480
|
||||
380 PRINT A$(H(J-1));:G=H(J-1):G1=0:G2=0
|
||||
390 ON S GOTO 400,420,440,460
|
||||
400 PRINT " LET'S A BOOMER GO FROM THE RED LINE!!"
|
||||
410 Z=10:GOTO 890
|
||||
420 PRINT " FLIPS A WRISTSHOT DOWN THE ICE"
|
||||
440 PRINT " BACKHANDS ONE IN ON THE GOALTENDER"
|
||||
450 Z=25:GOTO 890
|
||||
460 PRINT " SNAPS A LONG FLIP SHOT"
|
||||
470 Z=17:GOTO 890
|
||||
480 PRINT B$(H(J-1));:G1=0:G2=0:G=H(J-1):GOTO 390
|
||||
490 ON C GOTO 500,640
|
||||
500 ON P GOTO 510,540,570
|
||||
510 PRINT A$(H(J-2)) " LEADS " A$(H(J-1)) " WITH A PERFECT PASS."
|
||||
520 PRINT A$(H(J-1)) " CUTTING IN!!!"
|
||||
530 G=H(J-1):G1=H(J-2):G2=0:Z1=3:GOTO 770
|
||||
540 PRINT A$(H(J-2)) " GIVES TO A STREAKING " A$(H(J-1))
|
||||
550 PRINT A$(H(J-3)) " COMES DOWN ON " B$(5) " AND " B$(4)
|
||||
560 G=H(J-3):G1=H(J-1):G2=H(J-2):Z1=2:GOTO 770
|
||||
570 PRINT "OH MY GOD!! A ' 4 ON 2 ' SITUATION"
|
||||
580 PRINT A$(H(J-3)) " LEADS " A$(H(J-2))
|
||||
590 PRINT A$(H(J-2)) " IS WHEEELING THROUGH CENTER."
|
||||
600 PRINT A$(H(J-2)) " GIVES AND GOES WITH " A$(H(J-1))
|
||||
610 PRINT "PRETTY PASSING!"
|
||||
620 PRINT A$(H(J-1)) " DROPS IT TO " A$(H(J-4))
|
||||
630 G=H(J-4):G1=J(J-1):G2=H(J-2):Z1=1:GOTO 770
|
||||
640 ON P GOTO 650,670,720
|
||||
650 PRINT B$(H(J-1)) " HITS " B$(H(J-2)) " FLYING DOWN THE LEFT SIDE"
|
||||
660 G=H(J-2):G1=H(J-1):G2=0:Z1=3:GOTO 770
|
||||
670 PRINT "IT'S A ' 3 ON 2 '!"
|
||||
680 PRINT "ONLY " A$(4) " AND " A$(5) " ARE BACK."
|
||||
690 PRINT B$(H(J-2)) " GIVES OFF TO " B$(H(J-1))
|
||||
700 PRINT B$(H(J-1)) " DROPS TO " B$(H(J-3))
|
||||
710 G=H(J-3):G1=H(J-1):G2=H(J-2):Z1=2:GOTO 770
|
||||
720 PRINT " A ' 3 ON 2 ' WITH A ' TRAILER '!"
|
||||
730 PRINT B$(H(J-4)) " GIVES TO " B$(H(J-2)) " WHO SHUFFLES IT OFF TO"
|
||||
740 PRINT B$(H(J-1)) " WHO FIRES A WING TO WING PASS TO "
|
||||
750 PRINT B$(H(J-3)) " AS HE CUTS IN ALONE!!"
|
||||
760 G=H(J-3):G1=H(J-1):G2=H(J-2):Z1=1:GOTO 770
|
||||
770 PRINT "SHOT";:INPUT S:IF S>4 THEN 770:IF S<1 THEN 770
|
||||
780 ON C GOTO 790,880
|
||||
790 PRINT A$(G);:ON S GOTO 800,820,840,860
|
||||
800 PRINT " LET'S A BIG SLAP SHOT GO!!"
|
||||
810 Z=4:Z=Z+Z1:GOTO 890
|
||||
820 PRINT " RIPS A WRIST SHOT OFF"
|
||||
830 Z=2:Z=Z+Z1:GOTO 890
|
||||
840 PRINT " GETS A BACKHAND OFF"
|
||||
850 Z=3:Z=Z+Z1:GOTO 890
|
||||
860 PRINT " SNAPS OFF A SNAP SHOT"
|
||||
870 Z=2:Z=Z+Z1:GOTO 890
|
||||
880 PRINT B$(G);:ON S GOTO 800,820,840,860
|
||||
890 PRINT "AREA";:INPUT A:IF A<1 THEN 890
|
||||
895 IF A>4 THEN 890
|
||||
900 ON C GOTO 910,920
|
||||
910 S2=S2+1:GOTO 930
|
||||
920 S3=S3+1
|
||||
930 A1=INT(4*RND(X))+1:IF A<>A1 THEN 1200
|
||||
940 H(20)=INT(100*RND(X))+1
|
||||
950 IF INT(H(20)/Z)=H(20)/Z THEN 1160
|
||||
960 ON C GOTO 970,980
|
||||
970 PRINT "GOAL " A$(7):H(9)=H(9)+1:GOTO 990
|
||||
980 PRINT "SCORE " B$(7):H(8)=H(8)+1
|
||||
990 FOR B1=1 TO 25:PRINT CHR$(7);:NEXT B1:PRINT
|
||||
1000 PRINT "SCORE: ";:IF H(8)>H(9) THEN 1020
|
||||
1010 PRINT A$(7)":";H(9),B$(7)":";H(8):GOTO 1030
|
||||
1020 PRINT B$(7)":";H(8),A$(7)":";H(9)
|
||||
1030 ON C GOTO 1040,1100
|
||||
1040 PRINT "GOAL SCORED BY: " A$(G):IF G1=0 THEN 1070
|
||||
1050 IF G2=0 THEN 1080
|
||||
1060 PRINT " ASSISTED BY: " A$(G1) " AND " A$(G2):GOTO 1090
|
||||
1070 PRINT " UNASSISTED.":GOTO 1090
|
||||
1080 PRINT " ASSISTED BY: " A$(G1)
|
||||
1090 T(G)=T(G)+1:T1(G1)=T1(G1)+1:T1(G2)=T1(G2)+1:GOTO 1540
|
||||
1100 PRINT "GOAL SCORED BY: " B$(G);
|
||||
1110 IF G1=0 THEN 1130
|
||||
1115 IF G2=0 THEN 1140
|
||||
1120 PRINT " ASSISTED BY: " B$(G1) " AND " B$(G2):GOTO 1150
|
||||
1130 PRINT " UNASSISTED":GOTO 1150
|
||||
1140 PRINT " ASSISTED BY: " B$(G1):GOTO 1150
|
||||
1150 T2(G)=T2(G)+1:T3(G1)=T3(G1)+1:T3(G2)=T3(G2)+1:GOTO 1540
|
||||
1160 A2=INT(100*RND(X))+1:IF INT(A2/4)=A2/4 THEN 1170
|
||||
1165 GOTO 1200
|
||||
1170 ON C GOTO 1180,1190
|
||||
1180 PRINT "SAVE " B$(6) " -- REBOUND":GOTO 940
|
||||
1190 PRINT "SAVE " A$(6) " -- FOLLOW UP":GOTO 940
|
||||
1200 S1=INT(6*RND(X))+1
|
||||
1210 ON C GOTO 1220,1380
|
||||
1220 ON S1 GOTO 1230,1260,1290,1300,1330,1350
|
||||
1230 PRINT "KICK SAVE AND A BEAUTY BY " B$(6)
|
||||
1240 PRINT "CLEARED OUT BY " B$(3)
|
||||
1250 GOTO 260
|
||||
1260 PRINT "WHAT A SPECTACULAR GLOVE SAVE BY " B$(6)
|
||||
1270 PRINT "AND " B$(6) " GOLFS IT INTO THE CROWD"
|
||||
1280 GOTO 1540
|
||||
1290 PRINT "SKATE SAVE ON A LOW STEAMER BY " B$(6):GOTO 260
|
||||
1300 PRINT "PAD SAVE BY " B$(6) " OFF THE STICK"
|
||||
1310 PRINT "OF "A$(G) " AND " B$(6) " COVERS UP"
|
||||
1320 GOTO 1540
|
||||
1330 PRINT "WHISTLES ONE OVER THE HEAD OF " B$(6)
|
||||
1340 GOTO 260
|
||||
1350 PRINT B$(6) " MAKES A FACE SAVE!! AND HE IS HURT"
|
||||
1360 PRINT "THE DEFENSEMAN " B$(5) " COVERS UP FOR HIM"
|
||||
1370 GOTO 1540
|
||||
1380 ON S1 GOTO 1390,1410,1440,1470,1490,1520
|
||||
1390 PRINT "STICK SAVE BY " A$(6)
|
||||
1400 PRINT "AND CLEARED OUT BY " A$(4):GOTO 260
|
||||
1410 PRINT "OH MY GOD!! " B$(G) " RATTLES ONE OFF THE POST"
|
||||
1420 PRINT "TO THE RIGHT OF " A$(6) " AND " A$(6) " COVERS ";
|
||||
1430 PRINT "ON THE LOOSE PUCK!":GOTO 1540
|
||||
1440 PRINT "SKATE SAVE BY " A$(6)
|
||||
1450 PRINT A$(6) " WHACKS THE LOOSE PUCK INTO THE STANDS"
|
||||
1460 GOTO 1540
|
||||
1470 PRINT "STICK SAVE BY " A$(6) " AND HE CLEARS IT OUT HIMSELF"
|
||||
1480 GOTO 260
|
||||
1490 PRINT "KICKED OUT BY " A$(6)
|
||||
1500 PRINT "AND IT REBOUNDS ALL THE WAY TO CENTER ICE"
|
||||
1510 GOTO 260
|
||||
1520 PRINT "GLOVE SAVE " A$(6) " AND HE HANGS ON"
|
||||
1530 GOTO 1540
|
||||
1540 NEXT L:FOR N=1 TO 30:PRINT CHR$(7);:NEXT N:PRINT "THAT'S THE SIREN"
|
||||
1550 PRINT:PRINT TAB(15);"FINAL SCORE:"
|
||||
1560 IF H(8)>H(9) THEN 1580
|
||||
1570 PRINT A$(7)":";H(9),B$(7)":";H(8):GOTO 1590
|
||||
1580 PRINT B$(7)":";H(8),A$(7)":";H(9)
|
||||
1590 PRINT: PRINT TAB(10);"SCORING SUMMARY":PRINT
|
||||
1600 PRINT TAB(25);A$(7)
|
||||
1610 PRINT TAB(5);"NAME";TAB(20);"GOALS";TAB(35);"ASSISTS"
|
||||
1620 PRINT TAB(5);"----";TAB(20);"-----";TAB(35);"-------"
|
||||
1630 FOR I=1 TO 5:PRINT TAB(5);A$(I);TAB(21);T(I);TAB(36);T1(I)
|
||||
1640 NEXT I:PRINT
|
||||
1650 PRINT TAB(25);B$(7)
|
||||
1660 PRINT TAB(5);"NAME";TAB(20);"GOALS";TAB(35);"ASSISTS"
|
||||
1670 PRINT TAB(5);"----";TAB(20);"-----";TAB(35);"-------"
|
||||
1680 FOR T=1 TO 5:PRINT TAB(5);B$(T);TAB(21);T2(T);TAB(36);T3(T)
|
||||
1690 NEXT T:PRINT
|
||||
1700 PRINT "SHOTS ON NET":PRINT A$(7)":";S2:PRINT B$(7)":";S3
|
||||
1710 END
|
||||
1720 PRINT: PRINT "THIS IS A SIMULATED HOCKEY GAME."
|
||||
1730 PRINT "QUESTION RESPONSE"
|
||||
1740 PRINT "PASS TYPE IN THE NUMBER OF PASSES YOU WOULD"
|
||||
1750 PRINT " LIKE TO MAKE, FROM 0 TO 3."
|
||||
1760 PRINT "SHOT TYPE THE NUMBER CORRESPONDING TO THE SHOT"
|
||||
1770 PRINT " YOU WANT TO MAKE. ENTER:"
|
||||
1780 PRINT " 1 FOR A SLAPSHOT"
|
||||
1790 PRINT " 2 FOR A WRISTSHOT"
|
||||
1800 PRINT " 3 FOR A BACKHAND"
|
||||
1810 PRINT " 4 FOR A SNAP SHOT"
|
||||
1820 PRINT "AREA TYPE IN THE NUMBER CORRESPONDING TO"
|
||||
1830 PRINT " THE AREA YOU ARE AIMING AT. ENTER:"
|
||||
1840 PRINT " 1 FOR UPPER LEFT HAND CORNER"
|
||||
1850 PRINT " 2 FOR UPPER RIGHT HAND CORNER"
|
||||
1860 PRINT " 3 FOR LOWER LEFT HAND CORNER"
|
||||
1870 PRINT " 4 FOR LOWER RIGHT HAND CORNER"
|
||||
1880 PRINT
|
||||
1890 PRINT "AT THE START OF THE GAME, YOU WILL BE ASKED FOR THE NAMES"
|
||||
1900 PRINT "OF YOUR PLAYERS. THEY ARE ENTERED IN THE ORDER: "
|
||||
1910 PRINT "LEFT WING, CENTER, RIGHT WING, LEFT DEFENSE,"
|
||||
1920 PRINT "RIGHT DEFENSE, GOALKEEPER. ANY OTHER INPUT REQUIRED WILL"
|
||||
1930 PRINT "HAVE EXPLANATORY INSTRUCTIONS."
|
||||
1940 GOTO 90
|
||||
1950 END
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user