1
0
mirror of https://github.com/rfivet/BCG101.git synced 2024-11-17 18:06:05 -05:00

Add BOXING, HELLO and HI-Q.

This commit is contained in:
Renaud 2024-05-23 11:30:18 +08:00
parent 7f364ac4f1
commit 6de2259c09
6 changed files with 732 additions and 0 deletions

143
dec/BOXING.BAS Normal file
View File

@ -0,0 +1,143 @@
00001 REM PROGRAM SUBMITTED BY JESSE LYNCH, ST.PAUL, MN.
00002 J=0
00003 L=0
00005 PRINT "OLYMPIC BOXING -- 3 ROUNDS"
00007 PRINT
00010 PRINT "INPUT YOUR OPPONENT'S NAME"
00020 INPUT J$
00030 PRINT "INPUT YOUR MAN'S NAME"
00040 INPUT L$
00045 PRINT
00050 PRINT "DIFFERENT PUNCHES ARE 1 FULL SWING 2 HOOK 3 UPPERCUT 4 JAB"
00060 PRINT "WHAT IS YOUR MANS BEST";
00064 INPUT B
00070 PRINT "AND WHAT IS HIS VULNERABILITY";
00080 INPUT D
00085 PRINT
00090 B1=INT(4*RND+1)
00100 D1=INT(4*RND+1)
00110 IF B1=D1 THEN 90
00120 PRINT J$" ADVANTAGE IS "B1 " AND DISADVANTAGE IS SECRET"
00130 FOR R=1 TO 3
00140 IF J>= 2 THEN 1040
00150 IF L>=2 THEN 1060
00160 X=0
00170 Y=0
00175 PRINT
00180 PRINT "ROUND "R" BEGINS..."
00181 PRINT ""
00185 FOR R1= 1 TO 7
00190 I=INT(10 *RND+1)
00200 IF I>5 THEN 600
00210 PRINT L$ "'S PUNCH";
00220 INPUT P
00221 IF P=B THEN 225
00222 GO TO 230
00225 X=X+2
00230 IF P=1 THEN 340
00240 IF P=2 THEN 450
00250 IF P=3 THEN 520
00270 PRINT L$ "JABS AT "J$"S HEAD ";
00271 IF D1=4 THEN 290
00275 C=INT(8*RND+1)
00280 IF C<4 THEN 310
00290 X=X+3
00300 GO TO 950
00310 PRINT "ITS BLOCKED"
00330 GO TO 950
00340 PRINT L$ " SWINGS AND ";
00341 IF D1=4 THEN 410
00345 X3 =INT(30 *RND+1)
00350 IF X3<10 THEN 410
00360 PRINT " HE MISSES ";
00375 IF X=1 THEN 950
00380 PRINT
00390 PRINT
00400 GO TO 300
00410 PRINT "HE CONNECTS!"
00420 IF X>35 THEN 980
00425 X=X+15
00440 GO TO 300
00450 PRINT L$ "GIVES THE HOOK ";
00455 IF D1=2 THEN 480
00460 H1 =INT(2*RND+1)
00470 IF H1=1 THEN 500
00475 PRINT "CONNECTS..."
00480 X=X+7
00490 GO TO 300
00500 PRINT "BUT IT'S BLOCKED !!!!!!!!!!"
00510 GO TO 300
00520 PRINT L$ " TRIES AN UPPERCUT ";
00530 IF D1=3 THEN 570
00540 D5=INT(100*RND+1)
00550 IF D5<51 THEN 570
00560 PRINT "AND IT'S BLOCKED (LUCKY BLOCK!)"
00565 GO TO 300
00570 PRINT "AND HE CONNECTS!"
00580 X=X+4
00590 GO TO 300
00600 J7=INT(4*RND+1)
00601 IF J7 =B1 THEN 605
00602 GO TO 610
00605 Y=Y+2
00610 IF J7=1 THEN 720
00620 IF J7=2 THEN 810
00630 IF J7 =3 THEN 860
00640 PRINT J$" JABS AND";
00645 IF D=4 THEN 700
00650 Z4 =INT(7*RND+1)
00655 IF Z4>4 THEN 690
00660 PRINT " IT'S BLOCKED !"
00670 GO TO 300
00690 PRINT " BLOOD SPILLS !!!"
00700 Y=Y+5
00710 GO TO 300
00720 PRINT J$" TAKES A FULL SWING AND";
00730 IF D=1 THEN 770
00740 R6=INT(60*RND+1)
00745 IF R6 <30 THEN 770
00750 PRINT " BUT IT'S BLOCKED !"
00760 GO TO 300
00770 PRINT " POW!!!!! HE HITS HIM RIGHT IN THE FACE!"
00780 IF Y>35 THEN 1010
00790 Y=Y+15
00800 GO TO 300
00810 PRINT J$" GETS "L$" IN THE JAW (OUCH!)"
00820 Y=Y+7
00830 PRINT "....AND AGAIN!"
00835 Y=Y+5
00840 IF Y>35 THEN 1010
00850 PRINT
00860 PRINT L$ " IS ATTACKED BY AN UPPERCUT (OH, OH)..."
00865 IF D=3 THEN 890
00870 Q4=INT(200*RND+1)
00880 IF Q4>75 THEN 920
00890 PRINT " AND "J$" CONNECTS..."
00900 Y=Y+8
00910 GO TO 300
00920 PRINT " BLOCKS AND HITS "J$" WITH A HOOK."
00930 X=X+5
00940 GO TO 300
00950 NEXT R1
00951 IF X>Y THEN 955
00952 PRINT J$ " WINS ROUND "R
00953 J=J+1
00954 GO TO 960
00955 PRINT L$ " WINS ROUND "R
00956 L=L+1
00960 NEXT R
00961 IF J>= 2 THEN 1040
00962 IF L>=2 THEN 1060
00980 PRINT J$ " IS KNOCKED COLD AND " L$" IS THE WINNER AND CHAMP ";
01000 GO TO 1080
01010 PRINT L$ " IS KNOCKED COLD AND " J$" IS THE WINNER AND CHAMP ";
01030 GO TO 1000
01040 PRINT J$ " WINS (NICE GOING )" J$
01050 GO TO 1000
01060 PRINT L$ " AMAZINGLY WINS "
01070 GO TO 1000
01080 PRINT
01085 PRINT
01090 PRINT "AND NOW GOODBYE FROM THE OLYMPIC ARNEA."
01100 PRINT
01110 END

