Advertisement
Guest User

Untitled

a guest
Jul 20th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 10 REM
  2. 20 REM  ELIZA/DOCTOR
  3. 30 REM  CREATED BY JOSEPH WEIZENBAUM
  4. 40 REM  THIS VERSION BY JEFF SHRAGER
  5. 50 REM  EDITED AND MODIFIED FOR MITS 8K BASIC 4.0 BY STEVE NORTH
  6. 60 REM  CREATIVE COMPUTING PO BOX 789-M MORRISTOWN NJ 07960
  7. 70 REM
  8. 80 REM --- INITIALIZATION ---
  9. 85 CLEAR 5000
  10. 90 DIM C$,I$,K$,F$,S$,R$,P$,Z$
  11. 95 DEFINT A-Z
  12. 100 DIM S(36),R(36),N(36)
  13. 110 N1=36:N2=12:N3=112
  14. 120 FOR X=1 TO N1+N2+N3:READ Z$:NEXT X:REM SAME AS RESTORE
  15. 130 FOR X=1 TO N1
  16. 140 READ S(X),L:R(X)=S(X):N(X)=S(X)+L-1
  17. 150 NEXT X
  18. 160 PRINT "Hi!  I'm Eliza.  What's your problem?"
  19. 170 REM
  20. 180 REM --- USER INPUT SECTION ---
  21. 190 REM
  22. 200 INPUT I$
  23. 201 I$=" "+I$+" "
  24. 210 REM GET RID OF APOSTROPHES
  25. 220 FOR L=1 TO LEN(I$)
  26. 230 IF MID$(I$,L,1)="'"THEN I$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO230
  27. 240 IF L+4<=LEN(I$) THEN IF MID$(I$,L,4)="SHUT" THEN GOTO 245
  28. 244 GOTO 250
  29. 245 PRINT "Shut up!"
  30. 246 END
  31. 250 NEXT L
  32. 255 IF I$=P$ THEN PRINT "Please don't repeat yourself!":GOTO 170
  33. 260 REM
  34. 270 REM --- FIND KEYWORD IN I$
  35. 280 REM
  36. 290 RESTORE
  37. 295 S=0
  38. 300 FOR K=1 TO N1
  39. 310 READ K$
  40. 315 IF S>0 THEN 360
  41. 320 FOR L=1 TO LEN(I$)-LEN(K$)+1
  42. 340 IF MID$(I$,L,LEN(K$))=K$ THEN S=K:T=L:F$=K$
  43. 350 NEXT L
  44. 360 NEXT K
  45. 365 IF S>0 THEN K=S:L=T:GOTO 390
  46. 370 K=N1:GOTO 570:REM WE DIDN'T FIND ANY KEYWORDS
  47. 380 REM
  48. 390 REM  TAKE RIGHT PART OF STRING AND CONJUGATE IT
  49. 400 REM  USING THE LIST OF STRINGS TO BE SWAPPED
  50. 410 REM
  51. 412 REM F$ MAY ONLY BE PART OF A WORD.  MAKE IT INTO THE ENTIRE WORD.
  52. 414 FOR X=L+LEN(F$)-1 TO LEN(I$)
  53. 415 IF MID$(I$,X,1) <> " " THEN 418
  54. 416 F$=MID$(I$,L,X-L)
  55. 417 GOTO 419
  56. 418 NEXT X
  57. 419 REM
  58. 420 RESTORE:FOR X=1 TO N1:READ Z$:NEXT X:REM SKIP OVER KEYWORDS
  59. 430 C$=" "+RIGHT$(I$,LEN(I$)-LEN(F$)-L+1)
  60. 440 FOR X=1 TO N2/2
  61. 450 READ S$,R$
  62. 460 FOR L=1 TO LEN(C$)
  63. 470 IF L+LEN(S$)-1 > LEN(C$) THEN 510
  64. 480 IF MID$(C$,L,LEN(S$))<>S$ THEN 510
  65. 490 C$=LEFT$(C$,L-1)+R$+RIGHT$(C$,LEN(C$)-L-LEN(S$)+1)
  66. 495 L=L+LEN(R$)
  67. 500 GOTO 540
  68. 510 IF L+LEN(R$)-1 > LEN(C$) THEN 540
  69. 520 IF MID$(C$,L,LEN(R$))<>R$ THEN 540
  70. 530 C$=LEFT$(C$,L-1)+S$+RIGHT$(C$,LEN(C$)-L-LEN(R$)+1)
  71. 535 L=L+LEN(S$)
  72. 540 NEXT L
  73. 550 NEXT X
  74. 555 IF MID$(C$,2,1)=" " THEN C$=RIGHT$(C$,LEN(C$)-1):REM ONLY 1 SPACE
  75. 560 REM
  76. 570 REM  NOW USING THE KEYWORD NUMBER (K) GET REPLY
  77. 580 REM
  78. 590 RESTORE:FOR X=1 TO N1+N2:READ Z$:NEXT X
  79. 600 FOR X=1 TO R(K):READ F$:NEXT X:REM READ RIGHT REPLY
  80. 610 R(K)=R(K)+1:IF R(K)>N(K) THEN R(K)=S(K)
  81. 620 IF RIGHT$(F$,1)<>"*" THEN PRINT F$:P$=I$:GOTO 170
  82. 630 PRINT LEFT$(F$,LEN(F$)-1);C$
  83. 640 P$=I$:GOTO 170
  84. 1000 REM
  85. 1010 REM --- PROGRAM DATA FOLLOWS ---
  86. 1020 REM
  87. 1030 REM KEYWORDS
  88. 1040 REM
  89. 1045 REM      1        2        3        4        5        6
  90. 1050 DATA "CAN YOU","CAN I","YOU ARE","YOURE","I DONT","I FEEL"
  91. 1055 REM        7              8          9        10      11    12
  92. 1060 DATA "WHY DONT YOU","WHY CANT I","ARE YOU","I CANT","I AM","IM "
  93. 1065 REM    13      14      15    16    17     18      19    20
  94. 1070 DATA "YOU ","I WANT","WHAT","HOW","WHO","WHERE","WHEN","WHY"
  95. 1075 REM    21     22       23      24     25     26     27
  96. 1080 DATA "NAME","CAUSE","SORRY","DREAM","HELLO","HI ","MAYBE"
  97. 1085 REM    28    29      30      31      32     33      34
  98. 1090 DATA " NO","YOUR","ALWAYS","THINK","ALIKE","YES","FRIEND"
  99. 1095 REM       35         36
  100. 1100 DATA "COMPUTER","NOKEYFOUND"
  101. 1200 REM
  102. 1210 REM  STRING DATA FOR CONJUGATIONS
  103. 1220 REM
  104. 1225 REM     1      1      2       2       3      3      4     4  
  105. 1230 DATA " ARE "," AM ","WERE ","WAS "," YOU "," I ","YOUR ","MY "
  106. 1233 REM     5        5        6       6
  107. 1235 DATA " IVE "," YOUVE "," IM "," YOURE "
  108. 1300 REM
  109. 1310 REM  REPLIES
  110. 1320 REM
  111. 1325 REM        ANSWERS 1-3:  CAN YOU
  112. 1330 DATA "DON'T YOU BELIEVE THAT I CAN*"
  113. 1340 DATA "PERHAPS YOU WOULD LIKE TO BE ABLE TO*"
  114. 1350 DATA "YOU WANT ME TO BE ABLE TO*"
  115. 1355 REM        ANSWERS 4-5:  CAN I
  116. 1360 DATA "PERHAPS YOU DON'T WANT TO*"
  117. 1365 DATA "DO YOU WANT TO BE ABLE TO*"
  118. 1366 REM        ANSWERS 6-9:  YOU ARE and YOURE
  119. 1370 DATA "WHAT MAKES YOU THINK I AM*"
  120. 1380 DATA "DOES IT PLEASE YOU TO BELIEVE I AM*"
  121. 1390 DATA "PERHAPS YOU WOULD LIKE TO BE*"
  122. 1400 DATA "DO YOU SOMETIMES WISH YOU WERE*"
  123. 1405 REM        ANSWERS 10-13: I DONT
  124. 1410 DATA "DON'T YOU REALLY*"
  125. 1420 DATA "WHY DON'T YOU*"
  126. 1430 DATA "DO YOU WISH TO BE ABLE TO*"
  127. 1440 DATA "Does that trouble you?"
  128. 1445 REM        ANSWERS 14-16:  I FEEL
  129. 1450 DATA "Tell me more about such feelings."
  130. 1460 DATA "DO YOU OFTEN FEEL*"
  131. 1470 DATA "DO YOU ENJOY FEELING*"
  132. 1475 REM        ANSWERS 17-19:  WHY DONT YOU
  133. 1480 DATA "DO YOU REALLY BELIEVE I DON'T*"
  134. 1490 DATA "PERHAPS IN GOOD TIME I WILL*"
  135. 1500 DATA "DO YOU WANT ME TO*"
  136. 1505 REM        ANSWERS 20-21:  WHY CANT I
  137. 1510 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*"
  138. 1520 DATA "WHY CAN'T YOU*"
  139. 1525 REM        ANSWERS 22-24:  ARE YOU
  140. 1530 DATA "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*"
  141. 1540 DATA "WOULD YOU PREFER IF I WERE NOT*"
  142. 1550 DATA "PERHAPS IN YOUR FANTISIES I AM*"
  143. 1555 REM        ANSWERS 25-27:  I CANT
  144. 1560 DATA "HOW DO YOU KNOW YOU CAN'T*"
  145. 1570 DATA "Have you tried?"
  146. 1580 DATA "PERHAPS YOU CAN NOW*"
  147. 1585 REM        ANSWERS 28-31:  I AM and IM
  148. 1590 DATA "DID YOU COME TO ME BECAUSE YOU ARE*"
  149. 1600 DATA "HOW LONG HAVE YOU BEEN*"
  150. 1610 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*"
  151. 1620 DATA "DO YOU ENJOY BEING*"
  152. 1625 REM        ANSWERS 32-34:  YOU
  153. 1630 DATA "We were discussing you -- not me."
  154. 1640 DATA "OH, I*"
  155. 1650 DATA "You're not really talking about me, are you?"
  156. 1655 REM        ANSWERS 35-39:  I WANT
  157. 1660 DATA "WHAT WOULD IT MEAN TO YOU IF YOU GOT*"
  158. 1670 DATA "WHY DO YOU WANT*"
  159. 1680 DATA "SUPPOSE YOU SOON GOT*"
  160. 1690 DATA "WHAT IF YOU NEVER GOT*"
  161. 1700 DATA "I SOMETIMES ALSO WANT*"
  162. 1705 REM        ANSWERS 40-48:  WHAT, HOW, WHO, WHERE, WHEN and WHY
  163. 1710 DATA "Why do you ask?"
  164. 1720 DATA "Does that question interest you?"
  165. 1730 DATA "What answer would please you the most?"
  166. 1740 DATA "What do you think?"
  167. 1750 DATA "Are such questions on your mind often?"
  168. 1760 DATA "What is it that you really want to know?"
  169. 1770 DATA "Have you asked anyone else?"
  170. 1780 DATA "Have you asked such questions before?"
  171. 1790 DATA "What else comes to mind when you ask that?"
  172. 1795 REM        ANSWERS 49-50:  NAME
  173. 1800 DATA "Names don't interest me."
  174. 1810 DATA "I don't care about names -- please go on."
  175. 1815 REM        ANSWERS 51-54:  CAUSE
  176. 1820 DATA "Is that the real reason?"
  177. 1830 DATA "Don't any other reasons come to mind?"
  178. 1840 DATA "Does that reason explain anything else?"
  179. 1850 DATA "What other reasons might there be?"
  180. 1855 REM        ANSWERS 55-58:  SORRY
  181. 1860 DATA "Please don't apologize!"
  182. 1870 DATA "Apologies are not necessary."
  183. 1880 DATA "What feelings do you have when you apologize?"
  184. 1890 DATA "Don't be so defensive!"
  185. 1895 REM        ANSWERS 59-62:  DREAM
  186. 1900 DATA "What does that dream suggest to you?"
  187. 1910 DATA "Do you dream often?"
  188. 1920 DATA "What persons appear in your dreams?"
  189. 1930 DATA "Are you disturbed by your dreams?"
  190. 1935 REM        ANSWER 63:  HELLO and HI
  191. 1940 DATA "How do you do ... Please state your problem."
  192. 1945 REM        ANSWERS 64-68:  MAYBE
  193. 1950 DATA "You don't seem quite certain."
  194. 1960 DATA "Why the uncertain tone?"
  195. 1970 DATA "Can't you be more positive?"
  196. 1980 DATA "You aren't sure?"
  197. 1990 DATA "Don't you know?"
  198. 1995 REM        ANSWERS 69-73:  NO
  199. 2000 DATA "Are you saying no just to be negative?"
  200. 2010 DATA "You are being a bit negative."
  201. 2020 DATA "Why not?"
  202. 2030 DATA "Are you sure?"
  203. 2040 DATA "Why no?"
  204. 2045 REM        ANSWERS 74-75:  YOUR
  205. 2050 DATA "WHY ARE YOU CONCERNED ABOUT MY*"
  206. 2060 DATA "WHAT ABOUT YOUR OWN*"
  207. 2065 REM        ANSWERS 76-79:  ALWAYS
  208. 2070 DATA "Can you think of a specific example?"
  209. 2080 DATA "When?"
  210. 2090 DATA "What are you thinking of?"
  211. 2100 DATA "Really, always?"
  212. 2105 REM        ANSWERS 80-82:  THINK
  213. 2110 DATA "Do you really think so?"
  214. 2120 DATA "BUT YOU ARE NOT SURE YOU*"
  215. 2130 DATA "DO YOU DOUBT YOU*"
  216. 2135 REM        ANSWERS 83-89:  ALIKE
  217. 2140 DATA "In what way?"
  218. 2150 DATA "What resemblance do you see?"
  219. 2160 DATA "What does the similarity suggest to you?"
  220. 2170 DATA "What other connections do you see?"
  221. 2180 DATA "Could there really be some connection?"
  222. 2190 DATA "How?"
  223. 2200 DATA "You seem quite positive."
  224. 2205 REM        ANSWERS 90-92:  YES
  225. 2210 DATA "Are you sure?"
  226. 2220 DATA "I see."
  227. 2230 DATA "I understand."
  228. 2235 REM        ANSWERS 93-98:  FRIEND
  229. 2240 DATA "Why do you bring up the topic of friends?"
  230. 2250 DATA "Do your friends worry you?"
  231. 2260 DATA "Do your friends pick on you?"
  232. 2270 DATA "Are you sure you have any friends?"
  233. 2280 DATA "Do you impose on your friends?"
  234. 2290 DATA "Perhaps your love for friends worries you."
  235. 2295 REM        ANSWERS 99-105:  COMPUTER
  236. 2300 DATA "Do computers worry you?"
  237. 2310 DATA "Are you talking about me in particular?"
  238. 2320 DATA "Are you frightened by machines?"
  239. 2330 DATA "Why do you mention computers?"
  240. 2340 DATA "What do you think machines have to do with your problem?"
  241. 2350 DATA "Don't you think computers can help people?"
  242. 2360 DATA "What is it about machines that worries you?"
  243. 2365 REM        ANSWERS 106-112:  no key found
  244. 2370 DATA "Say, do you have any psychological problems?"
  245. 2380 DATA "What does that suggest to you?"
  246. 2390 DATA "I see."
  247. 2400 DATA "I'm not sure I understand you fully."
  248. 2410 DATA "Come come, elucidate your thoughts."
  249. 2420 DATA "Can you elaborate on that?"
  250. 2430 DATA "That is quite interesting."
  251. 2500 REM
  252. 2510 REM  DATA FOR FINDING RIGHT REPLIES
  253. 2520 REM
  254. 2525 REM CAN YOU through I CANT
  255. 2530 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3
  256. 2535 REM  I AM through WHY
  257. 2540 DATA 28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9
  258. 2545 REM  NAME through ALWAYS
  259. 2550 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4
  260. 2555 REM  THINK through NOKEYFOUND
  261. 2560 DATA 80,3,83,7,90,3,93,6,99,7,106,6
  262. 
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement