home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-users-of-norman / CUON_02_(08-1984).d64 / eliza.c (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  6KB  |  193 lines

  1. 1 REM *** ELIZA
  2. 2 REM     SUBMITTED BY DENNIS CUMBERTON
  3. 3 REM
  4. 4 REM *** PET USER GROUP
  5. 5 REM     SOFTWARE EXCHANGE
  6. 6 REM     PO BOX 371
  7. 7 REM     MONTGOMERYVILLE, PA 18936
  8. 8 REM
  9. 100 DIMS(36):DIMR(36):DIMN(36)
  10. 110 N1=36:N2=12:N3=112
  11. 120 FOR X=1 TO N1+N2+N3:READZ$:NEXT X
  12. 125 FOR X=1 TO N1
  13. 130 READS(X),L:R(X)=S(X):N(X)=S(X)+L-1
  14. 135 NEXT X
  15. 160 PRINT"[147]":PRINT:PRINT:PRINT"HI! I'M ELIZA.  WHAT'S YOUR PROBLEM?"
  16. 200 INPUT"  >[157][157][157]";I$:I$=" "+I$+"  "
  17. 220 FOR L=1 TO LEN(I$)
  18. 230 IFMID$(I$,L,1)="'"THENI$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO230
  19. 240 IFL+4<=LEN(I$)THENIFMID$(I$,L,4)="SHUT"THENPRINT"SHUT UP INDEED":GOSUB2600:RUN
  20. 250 NEXT L
  21. 255 IF I$=P$ THEN PRINT"PLEASE DON'T REPEAT YOURSELF!":GOTO200
  22. 290 RESTORE
  23. 295 S=0
  24. 300 FORK=1 TO N1
  25. 310 READK$:IF S>0 THEN 360
  26. 320 FORL=1TOLEN(I$)-LEN(K$)+1
  27. 340 IF MID$(I$,L,LEN(K$))=K$THENS=K:T=L:F$=K$
  28. 350 NEXT L
  29. 360 NEXT K
  30. 365 IF S>0THENK=S:L=T:GOTO420
  31. 370 K=36:GOTO590:REM-NO KEYWORD
  32. 420 RESTORE:FORX=1TON1:READZ$:NEXT X:REM SKIP OVER KEYWORDS
  33. 430 C$=" "+RIGHT$(I$,LEN(I$)-LEN(F$)-L+1)
  34. 440 FOR X=1 TO N2/2
  35. 450 READS$,R$
  36. 460 FORL=1TOLEN(C$)
  37. 470 IF L+LEN(S$)>LEN(C$)THEN510
  38. 480 IF MID$(C$,L,LEN(S$))<>S$ THEN 510
  39. 490 C$=LEFT$(C$,L-1)+R$+RIGHT$(C$,LEN(C$)-L-LEN(S$)+1)
  40. 495 L=L+LEN(R$)
  41. 500 GOTO540
  42. 510 IF L+LEN(R$)>LEN(C$)THEN540
  43. 520 IFMID$(C$,L,LEN(R$))<>R$THEN540
  44. 530 C$=LEFT$(C$,L-1)+S$+RIGHT$(C$,LEN(C$)-L-LEN(R$)+1)
  45. 535 L=L+LEN(S$)
  46. 540 NEXT L
  47. 550 NEXTX
  48. 555 IFMID$(C$,2,1)=" "THENC$=RIGHT$(C$,LEN(C$)-1):REM ONLY ONE SPACE
  49. 590 RESTORE:FOR X=1 TO N1+N2:READ Z$:NEXT X
  50. 600 FORX=1TOR(K):READF$:NEXT X:REM READ RIGHT REPLY
  51. 610 R(K)=R(K)+1:IFR(K)>N(K) THEN R(K)=S(K)
  52. 620 IF RIGHT$(F$,1)<>"*" THEN PRINT F$:P$=I$:GOTO200
  53. 630 PRINTLEFT$(F$,LEN(F$)-1);C$
  54. 640 P$=I$:GOTO200
  55. 1000 REM
  56. 1010 REM----PROGRAM DATA FOLLOWS----
  57. 1050 DATA"CAN YOU","CAN I","YOU ARE","YOURE","I DONT","I FEEL"
  58. 1060 DATA"WHY DONT YOU","WHY CANT I","ARE YOU","I CANT","I AM","IM "
  59. 1070 DATA"YOU ","I WANT","WHAT","HOW","WHO","WHERE","WHEN","WHY"
  60. 1080 DATA"NAME","CAUSE","SORRY","DREAM","HELLO"," HI ","MAYBE"
  61. 1090 DATA" NO ","YOUR ","ALWAYS","THINK","ALIKE","YES","FRIEND"
  62. 1100 DATA"COMPUTER","NOKEYFOUND"
  63. 1200 REM
  64. 1210 REM  STRING DATA FOR CONJUGATIONS
  65. 1220 REM
  66. 1230 DATA" ARE "," AM ","WERE ","WAS "," YOU "," I "," MY "," YOUR "
  67. 1235 DATA" IVE "," YOUVE "," IM "," YOURE "
  68. 1300 REM
  69. 1310 REM     REPLIES
  70. 1320 REM
  71. 1330 DATA"DON'T YOU BELIEVE THAT I CAN*"
  72. 1340 DATA"PERHAPS YOU WOULD LIKE TO BE ABLE TO*"
  73. 1350 DATA"YOU WANT ME TO BE ABLE TO*"
  74. 1360 DATA"PERHAPS YOU DON'T WANT TO*"
  75. 1365 DATA"DO YOU WANT TO BE ABLE TO*"
  76. 1370 DATA"WHAT MAKES YOU THINK I AM*"
  77. 1380 DATA"DOES IT PLEASE YOU TO BELIEVE I AM*"
  78. 1390 DATA"PERHAPS YOU WOULD LIKE TO BE*"
  79. 1400 DATA"DO YOU SOMETIMES WISH YOU WERE*"
  80. 1410 DATA"DON'T YOU REALLY*"
  81. 1420 DATA"WHY DON'T YOU*"
  82. 1430 DATA"DO YOU WISH TO BE ABLE TO*"
  83. 1440 DATA"DOES THAT TROUBLE YOU*"
  84. 1450 DATA"TELL ME MORE ABOUT SUCH FEELINGS*"
  85. 1460 DATA"DO YOU OFTEN FEEL*"
  86. 1470 DATA"DO YOU ENJOY FEELING*"
  87. 1480 DATA"DO YOU REALLY BELIEVE I DON'T*"
  88. 1490 DATA"PERHAPS IN GOOD TIME I WILL*"
  89. 1500 DATA"DO YOU WANT ME TO*"
  90. 1510 DATA"DO YOU THINK YOU SHOULD BE ABLE TO*"
  91. 1520 DATA"WHY CAN'T YOU*"
  92. 1530 DATA"WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*"
  93. 1540 DATA"WOULD YOU PREFER IF I WERE NOT*"
  94. 1550 DATA"PERHAPS IN YOUR FANTASIES I AM*"
  95. 1560 DATA"HOW DO YOU KNOW YOU CAN'T*"
  96. 1570 DATA"HAVE YOU TRIED?"
  97. 1580 DATA"PERHAPS YOU CAN NOW*"
  98. 1590 DATA"DID YOU COME TO ME BECAUSE YOU ARE*"
  99. 1600 DATA"HOW LONG HAVE YOU BEEN*"
  100. 1610 DATA"DO YOU BELIEVE IT IS NORMAL TO BE*"
  101. 1620 DATA"DO YOU ENJOY BEING*"
  102. 1630 DATA"WE WERE DISCUSSING YOU-- NOT ME."
  103. 1640 DATA"OH, I*"
  104. 1650 DATA"YOURE NOT REALLY TALKING ABOUT ME, ARE YOU?"
  105. 1660 DATA"WHAT WOULD IT MEAN TO YOU IF YOU GOT*"
  106. 1670 DATA"WHY DO YOU WANT*"
  107. 1680 DATA"SUPPOSE YOU SOON GOT*"
  108. 1690 DATA"WHAT IF YOU NEVER GOT*"
  109. 1700 DATA"I SOMETIMES ALSO WANT*"
  110. 1710 DATA"WHY DO YOU ASK?"
  111. 1720 DATA"DOES THAT QUESTION INTEREST YOU?"
  112. 1730 DATA"WHAT ANSWER WOULD PLEASE YOU THE MOST?"
  113. 1740 DATA"WHAT DO YOU THINK?"
  114. 1750 DATA"ARE SUCH QUESTIONS ON YOUR MIND OFTEN?"
  115. 1760 DATA"WHAT IS IT THAT YOU REALLY WANT TO KNOW
  116. 1770 [131]"HAVE YOU ASKED ANYONE ELSE?"
  117. 1780 [131]"HAVE YOU ASKED SUCH QUESTIONS BEFORE?"
  118. 1790 [131]"WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?"
  119. 1800 [131]"NAMES DON'T INTEREST ME."
  120. 1810 [131]"I DON'T CARE ABOUT NAMES-- PLEASE GO ON."
  121. 1820 [131]"IS THAT THE REAL REASON?"
  122. 1830 [131]"DON'T ANY OTHER REASONS COME TO MIND?"
  123. 1840 [131]"DOES THAT REASON EXPLAIN ANYTHING ELSE?"
  124. 1850 [131]"WHAT OTHER REASONS MIGHT THERE BE?"
  125. 1860 [131]"PLEASE DON'T APOLOGISE!"
  126. 1870 [131]"APOLOGIES ARE NOT NECESSARY."
  127. 1880 [131]"WHAT FEELINGS DO YOU HAVE WHEN YOU      APOLOGISE?"
  128. 1890 [131]"DON'T BE SO DEFENSIVE!"
  129. 1900 [131]"WHAT DOES THAT DREAM SUGGEST TO YOU?"
  130. 1910 [131]"DO YOU DREAMOFTEN?"
  131. 1920 [131]"WHAT PERSONS APPEAR IN YOUR DREAMS?"
  132. 1930 [131]"ARE YOU DISTURBED BY YOUR DREAMS?"
  133. 1940 [131]"HOW DO YOU DO..PLEASE STATE YOUR PROBLEM"
  134. 1950 [131]"YOU DON'T SEEM QUITE CERTAIN."
  135. 1960 [131]"WHY THE UNCERTAIN TONE?"
  136. 1970 [131]"CAN'T YOU BE MORE POSITIVE?"
  137. 1980 [131]"YOU AREN'T SURE?"
  138. 1990 [131]"DON'T YOU KNOW?"
  139. 2000 [131]"ARE YOU SAYING NO JUST TO BE NEGATIVE?"
  140. 2010 [131]"YOU ARE BEING A BIT NEGATIVE."
  141. 2020 [131]"WHY NOT?"
  142. 2030 [131]"ARE YOU SURE?"
  143. 2040 [131]"WHY NO?"
  144. 2050 [131]"WHY ARE YOU CONCERNED ABOUT MY*"
  145. 2060 [131]"WHAT ABOUT YOUR OWN*"
  146. 2070 [131]"CAN YOU THINK OF A SPECIFIC EXAMPLE?"
  147. 2080 [131]"WHEN?"
  148. 2090 [131]"WHAT ARE YOU THINKING OF?"
  149. 2100 [131]"REALLY, ALWAYS?"
  150. 2110 [131]"DO YOU REALLY THINK SO?"
  151. 2120 [131]"BUT YOU ARE NOT SURE *"
  152. 2130 [131]"DO YOU DOUBT YOU*"
  153. 2140 [131]"IN WHAT WAY?"
  154. 2150 [131]"WHAT RESEMBLANCE DO YOU SEE?"
  155. 2160 [131]"WHAT DOES THE SIMILARITY SUGGEST TO YOU?"
  156. 2170 [131]"WHAT OTHER CONNECTIONS DO YOU SEE?"
  157. 2180 [131]"COULD THERE REALLY BE SOME CONNECTION?"
  158. 2190 [131]"HOW?"
  159. 2200 [131]"YOU SEEM QUITE POSITIVE."
  160. 2210 [131]"ARE YOU SURE?"
  161. 2220 [131]"I SEE."
  162. 2230 [131]"I UNDERSTAND."
  163. 2240 [131]"WHY DO YOU BRING UP THE TOPIC OF FRIENDS?"
  164. 2250 [131]"DO YOUR FRIENDS WORRY YOU?"
  165. 2260 [131]"DO YOUR FRIENDS PICK ON YOU?"
  166. 2270 [131]"ARE YOU SURE YOU HAVE ANY FRIENDS?"
  167. 2280 [131]"DO YOU IMPOSE ON YOUR FRIENDS?"
  168. 2290 [131]"PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU."
  169. 2300 [131]"DO COMPUTERS WORRY YOU?"
  170. 2310 [131]"ARE YOU TALKING ABOUT ME IN PARTICULAR?"
  171. 2320 [131]"ARE YOU FRIGHTENED BY MACHINES?"
  172. 2330 [131]"WHY DO YOU MENTION COMPUTERS?"
  173. 2340 [131]"WHAT DO YOU THINK MACHINES HAVE TO DO   WITH YOUR PROBLEMS?"
  174. 2350 [131]"DON'T YOU THINK COMPUTERS CAN HELP      PEOPLE?"
  175. 2360 [131]"WHAT IS IT ABOUT MACHINES THAT WORRIES  YOU?"
  176. 2370 [131]"SAY,DO YOU HAVE ANY PSYCHOLOGICAL       PROBLEMS?"
  177. 2380 [131]"WHAT DOES THAT SUGGEST TO YOU?"
  178. 2390 [131]"I SEE."
  179. 2400 [131]"I'M NOT SURE I UNDERSTAND YOU FULLY."
  180. 2410 [131]"COME COME, ELUCIDATE!"
  181. 2420 [131]"CAN YOU ELABORATE ON THAT?"
  182. 2430 [131]"THAT IS QUITE INTERESTING."
  183. 2500 [143]
  184. 2510 [143]  DATA FOR FINDING RIGHT REPLIES
  185. 2520 [143]
  186. 2530 [131] 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3
  187. 2540 [131] 28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9
  188. 2550 [131] 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4
  189. 2560 [131] 80,3,83,7,90,3,93,6,99,7,106,6
  190. 2600 [129] Q[178]1[164]2700:[130]
  191. 2605 [142]
  192. 2700 [143]-BEST 24 JUN,381
  193.