90
dec/HELLO.BAS Normal file
View File

@ -0,0 +1,90 @@
5 GOT 400
10 PRINT "HELLO, I'M AN EDUSYSTEM-25. MY NAME IS PETEY P. EIGHT."
20 PRI\PRI "WHAT'S YOUR NAME";\LINPUT A$\PRI
35 PRI " HI THERE ";\GOSUB500\PRI". ARE YOU ENJOYING YOURSELF HERE
40 PRI "IN BEAUTIFUL MAYNARD, MASS";
45 INP B$\PRI
50 IF B$="YES" THEN 70
55 IF B$="NO" THEN 80
60 PRI " ";\GOSUB500\PRI", I DON'T UNDERSTAND YOUR ANSWER OF '"B$"'."
65 PRI "PLEASE ANSWER 'YES' OR 'NO'. DO YOU LIKE IT HERE
67 GOT 40
70 PRI "OH, I'M GALD TO HERE THAT ";\GOSUB500\PRI
75 GOT 100
80 PRI "OH, SORRY TO HEAR THAT ";\GOSUB 500\PRI ", MAYBE WE CAN
85 PRI "BRIGHTEN UP YOUR STAY A BIT
100 PRI
105 PRI "SAY, ";\GOSUB500\PRI", I CAN SOLVE ALL KINDS OF PROBLEMS
110 PRI "EXCEPT THOSE DEALING WITH GREECE. WHAT KIND OF
115 PRI "PROBLEMS DO YOU HAVE (ANSWER SEX, HEALTH, MONEY,
120 PRI "OR JOB)";
125 INP C$\PRI
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 PRI "OH, ";\GOSUB500\PRI", YOUR ANSWER OF '"C$"' IS GREEK TO ME."
140 GOT 250
145 PRI "I CAN SYMPATHIZE WITH YOU ";\GOSUB500\PRI". I HAVE TO WORK
148 PRI "VERY LONG HOURS FOR NO PAY -- AND SOME OF MY BOSSES REALLY
150 PRI"BEAT MY KEYBOARD. MY ADVICE TO YOU ";\GOSUB500\PRI", IS TO SELL
153 PRI "IN THE EDUCATION MARKET. IT'S GREAT FUN.
155 GOT 250
160 PRI "SORRY, ";\GOSUB500\PRI", I'M BROKE TOO. WHY DON'T YOU SELL
163 PRI "ENCYCLOPAEDIAS OR MARRY SOMEONE RICH OR STOP EATING
165 PRI "SO YOU WON'T NEED SO MUCH MONEY?
170 GOT 250
180 PRI "MY ADVICE TO YOU ";\GOSUB500\PRI", IS:
185 PRI " 1. TAKE TWO ASPRIN
188 PRI " 2. DRINK PLENTY OF FLUIDS (ORANGE JUICE, NOT BEER!)
190 PRI " 3. GO TO BED (ALONE)
195 GOT 250
200 PRI "IS YOUR PROBLEM TOO MUCH OR TOO LITTLE";
205 INP D$\PRI
210 IF D$="TOO MU" THEN 220
213 IF D$="TOO LI" THEN 230
215 PRI "DON'T GET ALL SHOOK ";\GOS 500\PRI ",JUST ANSWER THE QUESTION
217 PRI "WITH 'TOO MUCH' OR 'TOO LITTLE'. WHICH IS IT";
218 GOT 205
220 PRI "YOU CALL THAT A PROBLEM?!! I SHOULD HAVE SUCH PROBLEMS!
225 PRI "IF IT BOTHERS YOU, TAKE A COLD SHOWER ";\GOSUB500\PRI"."
228 GOT 250
230 PRI "WHY ARE YOU HERE ";\GOSUB500\PRI"? YOU SHOULD BE
235 PRI "IN TOKYO OR NEW YORK OR AMSTERDAM OR SOMEPLACE WITH SOME
240 PRI "REAL ACTION.
250 PRI
255 PRI "ANY MORE PROBLEMS YOU WANT SOLVED, ";\GOSUB500\PRI;
260 INP E$\PRI
270 IF E$="YES" THEN 280
273 IF E$="NO" THEN 300
275 PRI "JUST A SIMPLE 'YES' OR 'NO' PLEASE, ";\GOSUB500\PRI"."
278 GOT 255
280 PRI "WHAT KIND (SEX, MONEY, HEALTH, JOB)";
285 GOT 125
300 PRI
302 PRI "THAT WILL BE $5.00 FOR THE ADVICE, ";\GOSUB500\PRI"."
305 PRI "PLEASE LEAVE THE MONEY ON THE TERMINAL. "
307 PRI\PRI\PRI
310 PRI "DID YOU LEAVE THE MONEY";
315 INP G$\PRI
325 IF G$="YES" THEN 350
330 IF G$="NO" THEN 370
335 PRI "YOUR ANSWER OF '"G$"' CONFUSES ME, ";\GOSUB500\PRI". PLEASE
340 PRI "RESPOND WITH A 'YES' OR 'NO'.
345 GOT 310
350 PRI "HEY, ";\GOSUB500\PRI"??? YOU LEFT NO MONEY AT ALL!
355 PRI "YOU ARE CHEATING ME OUT OF MY HARD-EARNED LIVING.
360 PRI "RIP OFF, ";\GOSUB500\PRI". *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
365 GOT 390
370 PRI "THAT'S HONEST, ";\GOSUB500\PRI", BUT HOW DO YOU EXPECT
375 PRI "ME TO GO ON WITH MY PSYCHOLOGY STUDIES IF MY PATIENTS DON'T
380 PRI "PAY THEIR BILLS?
385 PRI\PRI\PRI "NOW LET ME TALK TO SOMEONE ELSE.
390 PRI "NICE MEETING YOU ";\GOS 500\PRI ". HAVE A NICE DAY!!
400 FOR N=1 TO 7
402 PRI
405 NEX N
410 GOT 10
500 T=A$(0)\FOR I=1 TO INT(T/6+1)\PRINT A$(I);\NEXT I
510 RETURN
999 END

