]> cloudbase.mooo.com Git - avrcpm.git/blob - cpm/cpmdsk/ELIZA.BAS
SVN --> GIT
[avrcpm.git] / cpm / cpmdsk / ELIZA.BAS
1 5 PRINT TAB(16);"**************************"
2 10 PRINT TAB(26);"ELIZA"
3 20 PRINT TAB(20);"CREATIVE COMPUTING"
4 30 PRINT TAB(18);"MORRISTOWN, NEW JERSEY":PRINT
5 40 PRINT TAB(19);"ADAPTED FOR IBM PC BY"
6 50 PRINT TAB(20);"PATRICIA DANIELSON AND PAUL HASHFIELD"
7 52 PRINT TAB(21);"BE SURE THAT THE CAPS LOCK IS ON"
8 53 PRINT:PRINT TAB(16);"PLEASE DON'T USE COMMAS OR PERIODS IN YOUR INPUTS":PRINT
9 55 PRINT TAB(16);"*************************"
10 60 PRINT :PRINT :PRINT
11 80 REM*****INITIALIZATION**********
12 100 DIM S(36),R(36),N(36)
13 105 DIM KEYWORD$(36),WORDIN$(7),WORDOUT$(7),REPLIES$(112)
14 110 N1=36:N2=14:N3=112
15 112 FOR X = 1 TO N1: READ KEYWORD$(X): NEXT X
16 114 FOR X = 1 TO N2/2: READ WORDIN$(X):READ WORDOUT$(X): NEXT X
17 116 FOR X = 1 TO N3: READ REPLIES$(X): NEXT X
18 130 FOR X=1 TO N1
19 140 READ S(X),L:R(X)=S(X):N(X)=S(X)+L-1
20 150 NEXT X
21 160 PRINT "HI! I'M ELIZA. WHAT'S YOUR PROBLEM?"
22 170 REM ***********************************
23 180 REM *******USER INPUT SECTION**********
24 190 REM ***********************************
25 200 INPUT I$
26 201 I$=" "+I$+" "
27 210 REM GET RID OF APOSTROPHES
28 220 FOR L=1 TO LEN(I$)
29 230 REM IF MID$(I$,L,1)="'" THEN I$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO 230
30 240 IF L+4>LEN(I$) THEN 250
31 241 IF MID$(I$,L,4) <> "SHUT" THEN 250
32 242 PRINT "O.K. IF YOU FEEL THAT WAY I'LL SHUT UP...."
33 243 END
34 250 NEXT L
35 255 IF I$=P$ THEN PRINT "PLEASE DON'T REPEAT YOURSELF!":GOTO 170
36 260 REM ***********************************
37 270 REM ********FIND KEYWORD IN I$*********
38 280 REM ***********************************
39 300 FOR K=1 TO N1
40 320 FOR L=1 TO LEN(I$)-LEN(KEYWORD$(K))+1
41 340 IF MID$(I$,L,LEN(KEYWORD$(K)))<>KEYWORD$(K) THEN 350
42 341 IF K <> 13 THEN 349
43 342 IF MID$(I$,L,LEN(KEYWORD$(29)))=KEYWORD$(29) THEN K = 29
44 349 F$ = KEYWORD$(K): GOTO 390
45 350 NEXT L
46 360 NEXT K
47 370 K=36: GOTO 570:REM WE DIDN'T FIND ANY KEYWORDS
48 380 REM ******************************************
49 390 REM **TAKE PART OF STRING AND CONJUGATE IT****
50 400 REM **USING THE LIST OF STRINGS TO BE SWAPPED*
51 410 REM ******************************************
52 430 C$=" "+RIGHT$(I$,LEN(I$)-LEN(F$)-L+1)+" "
53 440 FOR X=1 TO N2/2
54 460 FOR L=1 TO LEN(C$)
55 470 IF L+LEN(WORDIN$(X))>LEN(C$) THEN 510
56 480 IF MID$(C$,L,LEN(WORDIN$(X)))<>WORDIN$(X) THEN 510
57 490 C$=LEFT$(C$,L-1)+WORDOUT$(X)+RIGHT$(C$,LEN(C$)-L-LEN(WORDIN$(X))+1)
58 495 L = L+LEN(WORDOUT$(X))
59 500 GOTO 540
60 510 IF L+LEN(WORDOUT$(X))>LEN(C$)THEN 540
61 520 IF MID$(C$,L,LEN(WORDOUT$(X)))<>WORDOUT$(X) THEN 540
62 530 C$=LEFT$(C$,L-1)+WORDIN$(X)+RIGHT$(C$,LEN(C$)-L-LEN(WORDOUT$(X))+1)
63 535 L=L+LEN(WORDIN$(X))
64 540 NEXT L
65 550 NEXT X
66 555 IF MID$(C$,2,1)=" "THEN C$=RIGHT$(C$,LEN(C$)-1):REM ONLY 1 SPACE
67 556 FOR L=1 TO LEN(C$)
68 557 IF MID$(C$,L,1)="!" THEN C$=LEFT$(C$,L-1)+RIGHT$(C$,LEN(C$)-L):GOTO 557
69 558 NEXT L
70 560 REM **********************************************
71 570 REM **NOW USING THE KEYWORD NUMBER (K) GET REPLY**
72 580 REM **********************************************
73 600 F$ = REPLIES$(R(K))
74 610 R(K)=R(K)+1:IF R(K)>N(K) THEN R(K)=S(K)
75 620 IF RIGHT$(F$,1)<>"*" THEN PRINT F$:P$=I$:GOTO 170
76 625 IF C$<>" " THEN 630
77 626 PRINT "YOU WILL HAVE TO ELABORATE MORE FOR ME TO HELP YOU"
78 627 GOTO 170
79 630 PRINT LEFT$(F$,LEN(F$)-1);C$
80 640 P$=I$:GOTO 170
81 1000 REM *******************************
82 1010 REM *****PROGRAM DATA FOLLOWS******
83 1020 REM *******************************
84 1030 REM *********KEYWORDS**************
85 1049 REM *******************************
86 1050 DATA "CAN YOU ","CAN I ","YOU ARE ","YOU'RE ","I DON'T ","I FEEL "
87 1060 DATA "WHY DON'T YOU ","WHY CAN'T I ","ARE YOU ","I CAN'T ","I AM ","I'M "
88 1070 DATA "YOU ","I WANT ","WHAT ","HOW ","WHO ","WHERE ","WHEN ","WHY "
89 1080 DATA "NAME ","CAUSE ","SORRY ","DREAM ","HELLO ","HI ","MAYBE "
90 1090 DATA "NO","YOUR ","ALWAYS ","THINK ","ALIKE ","YES ","FRIEND "
91 1100 DATA "COMPUTER", "NOKEYFOUND"
92 1200 REM *********************************
93 1210 REM ***STRING DATA FOR CONJUGATIONS**
94 1220 REM *********************************
95 1230 DATA " ARE "," AM "," WERE "," WAS "," YOU "," I "," YOUR"," MY "
96 1235 DATA " I'VE "," YOU'VE "," I'M "," YOU'RE "
97 1240 DATA " ME "," YOU "
98 1300 REM ******************************
99 1310 REM *********REPLIES**************
100 1320 REM ******************************
101 1330 DATA "DON'T YOU BELIEVE THAT I CAN*"
102 1340 DATA "PERHAPS YOU WOULD LIKE TO BE LIKE ME*"
103 1350 DATA "YOU WANT ME TO BE ABLE TO*"
104 1360 DATA "PERHAPS YOU DON'T WANT TO*"
105 1365 DATA "DO YOU WANT TO BE ABLE TO*"
106 1370 DATA "WHAT MAKES YOU THINK I AM*"
107 1380 DATA "DOES IT PLEASE YOU TO BELIEVE I AM*"
108 1390 DATA "PERHAPS YOU WOULD LIKE TO BE*"
109 1400 DATA "DO YOU SOMETIMES WISH YOU WERE*"
110 1410 DATA "DON'T YOU REALLY*"
111 1420 DATA "WHY DON'T YOU*"
112 1430 DATA "DO YOU WISH TO BE ABLE TO*"
113 1440 DATA "DOES THAT TROUBLE YOU*"
114 1450 DATA "DO YOU OFTEN FEEL*"
115 1460 DATA "DO YOU OFTEN FEEL*"
116 1470 DATA "DO YOU ENJOY FEELING*"
117 1480 DATA "DO YOU REALLY BELIEVE I DON'T*"
118 1490 DATA "PERHAPS IN GOOD TIME I WILL*"
119 1500 DATA "DO YOU WANT ME TO*"
120 1510 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*"
121 1520 DATA "WHY CAN'T YOU*"
122 1530 DATA "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*"
123 1540 DATA "WOULD YOU PREFER IF I WERE NOT*"
124 1550 DATA "PERHAPS IN YOUR FANTASIES I AM*"
125 1560 DATA "HOW DO YOU KNOW YOU CAN'T*"
126 1570 DATA "HAVE YOU TRIED?"
127 1580 DATA "PERHAPS YOU CAN NOW*"
128 1590 DATA "DID YOU COME TO ME BECAUSE YOU ARE*"
129 1600 DATA "HOW LONG HAVE YOU BEEN*"
130 1610 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*"
131 1620 DATA "DO YOU ENJOY BEING*"
132 1630 DATA "WE WERE DISCUSSING YOU--NOT ME."
133 1640 DATA "OH, I*"
134 1650 DATA "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?"
135 1660 DATA "WHAT WOULD IT MEAN TO YOU IF YOU GOT*"
136 1670 DATA "WHY DO YOU WANT*"
137 1680 DATA "SUPPOSE YOU SOON GOT*"
138 1690 DATA "WHAT IF YOU NEVER GOT*"
139 1700 DATA "I SOMETIMES ALSO WANT*"
140 1710 DATA "WHY DO YOU ASK?"
141 1720 DATA "DOES THAT QUESTION INTEREST YOU?"
142 1730 DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?"
143 1740 DATA "WHAT DO YOU THINK?"
144 1750 DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?"
145 1760 DATA "WHAT IS IT THAT YOU REALLY WANT TO KNOW?"
146 1770 DATA "HAVE YOU ASKED ANYONE ELSE?"
147 1780 DATA "HAVE YOU ASKED SUCH QUESTIONS BEFORE?"
148 1790 DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?"
149 1800 DATA "NAMES DON'T INTEREST ME."
150 1810 DATA "I DON'T CARE ABOUT NAMES --PLEASE GO ON."
151 1820 DATA "IS THAT THE REAL REASON?"
152 1830 DATA "DON'T ANY OTHER REASONS COME TO MIND?"
153 1840 DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?"
154 1850 DATA "WHAT OTHER REASONS MIGHT THERE BE?"
155 1860 DATA "PLEASE DON'T APOLOGIZE!"
156 1870 DATA "APOLOGIES ARE NOT NECESSARY."
157 1880 DATA "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?"
158 1890 DATA "DON'T BE SO DEFENSIVE!"
159 1900 DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?"
160 1910 DATA "DO YOU DREAM OFTEN?"
161 1920 DATA "WHAT PERSONS APPEAR IN YOUR DREAMS?"
162 1930 DATA "ARE YOU DISTURBED BY YOUR DREAMS?"
163 1940 DATA "HOW DO YOU DO ...PLEASE STATE YOUR PROBLEM."
164 1950 DATA "YOU DON'T SEEM QUITE CERTAIN."
165 1960 DATA "WHY THE UNCERTAIN TONE?"
166 1970 DATA "CAN'T YOU BE MORE POSITIVE?"
167 1980 DATA "YOU AREN'T SURE?"
168 1990 DATA "DON'T YOU KNOW?"
169 2000 DATA "ARE YOU SAYING NO JUST TO BE NEGATIVE?"
170 2010 DATA "YOU ARE BEING A BIT NEGATIVE."
171 2020 DATA "WHY NOT?"
172 2030 DATA "ARE YOU SURE?"
173 2040 DATA "WHY NO?"
174 2050 DATA "WHY ARE YOU CONCERNED ABOUT MY*"
175 2060 DATA "WHAT ABOUT YOUR OWN*"
176 2070 DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?"
177 2080 DATA "WHEN?"
178 2090 DATA "WHAT ARE YOU THINKING OF?"
179 2100 DATA "REALLY, ALWAYS?"
180 2110 DATA "DO YOU REALLY THINK SO?"
181 2120 DATA "BUT YOU ARE NOT SURE YOU*"
182 2130 DATA "DO YOU DOUBT YOU*"
183 2140 DATA "IN WHAT WAY?"
184 2150 DATA "WHAT RESEMBLANCE DO YOU SEE?"
185 2160 DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?"
186 2170 DATA "WHAT OTHER CONNECTIONS DO YOU SEE?"
187 2180 DATA "COULD THERE REALLY BE SOME CONNECTION?"
188 2190 DATA "HOW?"
189 2200 DATA "YOU SEEM QUITE POSITIVE."
190 2210 DATA "ARE YOU SURE?"
191 2220 DATA "I SEE."
192 2230 DATA "I UNDERSTAND."
193 2240 DATA "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?"
194 2250 DATA "DO YOUR FRIENDS WORRY YOU?"
195 2260 DATA "DO YOUR FRIENDS PICK ON YOU?"
196 2270 DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?"
197 2280 DATA "DO YOU IMPOSE ON YOUR FRIENDS?"
198 2290 DATA "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU."
199 2300 DATA "DO COMPUTERS WORRY YOU?"
200 2310 DATA "ARE YOU TALKING ABOUT ME IN PARTICULAR?"
201 2320 DATA "ARE YOU FRIGHTENED BY MACHINES?"
202 2330 DATA "WHY DO YOU MENTION COMPUTERS?"
203 2340 DATA "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?"
204 2350 DATA "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?"
205 2360 DATA "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?"
206 2370 DATA "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?"
207 2380 DATA "WHAT DOES THAT SUGGEST TO YOU?"
208 2390 DATA "I SEE."
209 2400 DATA "I'M NOT SURE I UNDERSTAND YOU FULLY."
210 2410 DATA "COME COME ELUCIDATE YOUR THOUGHTS."
211 2420 DATA "CAN YOU ELABORATE ON THAT?"
212 2430 DATA "THAT IS QUITE INTERESTING."
213 2500 REM *************************
214 2510 REM *****DATA FOR FINDING RIGHT REPLIES
215 2520 REM *************************
216 2530 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3
217 2540 DATA 28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9
218 2550 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4
219 2560 DATA 80,3,83,7,90,3,93,6,99,7,106,6
220 \1a\1a\1a\1a\1a\1a\1a