]> cloudbase.mooo.com Git - avrcpm.git/blame - cpm/cpmdsk/ELIZA.BAS
SVN --> GIT
[avrcpm.git] / cpm / cpmdsk / ELIZA.BAS
CommitLineData
db568140
L
15 PRINT TAB(16);"**************************"\r
210 PRINT TAB(26);"ELIZA"\r
320 PRINT TAB(20);"CREATIVE COMPUTING"\r
430 PRINT TAB(18);"MORRISTOWN, NEW JERSEY":PRINT\r
540 PRINT TAB(19);"ADAPTED FOR IBM PC BY"\r
650 PRINT TAB(20);"PATRICIA DANIELSON AND PAUL HASHFIELD"\r
752 PRINT TAB(21);"BE SURE THAT THE CAPS LOCK IS ON"\r
853 PRINT:PRINT TAB(16);"PLEASE DON'T USE COMMAS OR PERIODS IN YOUR INPUTS":PRINT\r
955 PRINT TAB(16);"*************************"\r
1060 PRINT :PRINT :PRINT\r
1180 REM*****INITIALIZATION**********\r
12100 DIM S(36),R(36),N(36)\r
13105 DIM KEYWORD$(36),WORDIN$(7),WORDOUT$(7),REPLIES$(112)\r
14110 N1=36:N2=14:N3=112\r
15112 FOR X = 1 TO N1: READ KEYWORD$(X): NEXT X\r
16114 FOR X = 1 TO N2/2: READ WORDIN$(X):READ WORDOUT$(X): NEXT X\r
17116 FOR X = 1 TO N3: READ REPLIES$(X): NEXT X\r
18130 FOR X=1 TO N1\r
19140 READ S(X),L:R(X)=S(X):N(X)=S(X)+L-1\r
20150 NEXT X\r
21160 PRINT "HI! I'M ELIZA. WHAT'S YOUR PROBLEM?"\r
22170 REM ***********************************\r
23180 REM *******USER INPUT SECTION**********\r
24190 REM ***********************************\r
25200 INPUT I$\r
26201 I$=" "+I$+" "\r
27210 REM GET RID OF APOSTROPHES\r
28220 FOR L=1 TO LEN(I$)\r
29230 REM IF MID$(I$,L,1)="'" THEN I$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO 230\r
30240 IF L+4>LEN(I$) THEN 250\r
31241 IF MID$(I$,L,4) <> "SHUT" THEN 250\r
32242 PRINT "O.K. IF YOU FEEL THAT WAY I'LL SHUT UP...."\r
33243 END\r
34250 NEXT L\r
35255 IF I$=P$ THEN PRINT "PLEASE DON'T REPEAT YOURSELF!":GOTO 170\r
36260 REM ***********************************\r
37270 REM ********FIND KEYWORD IN I$*********\r
38280 REM ***********************************\r
39300 FOR K=1 TO N1\r
40320 FOR L=1 TO LEN(I$)-LEN(KEYWORD$(K))+1\r
41340 IF MID$(I$,L,LEN(KEYWORD$(K)))<>KEYWORD$(K) THEN 350\r
42341 IF K <> 13 THEN 349\r
43342 IF MID$(I$,L,LEN(KEYWORD$(29)))=KEYWORD$(29) THEN K = 29\r
44349 F$ = KEYWORD$(K): GOTO 390\r
45350 NEXT L\r
46360 NEXT K\r
47370 K=36: GOTO 570:REM WE DIDN'T FIND ANY KEYWORDS\r
48380 REM ******************************************\r
49390 REM **TAKE PART OF STRING AND CONJUGATE IT****\r
50400 REM **USING THE LIST OF STRINGS TO BE SWAPPED*\r
51410 REM ******************************************\r
52430 C$=" "+RIGHT$(I$,LEN(I$)-LEN(F$)-L+1)+" "\r
53440 FOR X=1 TO N2/2\r
54460 FOR L=1 TO LEN(C$)\r
55470 IF L+LEN(WORDIN$(X))>LEN(C$) THEN 510\r
56480 IF MID$(C$,L,LEN(WORDIN$(X)))<>WORDIN$(X) THEN 510\r
57490 C$=LEFT$(C$,L-1)+WORDOUT$(X)+RIGHT$(C$,LEN(C$)-L-LEN(WORDIN$(X))+1)\r
58495 L = L+LEN(WORDOUT$(X))\r
59500 GOTO 540\r
60510 IF L+LEN(WORDOUT$(X))>LEN(C$)THEN 540\r
61520 IF MID$(C$,L,LEN(WORDOUT$(X)))<>WORDOUT$(X) THEN 540\r
62530 C$=LEFT$(C$,L-1)+WORDIN$(X)+RIGHT$(C$,LEN(C$)-L-LEN(WORDOUT$(X))+1)\r
63535 L=L+LEN(WORDIN$(X))\r
64540 NEXT L\r
65550 NEXT X\r
66555 IF MID$(C$,2,1)=" "THEN C$=RIGHT$(C$,LEN(C$)-1):REM ONLY 1 SPACE\r
67556 FOR L=1 TO LEN(C$)\r
68557 IF MID$(C$,L,1)="!" THEN C$=LEFT$(C$,L-1)+RIGHT$(C$,LEN(C$)-L):GOTO 557\r
69558 NEXT L\r
70560 REM **********************************************\r
71570 REM **NOW USING THE KEYWORD NUMBER (K) GET REPLY**\r
72580 REM **********************************************\r
73600 F$ = REPLIES$(R(K))\r
74610 R(K)=R(K)+1:IF R(K)>N(K) THEN R(K)=S(K)\r
75620 IF RIGHT$(F$,1)<>"*" THEN PRINT F$:P$=I$:GOTO 170\r
76625 IF C$<>" " THEN 630\r
77626 PRINT "YOU WILL HAVE TO ELABORATE MORE FOR ME TO HELP YOU"\r
78627 GOTO 170\r
79630 PRINT LEFT$(F$,LEN(F$)-1);C$\r
80640 P$=I$:GOTO 170\r
811000 REM *******************************\r
821010 REM *****PROGRAM DATA FOLLOWS******\r
831020 REM *******************************\r
841030 REM *********KEYWORDS**************\r
851049 REM *******************************\r
861050 DATA "CAN YOU ","CAN I ","YOU ARE ","YOU'RE ","I DON'T ","I FEEL "\r
871060 DATA "WHY DON'T YOU ","WHY CAN'T I ","ARE YOU ","I CAN'T ","I AM ","I'M "\r
881070 DATA "YOU ","I WANT ","WHAT ","HOW ","WHO ","WHERE ","WHEN ","WHY "\r
891080 DATA "NAME ","CAUSE ","SORRY ","DREAM ","HELLO ","HI ","MAYBE "\r
901090 DATA "NO","YOUR ","ALWAYS ","THINK ","ALIKE ","YES ","FRIEND "\r
911100 DATA "COMPUTER", "NOKEYFOUND"\r
921200 REM *********************************\r
931210 REM ***STRING DATA FOR CONJUGATIONS**\r
941220 REM *********************************\r
951230 DATA " ARE "," AM "," WERE "," WAS "," YOU "," I "," YOUR"," MY "\r
961235 DATA " I'VE "," YOU'VE "," I'M "," YOU'RE "\r
971240 DATA " ME "," YOU "\r
981300 REM ******************************\r
991310 REM *********REPLIES**************\r
1001320 REM ******************************\r
1011330 DATA "DON'T YOU BELIEVE THAT I CAN*"\r
1021340 DATA "PERHAPS YOU WOULD LIKE TO BE LIKE ME*"\r
1031350 DATA "YOU WANT ME TO BE ABLE TO*"\r
1041360 DATA "PERHAPS YOU DON'T WANT TO*"\r
1051365 DATA "DO YOU WANT TO BE ABLE TO*"\r
1061370 DATA "WHAT MAKES YOU THINK I AM*"\r
1071380 DATA "DOES IT PLEASE YOU TO BELIEVE I AM*"\r
1081390 DATA "PERHAPS YOU WOULD LIKE TO BE*"\r
1091400 DATA "DO YOU SOMETIMES WISH YOU WERE*"\r
1101410 DATA "DON'T YOU REALLY*"\r
1111420 DATA "WHY DON'T YOU*"\r
1121430 DATA "DO YOU WISH TO BE ABLE TO*"\r
1131440 DATA "DOES THAT TROUBLE YOU*"\r
1141450 DATA "DO YOU OFTEN FEEL*"\r
1151460 DATA "DO YOU OFTEN FEEL*"\r
1161470 DATA "DO YOU ENJOY FEELING*"\r
1171480 DATA "DO YOU REALLY BELIEVE I DON'T*"\r
1181490 DATA "PERHAPS IN GOOD TIME I WILL*"\r
1191500 DATA "DO YOU WANT ME TO*"\r
1201510 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*"\r
1211520 DATA "WHY CAN'T YOU*"\r
1221530 DATA "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*"\r
1231540 DATA "WOULD YOU PREFER IF I WERE NOT*"\r
1241550 DATA "PERHAPS IN YOUR FANTASIES I AM*"\r
1251560 DATA "HOW DO YOU KNOW YOU CAN'T*"\r
1261570 DATA "HAVE YOU TRIED?"\r
1271580 DATA "PERHAPS YOU CAN NOW*"\r
1281590 DATA "DID YOU COME TO ME BECAUSE YOU ARE*"\r
1291600 DATA "HOW LONG HAVE YOU BEEN*"\r
1301610 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*"\r
1311620 DATA "DO YOU ENJOY BEING*"\r
1321630 DATA "WE WERE DISCUSSING YOU--NOT ME."\r
1331640 DATA "OH, I*"\r
1341650 DATA "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?"\r
1351660 DATA "WHAT WOULD IT MEAN TO YOU IF YOU GOT*"\r
1361670 DATA "WHY DO YOU WANT*"\r
1371680 DATA "SUPPOSE YOU SOON GOT*"\r
1381690 DATA "WHAT IF YOU NEVER GOT*"\r
1391700 DATA "I SOMETIMES ALSO WANT*"\r
1401710 DATA "WHY DO YOU ASK?"\r
1411720 DATA "DOES THAT QUESTION INTEREST YOU?"\r
1421730 DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?"\r
1431740 DATA "WHAT DO YOU THINK?"\r
1441750 DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?"\r
1451760 DATA "WHAT IS IT THAT YOU REALLY WANT TO KNOW?"\r
1461770 DATA "HAVE YOU ASKED ANYONE ELSE?"\r
1471780 DATA "HAVE YOU ASKED SUCH QUESTIONS BEFORE?"\r
1481790 DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?"\r
1491800 DATA "NAMES DON'T INTEREST ME."\r
1501810 DATA "I DON'T CARE ABOUT NAMES --PLEASE GO ON."\r
1511820 DATA "IS THAT THE REAL REASON?"\r
1521830 DATA "DON'T ANY OTHER REASONS COME TO MIND?"\r
1531840 DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?"\r
1541850 DATA "WHAT OTHER REASONS MIGHT THERE BE?"\r
1551860 DATA "PLEASE DON'T APOLOGIZE!"\r
1561870 DATA "APOLOGIES ARE NOT NECESSARY."\r
1571880 DATA "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?"\r
1581890 DATA "DON'T BE SO DEFENSIVE!"\r
1591900 DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?"\r
1601910 DATA "DO YOU DREAM OFTEN?"\r
1611920 DATA "WHAT PERSONS APPEAR IN YOUR DREAMS?"\r
1621930 DATA "ARE YOU DISTURBED BY YOUR DREAMS?"\r
1631940 DATA "HOW DO YOU DO ...PLEASE STATE YOUR PROBLEM."\r
1641950 DATA "YOU DON'T SEEM QUITE CERTAIN."\r
1651960 DATA "WHY THE UNCERTAIN TONE?"\r
1661970 DATA "CAN'T YOU BE MORE POSITIVE?"\r
1671980 DATA "YOU AREN'T SURE?"\r
1681990 DATA "DON'T YOU KNOW?"\r
1692000 DATA "ARE YOU SAYING NO JUST TO BE NEGATIVE?"\r
1702010 DATA "YOU ARE BEING A BIT NEGATIVE."\r
1712020 DATA "WHY NOT?"\r
1722030 DATA "ARE YOU SURE?"\r
1732040 DATA "WHY NO?"\r
1742050 DATA "WHY ARE YOU CONCERNED ABOUT MY*"\r
1752060 DATA "WHAT ABOUT YOUR OWN*"\r
1762070 DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?"\r
1772080 DATA "WHEN?"\r
1782090 DATA "WHAT ARE YOU THINKING OF?"\r
1792100 DATA "REALLY, ALWAYS?"\r
1802110 DATA "DO YOU REALLY THINK SO?"\r
1812120 DATA "BUT YOU ARE NOT SURE YOU*"\r
1822130 DATA "DO YOU DOUBT YOU*"\r
1832140 DATA "IN WHAT WAY?"\r
1842150 DATA "WHAT RESEMBLANCE DO YOU SEE?"\r
1852160 DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?"\r
1862170 DATA "WHAT OTHER CONNECTIONS DO YOU SEE?"\r
1872180 DATA "COULD THERE REALLY BE SOME CONNECTION?"\r
1882190 DATA "HOW?"\r
1892200 DATA "YOU SEEM QUITE POSITIVE."\r
1902210 DATA "ARE YOU SURE?"\r
1912220 DATA "I SEE."\r
1922230 DATA "I UNDERSTAND."\r
1932240 DATA "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?"\r
1942250 DATA "DO YOUR FRIENDS WORRY YOU?"\r
1952260 DATA "DO YOUR FRIENDS PICK ON YOU?"\r
1962270 DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?"\r
1972280 DATA "DO YOU IMPOSE ON YOUR FRIENDS?"\r
1982290 DATA "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU."\r
1992300 DATA "DO COMPUTERS WORRY YOU?"\r
2002310 DATA "ARE YOU TALKING ABOUT ME IN PARTICULAR?"\r
2012320 DATA "ARE YOU FRIGHTENED BY MACHINES?"\r
2022330 DATA "WHY DO YOU MENTION COMPUTERS?"\r
2032340 DATA "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?"\r
2042350 DATA "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?"\r
2052360 DATA "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?"\r
2062370 DATA "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?"\r
2072380 DATA "WHAT DOES THAT SUGGEST TO YOU?"\r
2082390 DATA "I SEE."\r
2092400 DATA "I'M NOT SURE I UNDERSTAND YOU FULLY."\r
2102410 DATA "COME COME ELUCIDATE YOUR THOUGHTS."\r
2112420 DATA "CAN YOU ELABORATE ON THAT?"\r
2122430 DATA "THAT IS QUITE INTERESTING."\r
2132500 REM *************************\r
2142510 REM *****DATA FOR FINDING RIGHT REPLIES\r
2152520 REM *************************\r
2162530 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3\r
2172540 DATA 28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9\r
2182550 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4\r
2192560 DATA 80,3,83,7,90,3,93,6,99,7,106,6\r
220\1a\1a\1a\1a\1a\1a\1a