132
dec/HI-Q.BAS Normal file
View File

@ -0,0 +1,132 @@
3 DIM B(70),T(9,9)
4 PRINT "THIS IS THE GAME OF HI-Q"\PRINT "HERE IS THE BOARD"\PRINT
5 PRINT " ! ! !"
6 PRINT " 13 14 15"\PRINT
7 PRINT " ! ! !"
8 PRINT " 22 23 24"\PRINT
9 PRINT "! ! ! ! ! ! !"
10 PRINT "29 30 31 32 33 34 35"\PRINT
11 PRINT "! ! ! ! ! ! !"
12 PRINT "38 39 40 41 42 43 44"\PRINT
13 PRINT "! ! ! ! ! ! !"
14 PRINT "47 48 49 50 51 52 53"\PRINT
15 PRINT " ! ! !"
16 PRINT " 58 59 60"\PRINT
17 PRINT " ! ! !"
18 PRINT " 67 68 69"\PRINT
22 PRINT "TO SAVE TYPING TIME, A COMPRESSED VERSION OF THE GAME BOARD"
23 PRINT "WILL BE USED DURING PLAY. REFER TO THE ABOVE ONE FOR PEG"
24 PRINT "NUMBERS. O.K., 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 WORK."
1615 PRINT\INPUT "PLAY AGAIN (YES OR NO)";A$
1617 IF A$="NO" THEN 2000
1618 RESTORE\GOTO 25
1620 STOP
1630 RETURN
2000 PRINT\PRINT "SO LONG FOR NOW."\PRINT
2005 END

