10 REM Eliza 20 REM (C) 1996 Jon Ripley 30 REM This program is PD 40 DEFFNS="Eliza" 50 MODE 7 60 FORX=1TO2:PRINTTAB(8,X)CHR$141;CHR$(127+2*X)"Eliza (C) Jon Ripley":NEXT 70 VDU28,0,24,39,4 80 CLS 90 PROCinit 100 ONERRORMODE7:PRINT"Goodbye!":END 110 PRINT"Welcome to Eliza." 120 INPUT"What is your first name:"n$ 130 IF n$="" n$="Mr. Nobody" 140 PRINT'"HELLO ";n$"." 150 A%=RND(-TIME) 160 PRINT'"OK ";n$" WHAT SEEMS TO BE THE PROBLEM?" 170 REPEAT 180 INPUTLINEa$ 190 IF a$="" PRINT" >Pardon...":GOTO380 200 PRINT" >"; 210 b$="" 220 FORx=1TOLENa$ 230 c$=MID$(a$,x,1) 240 IFc$>="a"ANDc$<="z"b$=b$+CHR$(ASC(c$)-32)ELSEb$=b$+c$ 250 NEXT 260 a$=b$ 270 IFINSTR(a$,"BYE")PRINT''"Goodbye for now, ";n$".":END 280 IFLEFT$(a$,7)="BECAUSE" a$=RIGHT$(a$,LENa$-7) 290 a$=" "+a$+" " 300 z=0 310 REPEAT 320 z=z+1 330 d=INSTR(a$,d$(z)) 340 UNTILd<>0ORz=t1 350 IFd<>0 PROCprocess:UNTIL. 360 PRINTh$(RND(t3)) 370 PRINT 380 UNTIL. 390 END 400 DEFPROCinit 410 t1=35 420 t2=11 430 t3=11 440 DIMd$(t1),e$(t1),f$(t2),g$(t2),h$(t3) 450 FORx=1TOt1 460 READd$(x),e$(x) 470 NEXT 480 FORx=1TOt2 490 READf$(x),g$(x) 500 NEXT 510 FORx=1TOt3 520 READh$(x) 530 NEXT 540 READa$ 550 IFa$<>"ZZZZ"VDU7:PRINT"Error in data!":END 560 ENDPROC 570 DEFPROCprocess 580 PRINTe$(z)" "; 590 IFRIGHT$(e$(z),1)<"A"PRINT:ENDPROC 600 h=LENa$-(d+LEN(d$(z))) 610 IFh>0a$=RIGHT$(a$,h) 620 z=0 630 REPEAT 640 z=z+1 650 d=INSTR(a$,f$(z)) 660 IFz>=t2 PRINTa$:UNTILTRUE:ENDPROC 670 UNTILd<>0 680 j$=LEFT$(a$,(d-1))+" "+g$(z) 690 z=LEN(a$)-LEN(LEFT$(a$,(d-1)))-LEN(g$(z)) 700 PRINTj$ 710 IFz>2 l$=RIGHT$(a$,(z-2)):IFINSTR(j$,l$)=0ENDPROC:REM ****K$???*** 720 IFz>2PRINTRIGHT$(a$,(z-2)) 730 IFz<2 PRINT 740 ENDPROC 750 REM Keywords, Replies 760 DATA " CAN YOU","PERHAPS YOU WOULD LIKE TO BE ABLE TO" 770 DATA " DO YOU","YES, I" 780 DATA " CAN I","PERHAPS YOU DON'T WANT TO BE ABLE TO" 790 DATA " YOU ARE","WHAT MAKES YOU THINK I AM" 800 DATA " YOU'RE","WHAT IS YOUR REACTION TO ME BEING" 810 DATA " I DON'T","WHAT DON'T YOU" 820 DATA " I FEEL","TELL ME MORE ABOUT FEELING" 830 DATA " WHY DON'T YOU","WHY WOULD YOU WANT ME TO" 840 DATA " WHY CAN'T I","WHAT MAKES YOU THINK YOU SHOULD BE ABLE TO" 850 DATA " ARE YOU","WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM" 860 DATA " I CAN'T","HOW DO YOU KNOW YOU CAN'T" 870 DATA " SEX","I FEEL YOU SHOULD REALLY DISCUSS THIS WITH A HUMAN?" 880 DATA " I AM","HOW LONG HAVE YOU BEEN" 890 DATA " I'M","WHY ARE YOU TELLING ME YOU'RE" 900 DATA " I WANT","WHY DO YOU WANT" 910 DATA " WHAT","WHAT DO YOU THINK?" 920 DATA " HOW","WHAT ANSWER WOULD PLEASE YOU MOST?" 930 DATA " WHO","HOW OFTEN DO YOU THINK OF SUCH QUESTIONS?" 940 DATA " WHERE","WHY DID YOU ASK ME THAT?" 950 DATA " WHEN","WHAT WOULD YOUR BEST FRIEND SAY TO THAT QUESTION?" 960 DATA " WHY","WHAT IS IT THAT YOU REALLY WANT TO KNOW" 970 DATA " PERHAPHS","YOU'RE NOT VERY FIRM ON THAT!" 980 DATA " DRINK","MODERATION IN ALL THINGS SHOULD BE THE RULE." 990 DATA " SORRY","WHY ARE YOU APOLOGOZING?" 1000 DATA " DREAM","WHY DID YOU BRING UP THE SUBJECT OF DREAMS?" 1010 DATA " I LIKE","IS IT GOOD THAT YOU LIKE" 1020 DATA " MAYBE","AREN'T YOU BEING A BIT NEGATIVE" 1030 DATA " NO","WHY ARE YOU BEING NEGATIVE?" 1040 DATA " YOUR","WHY ARE YOU CONCERNED ABOUT MY" 1050 DATA " ALWAYS","CAN YOU THINK OF A SPECIFIC EXAMPLE" 1060 DATA " THINK","DO YOU DOUBT" 1070 DATA " YES","YOU SEEM QUITE CERTAIN. WHY IS THIS SO?" 1080 DATA " COMPUTER","WHY DO YOU MENTION COMPUTERS" 1090 DATA " FRIEND","WHY DO YOU BRING UP THE SUBJECT OF FRIENDS" 1100 DATA " I AM","YOU ARE" 1110 REM CONJUGATE 1120 DATA " I","YOU" 1130 DATA " ARE","AM" 1140 DATA " WERE","WAS" 1150 DATA " YOU","ME" 1160 DATA " YOUR","MY" 1170 DATA " I'VE","YOU'VE" 1180 DATA " I'M","YOU'RE" 1190 DATA " ME","YOU" 1200 DATA " AM I","YOU ARE" 1210 DATA " AM ","ARE" 1220 DATA " MY","YOUR" 1230 REM Random Replies 1240 DATA "WHAT DOES THAT SUGGEST TO YOU?" 1250 DATA "I SEE..." 1260 DATA "I'M NOT SURE I UNDERSTAND YOU FULLY." 1270 DATA "CAN YOU ELABORATE ON THAT?" 1280 DATA "THAT'S QUITE INTERESTING!" 1290 DATA "THAT'S SO...PLEASE CONTINUE..." 1300 DATA "I UNDERSTAND..." 1310 DATA "WELL, WELL...DO GO ON." 1320 DATA "WHY ARE YOU SAYING THAT?" 1330 DATA "PLEASE EXPLAIN THE BACKGROUND TO THAT REMARK." 1340 DATA "COULD YOU SAY THAT AGAIN, IN A DIFFERENT WAY?" 1350 REM End 1360 DATA "ZZZZ"