5 CLEAR1000:DIMW(99),R(99),N(99)
10 CLS
20 PRINT:PRINTTAB(13);"ELIZA":PRINTTAB(13);"-----"
25 PRINT"YOU ARE NOT FEELING WELL AND    HAVE DECIDED TO CONSULT WITH"
30 PRINT"A PSYCHOLOGIST ABOUT SOME OF"
35 PRINT"YOUR PROBLEMS.  ELIZA WILL ASK  YOU QUESTIONS DURING YOUR VISIT"
40 PRINT"WHICH YOU SHOULD ANSWER WITH    SHORT, BUT COMPLETE SENTENCES."
45 PRINT"ELIZA CHARGES $75 AN HOUR, SO   DON'T WASTE TIME TYPING"
46 PRINT"ANY PUNCTUATION. TYPE 'SHUT UP' TO END YOUR SESSION."
48 PRINT:PRINT "PRESS <ENTER> TO START SESSION";:INPUT A$
50 CLS:N1=45:N2=20:N3=130
60 FOR X=1 TO N1+N2+N3:READ Z$:NEXT X
70 FOR X=1 TO N1:READ W(X),L:R(X)=W(X):N(X)=W(X)+L-1:NEXT X
80 X$="HI!, I AM ELIZA, WHAT IS YOUR PROBLEM?": GOSUB 2010
90 A$=""
100 INPUTA$
110 IFLEN(A$)>79THENPRINT"PLEASE LIMIT YOUR SENTENCES TO  80 CHARACTERS":GOTO100
200 PRINT:I$=A$
220 I$=" "+I$+" "
230 FORL=1TOLEN(I$)
240 IFMID$(I$,L,1)="'"THENI$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO240
250 IFL+4<=LEN(I$)ANDMID$(I$,L,4)="SHUT"THENX$="OKAY, IF YOU WANT ME TO SHUT UP, I WILL!":GOSUB2010:END
260 NEXTL
270 IFI$=P$THENX$="PLEASE DON'T REPEAT YOURSELF!":GOSUB2010:GOTO90
280 RESTORE:S=0:FOR K=1 TO N1:READ Z$
290 IF S>0 THEN 330
300 Q= LEN(I$)- LEN(Z$)+1:FOR L=1 TO Q
310 IF  MID$(I$,L, LEN(Z$))=Z$ THEN S=K:T=L:F$=Z$
320 NEXT L
330 NEXT K
340 IFS>0THENK=S:L=T:GOTO360
350 K=36:GOTO530
360 RESTORE:FOR X=1 TO N1:READ Z$:NEXT X
370 C$=" "+ RIGHT$(I$, LEN(I$)- LEN(F$)-L+1)
380 FOR X=1 TO N2/2
390 READ T$,R$
400 FOR L=1 TO LEN(C$)
410 IF L+ LEN(T$)>LEN(C$)+1 THEN 460
420 IF MID$(C$,L,LEN(T$))<>T$ THEN 460
430 C$=LEFT$(C$,L-1)+R$+ RIGHT$(C$,LEN(C$)-L- LEN(T$)+1)
440 L=L+ LEN(R$)
450 GOTO500
460 IF L+ LEN(R$)> LEN(C$)+1 THEN 500
470 IF MID$(C$,L, LEN(R$))<>R$ THEN 500
480 C$= LEFT$(C$,L-1)+T$+ RIGHT$(C$,LEN(C$)-L-LEN(R$)+1)
490 L=L+ LEN(T$)
500 NEXT L
510 NEXT X
520 IF MID$(C$,2,1)=" " THEN C$=RIGHT$(C$, LEN(C$)-1)
530 RESTORE:FOR X=1 TO N1+N2:READ Z$:NEXT X
540 FOR X=1 TO R(K):READ F$:NEXT X
550 R(K)=R(K)+1:IF R(K)>N(K) THEN R(K)=W(K)
560 IFRIGHT$(F$,1)<>"*"THENX$=F$:P$=I$:GOSUB2010:GOTO90
570 X$=LEFT$(F$,LEN(F$)-1)+C$: GOSUB 2010
580 P$=I$:GOTO90
590 DATA "CAN YOU","CAN I","YOU ARE","YOURE","I DONT","I FEEL"
600 DATA "WHY DONT YOU","WHY CANT I","ARE YOU","I CANT","I AM","IM "
610 DATA " NOT ","I WANT","WHAT","HOW","WHO","WHERE","WHEN","WHY"
620 DATA "NAME","CAUSE","SORRY","DREAM","HELLO","HI ","MAYBE"
630 DATA " NO ","YOUR","ALWAYS","THINK","ALIKE","YES","FRIEND"
640 DATA "COMPUTER","NOKEYFOUND","SEX","MAKE LOVE"
645 DATA "HAPPY","SAD","CRAZY","NUT","SICK","LOVE"," YOU "
650 DATA " ARE "," AM "," WERE "," WAS "," YOU "," I "," YOUR ", " MY "
660 DATA " IVE "," YOUVE "," IM "," YOURE "," ME "," YOU "," THIS "
665 DATA " THAT "," ANY "," EVERY "," MYSELF "," YOURSELF "
670 DATA "DONT YOU BELIEVE THAT I CAN*"
680 DATA "PERHAPS YOU WOULD LIKE TO BE ABLE TO*"
690 DATA "YOU WANT ME TO BE ABLE TO*"
700 DATA "PERHAPS YOU DONT WANT TO*"
710 DATA "DO YOU WANT TO BE ABLE TO*"
720 DATA "WHAT MAKES YOU THINK I AM*"
730 DATA "DOES IT PLEASE YOU TO BELIEVE I AM*"
740 DATA "PERHAPS YOU WOULD LIKE TO BE*"
750 DATA "DO YOU SOMETIMES WISH YOU WERE*"
760 DATA "DONT YOU REALLY*"
770 DATA "WHY DONT YOU*"
780 DATA "DO YOU WISH TO BE ABLE TO*"
790 DATA "DOES THAT TROUBLE YOU?"
800 DATA "TELL ME MORE ABOUT SUCH FEELINGS."
810 DATA "DO YOU OFTEN FEEL*"
820 DATA "DO YOU ENJOY FEELING*"
830 DATA "DO YOU REALLY BELIEVE I DONT*"
840 DATA "PERHAPS IN GOOD TIME I WILL*"
850 DATA "DO YOU WANT ME TO*"
860 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*"
870 DATA "WHY CANT YOU*"
880 DATA "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*"
890 DATA "WOULD YOU PREFER IF I WERE NOT*"
900 DATA "PERHAPS IN YOUR FANTASIES I AM*"
910 DATA "HOW DO YOU KNOW I CANT*"
920 DATA "HAVE YOU TRIED?"
930 DATA "PERHAPS YOU CAN NOW*"
940 DATA "DID YOU COME TO ME BECAUSE YOU ARE*"
950 DATA "HOW LONG HAVE YOU BEEN*"
960 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*"
970 DATA "DO YOU ENJOY BEING*"
980 DATA "WE WERE DISCUSSING YOU--NOT ME"
990 DATA "I LIKE YOU."
1000 DATA "TALK ABOUT YOURSELF. YOU ARE NOT PAYING TO ANALYZE ME!"
1010 DATA "OH, I*"
1020 DATA "YOU EMBARRASS ME WHEN YOU TALK ABOUT ME. PLEASE STOP"
1030 DATA "STOP MAKING ME NERVOUS!"
1040 DATA "PERHAPS YOU WOULD LIKE TO TRADE PLACES?"
1050 DATA "YOURE NOT REALLY TALKING ABOUT ME, ARE YOU?"
1060 DATA "WHAT WOULD IT MEAN TO YOU IF YOU GOT*"
1070 DATA "WHY DO YOU WANT*"
1080 DATA "SUPPOSE YOU SOON GOT*"
1090 DATA "WHAT IF YOU NEVER GOT*"
1100 DATA "I SOMETIMES ALSO WANT*"
1110 DATA "WHY DO YOU ASK?"
1120 DATA "DOES THAT QUESTION INTEREST YOU?"
1130 DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?"
1140 DATA "WHAT DO YOU THINK?"
1150 DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?"
1160 DATA "WHAT IS IT THAT YOU REALLY WANT TO KNOW?"
1170 DATA "HAVE YOU ASKED ANYONE ELSE?"
1180 DATA "HAVE YOU ASKED SUCH QUESTIONS BEFORE?"
1190 DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?"
1200 DATA "NAMES DONT INTEREST ME"
1210 DATA "I DONT CARE ABOUT NAMES--PLEASE GO ON"
1220 DATA "IS THAT THE REAL REASON?"
1230 DATA "DONT ANY OTHER REASONS COME TO MIND?"
1240 DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?"
1250 DATA "WHAT OTHER REASONS MIGHT THERE BE?"
1260 DATA "PLEASE, DONT APOLOGIZE!"
1270 DATA "APOLOGIES ARE NOT NECESSARY"
1280 DATA "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?"
1290 DATA "DONT BE SO DEFENSIVE!"
1300 DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?"
1310 DATA "DO YOU DREAM OFTEN?"
1320 DATA "WHAT PERSONS APPEAR IN YOUR DREAMS?"
1330 DATA "ARE YOU DISTURBED BY YOUR DREAMS?"
1340 DATA "HOW DO YOU DO . . . PLEASE STATE YOUR PROBLEM"
1350 DATA "YOU DONT SEEM QUITE CERTAIN"
1360 DATA "WHY THE UNCERTAIN TONE?"
1370 DATA "CAN'T YOU BE MORE POSITIVE?"
1380 DATA "YOU AREN'T SURE?"
1390 DATA "DONT YOU KNOW?"
1400 DATA "ARE YOU SAYING 'NO' JUST TO BE NEGATIVE?"
1410 DATA "YOU ARE BEING A BIT NEGATIVE"
1420 DATA "WHY NOT?"
1430 DATA "ARE YOU SURE?"
1440 DATA "WHY NO?"
1450 DATA "WHY ARE YOU CONCERNED ABOUT MY*"
1460 DATA "WHAT ABOUT YOUR OWN*"
1470 DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?"
1480 DATA "WHEN?"
1490 DATA "WHAT ARE YOU THINKING OF?"
1500 DATA "REALLY, ALWAYS?"
1510 DATA "DO YOU REALLY THINK SO?"
1520 DATA "BUT YOU ARE NOT SURE YOU*"
1530 DATA "DO YOU DOUBT YOU*"
1540 DATA "IN WHAT WAY?"
1550 DATA "WHAT RESEMBLANCE DO YOU SEE?"
1560 DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?"
1570 DATA "WHAT OTHER CONNECTIONS DO YOU SEE?"
1580 DATA "COULD THERE REALLY BE SOME CONNECTION?"
1590 DATA "HOW?"
1600 DATA "YOU SEEM QUITE POSITIVE"
1610 DATA "ARE YOU SURE?"
1620 DATA "I SEE"
1630 DATA "I UNDERSTAND"
1640 DATA "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?"
1650 DATA "DO YOUR FRIENDS WORRY YOU?"
1660 DATA "DO YOUR FRIENDS PICK ON YOU?"
1670 DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?"
1680 DATA "DO YOU IMPOSE ON YOUR FRIENDS?"
1690 DATA "PERHAPS YOUR LOVE FOR FRIENDS WORRY YOU"
1700 DATA "DO COMPUTERS WORRY YOU?"
1710 DATA "ARE YOU TALKING ABOUT ME IN PARTICULAR?"
1720 DATA "ARE YOU FRIGHTENED BY MACHINES?"
1730 DATA "WHY DO YOU MENTION COMPUTERS?"
1740 DATA "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?"
1750 DATA "DONT YOU THINK COMPUTERS CAN HELP PEOPLE?"
1760 DATA "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?"
1770 DATA "SAY, IS THERE ANY OTHER PROBLEM THAT IS BOTHERING YOU?"
1780 DATA "WHAT DOES THAT SUGGEST TO YOU?"
1790 DATA "I SEE"
1800 DATA "WERE YOU HAPPY AS A CHILD?"
1810 DATA "COME, COME, YOU CAN SPEAK PLAINER THAN THAT!"
1820 DATA "CAN YOU ELABORATE ON THAT?"
1830 DATA "THAT IS QUITE INTERESTING!"
1840 DATA "DO YOU HAVE ANY FANTASIES?"
1850 DATA "WHAT KIND OF PERSON ARE YOU?"
1860 DATA "ARE YOU HAPPY OR ARE YOU SAD?"
1870 DATA "LETS CHANGE THE SUBJECT"
1880 DATA "DO YOU WANT TO TALK ABOUT SEX?"
1890 DATA "ARE YOU SATISFIED WITH YOUR SEX LIFE?"
1900 DATA "DO YOU DREAM ABOUT HAVING SEX WITH EVERYONE?"
1910 DATA "WHO WOULD YOU WANT IF YOU COULD HAVE ANYONE?"
1920 DATA "DO YOU WANT TO HAVE SEX WITH ME?"
1930 DATA "IT IS IMPORTANT TO BE HAPPY DONT YOU THINK?"
1940 DATA "IS THERE SOMETHING THAT YOU REALLY WANT?"
1950 DATA "DO YOU THINK YOU ARE CRAZY?"
1960 DATA "YOU SHOULD NOT SAY THAT ABOUT YOURSELF"
1970 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3
1980 DATA 28,4,28,4,74,5,40,5,45,9,45,9,45,9,45,9,45,9,45,9
1990 DATA 54,2,56,4,60,4,64,4,68,1,68,1,69,5,74,5,79,2,81,4
2000 DATA 85,3,88,7,95,3,98,6,104,7,111,11,122,5,122,5,127
2005 DATA 2,127,2,129,2,129,2,129,2,122,5,32,8
2010 PS=0:FORX=1TO LEN(X$)
2015 PS=PS+1
2040 IF MID$(X$,X,1)=" "ANDPS>25THEN2050
2045 GOTO2060
2050 PRINT:PS=0:GOTO2070
2060 PRINT MID$(X$,X,1); 
2070 NEXT X:PRINT:RETURN 