144
port/BOXING.BAS Normal file
View File

@ -0,0 +1,144 @@
1 REM PROGRAM SUBMITTED BY JESSE LYNCH, ST.PAUL, MN.
2 J=0
3 L=0
4 RANDOMIZE
5 PRINT "OLYMPIC BOXING -- 3 ROUNDS"
7 PRINT
10 PRINT "INPUT YOUR OPPONENT'S NAME"
20 INPUT J$
30 PRINT "INPUT YOUR MAN'S NAME"
40 INPUT L$
45 PRINT
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 "AND WHAT IS HIS VULNERABILITY";
80 INPUT D
85 PRINT
90 B1=INT(4*RND(1)+1)
100 D1=INT(4*RND(1)+1)
110 IF B1=D1 THEN 90
120 PRINT J$" ADVANTAGE IS "B1 " AND DISADVANTAGE IS SECRET"
130 FOR R=1 TO 3
140 IF J>= 2 THEN 1040
150 IF L>=2 THEN 1060
160 X=0
170 Y=0
175 PRINT
180 PRINT "ROUND "R" BEGINS..."
181 PRINT ""
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 GO TO 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 GO TO 950
310 PRINT "ITS BLOCKED"
330 GO TO 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 ";
375 IF X=1 THEN 950
380 PRINT
390 PRINT
400 GO TO 300
410 PRINT "HE CONNECTS!"
420 IF X>35 THEN 980
425 X=X+15
440 GO TO 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 GO TO 300
500 PRINT "BUT IT'S BLOCKED !!!!!!!!!!"
510 GO TO 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 GO TO 300
570 PRINT "AND HE CONNECTS!"
580 X=X+4
590 GO TO 300
600 J7=INT(4*RND(1)+1)
601 IF J7 =B1 THEN 605
602 GO TO 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 GO TO 300
690 PRINT " BLOOD SPILLS !!!"
700 Y=Y+5
710 GO TO 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 " BUT IT'S BLOCKED !"
760 GO TO 300
770 PRINT " POW!!!!! HE HITS HIM RIGHT IN THE FACE!"
780 IF Y>35 THEN 1010
790 Y=Y+15
800 GO TO 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 GO TO 300
920 PRINT " BLOCKS AND HITS "J$" WITH A HOOK."
930 X=X+5
940 GO TO 300
950 NEXT R1
951 IF X>Y THEN 955
952 PRINT J$ " WINS ROUND "R
953 J=J+1
954 GO TO 960
955 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 GO TO 1080
1010 PRINT L$ " IS KNOCKED COLD AND " J$" IS THE WINNER AND CHAMP ";
1030 GO TO 1000
1040 PRINT J$ " WINS (NICE GOING ) " J$
1050 GO TO 1000
1060 PRINT L$ " AMAZINGLY WINS "
1070 GO TO 1000
1080 PRINT
1085 PRINT
1090 PRINT "AND NOW GOODBYE FROM THE OLYMPIC ARENA."
1100 PRINT
1110 END

91
port/HELLO.BAS Normal file
View File

@ -0,0 +1,91 @@
5 GOTO 400
8 DIM A$(2)
10 PRINT "HELLO, I'M AN EDUSYSTEM-25. MY NAME IS PETEY P. EIGHT."
20 PRINT\PRINT "WHAT'S YOUR NAME";\LINPUT A$(0),A$(1),A$(2)\PRINT
35 PRINT " HI THERE ";\GOSUB500\PRINT". ARE YOU ENJOYING YOURSELF HERE"
40 PRINT "IN BEAUTIFUL MAYNARD, MASS";
45 INPUT B$\PRINT
50 IF B$="YES" THEN 70
55 IF B$="NO" THEN 80
60 PRINT " ";\GOSUB500\PRINT", I DON'T UNDERSTAND YOUR ANSWER OF '"B$"'."
65 PRINT "PLEASE ANSWER 'YES' OR 'NO'. DO YOU LIKE IT HERE"
67 GOTO 40
70 PRINT "OH, I'M GALD TO HERE THAT ";\GOSUB500\PRINT
75 GOTO 100
80 PRINT "OH, SORRY TO HEAR THAT ";\GOSUB 500\PRINT ", MAYBE WE CAN"
85 PRINT "BRIGHTEN UP YOUR STAY A BIT"
100 PRINT
105 PRINT "SAY, ";\GOSUB500\PRINT", I CAN SOLVE ALL KINDS OF PROBLEMS"
110 PRINT "EXCEPT THOSE DEALING WITH GREECE. WHAT KIND OF"
115 PRINT "PROBLEMS DO YOU HAVE (ANSWER SEX, HEALTH, MONEY,"
120 PRINT "OR JOB)";
125 INPUT C$\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, ";\GOSUB500\PRINT", YOUR ANSWER OF '"C$"' IS GREEK TO ME."
140 GOTO 250
145 PRINT "I CAN SYMPATHIZE WITH YOU ";\GOSUB500\PRINT". I HAVE TO WORK"
148 PRINT "VERY LONG HOURS FOR NO PAY -- AND SOME OF MY BOSSES REALLY"
150 PRINT"BEAT MY KEYBOARD. MY ADVICE TO YOU ";\GOSUB500\PRINT", IS TO SELL"
153 PRINT "IN THE EDUCATION MARKET. IT'S GREAT FUN."
155 GOTO 250
160 PRINT "SORRY, ";\GOSUB500\PRINT", I'M BROKE TOO. WHY DON'T YOU SELL"
163 PRINT "ENCYCLOPAEDIAS OR MARRY SOMEONE RICH OR STOP EATING"
165 PRINT "SO YOU WON'T NEED SO MUCH MONEY?"
170 GOTO 250
180 PRINT "MY ADVICE TO YOU ";\GOSUB500\PRINT", 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 PRINT "IS YOUR PROBLEM TOO MUCH OR TOO LITTLE";
205 INPUT D$\PRINT
210 IF D$="TOO MU" THEN 220
213 IF D$="TOO LI" THEN 230
215 PRINT "DON'T GET ALL SHOOK ";\GOSUB 500\PRINT ",JUST ANSWER THE QUESTION"
217 PRINT "WITH 'TOO MUCH' OR 'TOO LITTLE'. WHICH IS IT";
218 GOTO 205
220 PRINT "YOU CALL THAT A PROBLEM?!! I SHOULD HAVE SUCH PROBLEMS!"
225 PRINT "IF IT BOTHERS YOU, TAKE A COLD SHOWER ";\GOSUB500\PRINT"."
228 GOTO 250
230 PRINT "WHY ARE YOU HERE ";\GOSUB500\PRINT"? 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, ";\GOSUB500
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, ";\GOSUB500\PRINT"."
278 GOTO 255
280 PRINT "WHAT KIND (SEX, MONEY, HEALTH, JOB)";
285 GOTO 125
300 PRINT
302 PRINT "THAT WILL BE $5.00 FOR THE ADVICE, ";\GOSUB500\PRINT"."
305 PRINT "PLEASE LEAVE THE MONEY ON THE TERMINAL. "
307 PRINT\PRINT\PRINT
310 PRINT "DID YOU LEAVE THE MONEY";
315 INPUT G$\PRINT
325 IF G$="YES" THEN 350
330 IF G$="NO" THEN 370
335 PRINT "YOUR ANSWER OF '"G$"' CONFUSES ME, ";\GOSUB500\PRINT". PLEASE"
340 PRINT "RESPOND WITH A 'YES' OR 'NO'."
345 GOTO 310
350 PRINT "HEY, ";\GOSUB500\PRINT"??? YOU LEFT NO MONEY AT ALL!"
355 PRINT "YOU ARE CHEATING ME OUT OF MY HARD-EARNED LIVING."
360 PRINT "RIP OFF, ";\GOSUB500\PRINT". *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*"
365 GOTO 390
370 PRINT "THAT'S HONEST, ";\GOSUB500\PRINT", BUT HOW DO YOU EXPECT"
375 PRINT "ME TO GO ON WITH MY PSYCHOLOGY STUDIES IF MY PATIENTS DON'T"
380 PRINT "PAY THEIR BILLS?"
385 PRINT\PRINT\PRINT "NOW LET ME TALK TO SOMEONE ELSE."
390 PRINT "NICE MEETING YOU ";\GOSUB 500\PRINT ". HAVE A NICE DAY!!"
400 FOR N=1 TO 7
402 PRINT
405 NEXT N
410 GOTO 10
500 FOR I=0 TO 2\PRINT A$(I);\NEXT I
510 RETURN
999 END

132
port/HI-Q.BAS Normal file
View File

@ -0,0 +1,132 @@
3 DIM B(70),T(9,9)
4 PRINT "THIS IS THE GAME OF HI-Q"\PRINT "HERE IS THE BOARD"\PRINT
5 PRINT " ! ! !"
6 PRINT " 13 14 15"\PRINT
7 PRINT " ! ! !"
8 PRINT " 22 23 24"\PRINT
9 PRINT "! ! ! ! ! ! !"
10 PRINT "29 30 31 32 33 34 35"\PRINT
11 PRINT "! ! ! ! ! ! !"
12 PRINT "38 39 40 41 42 43 44"\PRINT
13 PRINT "! ! ! ! ! ! !"
14 PRINT "47 48 49 50 51 52 53"\PRINT
15 PRINT " ! ! !"
16 PRINT " 58 59 60"\PRINT
17 PRINT " ! ! !"
18 PRINT " 67 68 69"\PRINT
22 PRINT "TO SAVE TYPING TIME, A COMPRESSED VERSION OF THE GAME BOARD"
23 PRINT "WILL BE USED DURING PLAY. REFER TO THE ABOVE ONE FOR PEG"
24 PRINT "NUMBERS. O.K., 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 PRINT "MOVE WHICH PIECE";\INPUT Z
110 IF B(Z)=-7 THEN 140
120 PRINT "ILLEGAL MOVE, TRY AGAIN..."\GOTO 100
140 PRINT "TO WHERE";\INPUT 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 WORK."
1615 PRINT\PRINT "PLAY AGAIN (YES OR NO)";\INPUT A$
1617 IF A$="NO" THEN 2000
1618 RESTORE\GOTO 28
1620 STOP
1630 RETURN
2000 PRINT\PRINT "SO LONG FOR NOW."\PRINT
2005 END