Files
elizagen.org/Other_Elizas/DaveBabcockEliza_20150910.bas
2021-07-26 13:13:33 -07:00

262 lines
13 KiB
QBasic

100 REM APPLELIZA 1.0
110 REM BY DAVE BABCOCK
120 DIM I$(100),R$(255),W$(40),W(50),W1(50),W2(50)
130 CALL -936: VTAB 10: TAB 13: PRINT "APPLELIZA 1.0": VTAB 12: TAB 19: PRINT "BY": VTAB 14: TAB 14: PRINT "DAVE BABCOCK"
140 FOR I=1 TO 2000: NEXT I
150 CALL -936: PRINT "HI! I'M ELIZA.": PRINT : GOTO 200+ RND (3)
200 PRINT "WHAT'S YOUR PROBLEM?": GOTO 500
201 PRINT "WHAT WOULD YOU LIKE TO TALK ABOUT TODAY?": GOTO 500
202 PRINT "WHAT'S ON YOUR MIND TODAY?": GOTO 500
500 PRINT :K=0:N=0:P2=0: INPUT I$:I$( LEN(I$)+1)=" "
1000 P1=P2+1:P2=P1: IF P2> LEN(I$) THEN 2000
1010 C$=I$(P2,P2): IF C$=" " OR C$="." OR C$="," OR C$=":" OR C$=";" OR C$="!" OR C$="?" THEN 1020:P2=P2+1: GOTO 1010
1020 L=P2-P1: IF L=0 THEN 1000: IF L>8 THEN 1900:W$=I$(P1,P2-1): GOTO 1000+L*100
1100 IF W$#"I" THEN 1900:K=K+1:W(K)=1: GOTO 1000
1200 IF W$#"AM" THEN 1201:K=K+1:W(K)=2: GOTO 1000
1201 IF W$#"HI" THEN 1202:K=K+1:W(K)=3: GOTO 1000
1202 IF W$#"IM" THEN 1203:K=K+1:W(K)=4: GOTO 1000
1203 IF W$#"MY" THEN 1204:K=K+1:W(K)=5: GOTO 1000
1204 IF W$#"NO" THEN 1900:K=K+1:W(K)=6: GOTO 1000
1300 IF W$#"ARE" THEN 1301:K=K+1:W(K)=7: GOTO 1000
1301 IF W$#"BYE" THEN 1302:K=K+1:W(K)=8: GOTO 1000
1302 IF W$#"CAN" THEN 1303:K=K+1:W(K)=9: GOTO 1000
1303 IF W$#"HOW" THEN 1304:K=K+1:W(K)=10: GOTO 1000
1304 IF W$#"I'M" THEN 1305:K=K+1:W(K)=11: GOTO 1000
1305 IF W$#"IVE" THEN 1306:K=K+1:W(K)=12: GOTO 1000
1306 IF W$#"WAS" THEN 1307:K=K+1:W(K)=13: GOTO 1000
1307 IF W$#"WHO" THEN 1308:K=K+1:W(K)=14: GOTO 1000
1308 IF W$#"WHY" THEN 1309:K=K+1:W(K)=15: GOTO 1000
1309 IF W$#"YES" THEN 1310:K=K+1:W(K)=16: GOTO 1000
1310 IF W$#"YOU" THEN 1900:K=K+1:W(K)=17: GOTO 1000
1400 IF W$#"CANT" THEN 1401:K=K+1:W(K)=18: GOTO 1000
1401 IF W$#"DONT" THEN 1402:K=K+1:W(K)=19: GOTO 1000
1402 IF W$#"FEEL" THEN 1403:K=K+1:W(K)=20: GOTO 1000
1403 IF W$#"I'VE" THEN 1404:K=K+1:W(K)=21: GOTO 1000
1404 IF W$#"NAME" THEN 1405:K=K+1:W(K)=22: GOTO 1000
1405 IF W$#"WANT" THEN 1406:K=K+1:W(K)=23: GOTO 1000
1406 IF W$#"WERE" THEN 1407:K=K+1:W(K)=24: GOTO 1000
1407 IF W$#"WHAT" THEN 1408:K=K+1:W(K)=25: GOTO 1000
1408 IF W$#"WHEN" THEN 1409:K=K+1:W(K)=26: GOTO 1000
1409 IF W$#"YOUR" THEN 1900:K=K+1:W(K)=27: GOTO 1000
1500 IF W$#"ALIKE" THEN 1501:K=K+1:W(K)=28: GOTO 1000
1501 IF W$#"CAN'T" THEN 1502:K=K+1:W(K)=29: GOTO 1000
1502 IF W$#"CAUSE" THEN 1503:K=K+1:W(K)=30: GOTO 1000
1503 IF W$#"DON'T" THEN 1504:K=K+1:W(K)=31: GOTO 1000
1504 IF W$#"DREAM" THEN 1505:K=K+1:W(K)=32: GOTO 1000
1505 IF W$#"ELIZA" THEN 1506:K=K+1:W(K)=33: GOTO 1000
1506 IF W$#"HELLO" THEN 1507:K=K+1:W(K)=34: GOTO 1000
1507 IF W$#"MAYBE" THEN 1508:K=K+1:W(K)=35: GOTO 1000
1508 IF W$#"SORRY" THEN 1509:K=K+1:W(K)=36: GOTO 1000
1509 IF W$#"THINK" THEN 1510:K=K+1:W(K)=37: GOTO 1000
1510 IF W$#"WHERE" THEN 1511:K=K+1:W(K)=38: GOTO 1000
1511 IF W$#"YOURE" THEN 1512:K=K+1:W(K)=39: GOTO 1000
1512 IF W$#"YOUVE" THEN 1900:K=K+1:W(K)=40: GOTO 1000
1600 IF W$#"ALWAYS" THEN 1601:K=K+1:W(K)=41: GOTO 1000
1601 IF W$#"FRIEND" THEN 1602:K=K+1:W(K)=42: GOTO 1000
1602 IF W$#"YOU'RE" THEN 1603:K=K+1:W(K)=43: GOTO 1000
1603 IF W$#"YOU'VE" THEN 1900:K=K+1:W(K)=44: GOTO 1000
1700 IF W$#"GOODBYE" THEN 1900:K=K+1:W(K)=45: GOTO 1000
1800 IF W$#"COMPUTER" THEN 1900:K=K+1:W(K)=46: GOTO 1000
1900 N=N+1:W1(N)=P1:W2(N)=P2-1:K=K+1:W(K)=1000+N: GOTO 1000
2000 IF K=0 THEN GOTO 3106+ RND (7)
2001 FOR I=2 TO K: IF W(I-1)=9 AND W(I)=17 THEN GOTO 3001+ RND (3): NEXT I
2002 FOR I=2 TO K: IF W(I-1)=9 AND W(I)=1 THEN GOTO 3004+ RND (2): NEXT I
2003 FOR I=2 TO K: IF W(I-1)=17 AND W(I)=7 THEN GOTO 3006+ RND (4): NEXT I
2004 FOR I=1 TO K: IF W(I)=39 OR W(I+1)=43 THEN GOTO 3006+ RND (4): NEXT I
2005 FOR I=2 TO K: IF W(I-1)=1 AND (W(I)=19 OR W(I)=31) THEN GOTO 3010+ RND (4): NEXT I
2006 FOR I=2 TO K: IF W(I-1)=1 AND W(I)=20 THEN GOTO 3014+ RND (3): NEXT I
2007 FOR I=3 TO K: IF W(I-2)=15 AND (W(I-1)=19 OR W(I-1)=31) AND W(I)=17 THEN GOTO 3017+ RND (3): NEXT I
2008 FOR I=3 TO K: IF W(I-2)=15 AND (W(I-1)=18 OR W(I-1)=29) AND W(I)=1 THEN GOTO 3020+ RND (2): NEXT I
2009 FOR I=2 TO K: IF W(I-1)=7 AND W(I)=17 THEN GOTO 3022+ RND (3): NEXT I
2010 FOR I=2 TO K: IF W(I-1)=1 AND (W(I)=18 OR W(I)=29) THEN GOTO 3025+ RND (3): NEXT I
2011 FOR I=2 TO K: IF W(I-1)=1 AND W(I)=2 THEN GOTO 3028+ RND (4): NEXT I
2012 FOR I=1 TO K: IF W(I)=4 OR W(I)=11 THEN GOTO 3028+ RND (4): NEXT I
2013 FOR I=1 TO K: IF W(I)=17 THEN GOTO 3032+ RND (3): NEXT I
2014 FOR I=2 TO K: IF W(I-1)=1 AND W(I)=23 THEN GOTO 3035+ RND (5): NEXT I
2015 FOR I=1 TO K: IF W(I)=25 OR W(I)=10 OR W(I)=14 OR W(I)=38 OR W(I)=26 OR W(I)=15 THEN GOTO 3040+ RND (9): NEXT I
2016 FOR I=1 TO K: IF W(I)=22 THEN GOTO 3049+ RND (2): NEXT I
2017 FOR I=1 TO K: IF W(I)=30 THEN GOTO 3051+ RND (4): NEXT I
2018 FOR I=1 TO K: IF W(I)=36 THEN GOTO 3055+ RND (4): NEXT I
2019 FOR I=1 TO K: IF W(I)=32 THEN GOTO 3059+ RND (4): NEXT I
2020 FOR I=2 TO K: IF W(I-1)=34 AND W(I)=3 THEN 3063: NEXT I
2021 FOR I=1 TO K: IF W(I)=35 THEN GOTO 3064+ RND (5): NEXT I
2022 FOR I=1 TO K: IF W(I)=6 THEN GOTO 3069+ RND (5): NEXT I
2023 FOR I=1 TO K: IF W(I)=27 THEN GOTO 3074+ RND (2): NEXT I
2024 FOR I=1 TO K: IF W(I)=41 THEN GOTO 3076+ RND (4): NEXT I
2025 FOR I=1 TO K: IF W(I)=37 THEN GOTO 3080+ RND (3): NEXT I
2026 FOR I=1 TO K: IF W(I)=28 THEN GOTO 3083+ RND (7): NEXT I
2027 FOR I=1 TO K: IF W(I)=16 THEN GOTO 3090+ RND (3): NEXT I
2028 FOR I=1 TO K: IF W(I)=42 THEN GOTO 3093+ RND (6): NEXT I
2029 FOR I=1 TO K: IF W(I)=46 THEN GOTO 3099+ RND (7): NEXT I
2030 FOR I=2 TO K: IF (W(I-1)=8 OR W(I-1)=45) AND W(I)=33 THEN 7000
2031 GOTO 3106+ RND (7)
3001 R$="DON'T YOU BELIEVE THAT I CAN": GOTO 4000
3002 R$="PERHAPS YOU WOULD LIKE TO BE ABLE TO": GOTO 4000
3003 R$="YOU WANT ME TO BE ABLE TO": GOTO 4000
3004 R$="PERHAPS YOU DON'T WANT TO": GOTO 4000
3005 R$="DO YOU WANT TO BE ABLE TO": GOTO 4000
3006 R$="WHAT MAKES YOU THINK I AM": GOTO 4000
3007 R$="DOES IT PLEASE YOU TO BELIEVE I AM": GOTO 4000
3008 R$="PERHAPS YOU WOULD LIKE TO BE": GOTO 4000
3009 R$="DO YOU SOMETIMES WISH YOU WERE": GOTO 4000
3010 R$="DON'T YOU REALLY": GOTO 4000
3011 R$="WHY DON'T YOU": GOTO 4000
3012 R$="DO YOU WISH TO BE ABLE TO": GOTO 4000
3013 R$="DOES THAT TROUBLE YOU?": GOTO 6000
3014 R$="TELL ME MORE ABOUT SUCH FEELINGS.": GOTO 6000
3015 R$="DO YOU OFTEN FEEL": GOTO 4000
3016 R$="DO YOU ENJOY FEELING": GOTO 4000
3017 R$="DO YOU REALLY BELIEVE I DON'T": GOTO 4000
3018 R$="PERHAPS IN GOOD TIME I WILL": GOTO 4000
3019 R$="DO YOU WANT ME TO": GOTO 4000
3020 R$="DO YOU THINK YOU SHOULD BE ABLE TO": GOTO 4000
3021 R$="WHY CAN'T YOU": GOTO 4000
3022 R$="WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM": GOTO 4000
3023 R$="WOULD YOU PREFER IF I WERE NOT": GOTO 4000
3024 R$="PERHAPS IN YOUR FANTASIES I AM": GOTO 4000
3025 R$="HOW DO YOU KNOW YOU CAN'T": GOTO 4000
3026 R$="HAVE YOU TRIED?": GOTO 6000
3027 R$="PERHAPS YOU CAN NOW": GOTO 4000
3028 R$="DID YOU COME TO ME BECAUSE YOU ARE": GOTO 4000
3029 R$="HOW LONG HAVE YOU BEEN": GOTO 4000
3030 R$="DO YOU BELIEVE IT IS NORMAL TO BE": GOTO 4000
3031 R$="DO YOU ENJOY BEING": GOTO 4000
3032 R$="WE WERE DISCUSSING YOU -- NOT ME.": GOTO 6000
3033 R$="OH, I": GOTO 4000
3034 R$="YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?": GOTO 6000
3035 R$="WHAT WOULD IT MEAN TO YOU IF YOU GOT": GOTO 4000
3036 R$="WHY DO YOU WANT": GOTO 4000
3037 R$="SUPPOSE YOU SOON GOT": GOTO 4000
3038 R$="WHAT IF YOU NEVER GOT": GOTO 4000
3039 R$="I SOMETIMES ALSO WANT": GOTO 4000
3040 R$="WHY DO YOU ASK?": GOTO 6000
3041 R$="DOES THAT QUESTION INTEREST YOU?": GOTO 6000
3042 R$="WHAT ANSWER WOULD PLEASE YOU THE MOST?": GOTO 6000
3043 R$="WHAT DO YOU THINK?": GOTO 6000
3044 R$="ARE SUCH QUESTIONS ON YOUR MIND OFTEN?": GOTO 6000
3045 R$="WHAT IS IT THAT YOU REALLY WANT TO KNOW?": GOTO 6000
3046 R$="HAVE YOU ASKED ANYONE ELSE?": GOTO 6000
3047 R$="HAVE YOU ASKED SUCH QUESTIONS BEFORE?": GOTO 6000
3048 R$="WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?": GOTO 6000
3049 R$="NAMES DON'T INTEREST ME.": GOTO 6000
3050 R$="I DON'T CARE ABOUT NAMES -- PLEASE GO ON.": GOTO 6000
3051 R$="IS THAT THE REAL REASON?": GOTO 6000
3052 R$="DON'T ANY OTHER REASONG COME TO MIND?": GOTO 6000
3053 R$="DOES THAT REASON EXPLAIN ANYTHING ELSE?": GOTO 6000
3054 R$="WHAT OTHER REASONS MIGHT THERE BE?": GOTO 6000
3055 R$="PLEASE DON'T APOLOGIZE!": GOTO 6000
3056 R$="APOLOGIES ARE NOT NECESSARY.": GOTO 6000
3057 R$="WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE.": GOTO 6000
3058 R$="DON'T BE SO DEFENSIVE!": GOTO 6000
3059 R$="WHAT DOES THAT DREAM SUGGEST TO YOU?": GOTO 6000
3060 R$="DO YOU DREAM OFTEN?": GOTO 6000
3061 R$="WHAT PERSONS APPEAR IN YOUR DREAMS?": GOTO 6000
3062 R$="ARE YOU DISTURBED BY YOUR DREAMS?": GOTO 6000
3063 R$="HOW DO YOU DO. PLEASE STATE YOUR PROBLEM.": GOTO 6000
3064 R$="YOU DON'T SEEM QUITE CERTAIN.": GOTO 6000
3065 R$="WHY THE UNCERTAIN TONE?": GOTO 6000
3066 R$="CAN'T YOU BE MORE POSITIVE?": GOTO 6000
3067 R$="YOU AREN'T SURE?": GOTO 6000
3068 R$="DON'T YOU KNOW?": GOTO 6000
3069 R$="ARE YOU SAYING NO JUST TO BE NEGATIVE?": GOTO 6000
3070 R$="YOU ARE BEING A BIT NEGATIVE.": GOTO 6000
3071 R$="WHY NOT?": GOTO 6000
3072 R$="ARE YOU SURE?": GOTO 6000
3073 R$="WHY NO?": GOTO 6000
3074 R$="WHY ARE YOU CONCERNED ABOUT MY": GOTO 4000
3075 R$="WHAT ABOUT YOUR OWN": GOTO 4000
3076 R$="CAN YOU THINK OF A SPECIFIC EXAMPLE?": GOTO 6000
3077 R$="WHEN?": GOTO 6000
3078 R$="WHAT ARE YOU THINKING OF?": GOTO 6000
3079 R$="REALLY, ALWAYS?": GOTO 6000
3080 R$="DO YOU REALLY THINK SO?": GOTO 6000
3081 R$="BUT YOU ARE NOT SURE YOU": GOTO 4000
3082 R$="DO YOU DOUBT YOU": GOTO 4000
3083 R$="IN WHAT WAY?": GOTO 6000
3084 R$="WHAT RESEMBLANCE DO YOU SEE?": GOTO 6000
3085 R$="WHAT DOES THE SIMILARITY SUGGEST TO YOU?": GOTO 6000
3086 R$="WHAT OTHER CONNECTIONS DO YOU SEE?": GOTO 6000
3087 R$="COULD THERE REALLY BE SOME CONNECTION?": GOTO 6000
3088 R$="HOW?": GOTO 6000
3089 R$="YOU SEEM QUITE POSITIVE.": GOTO 6000
3090 R$="ARE YOU SURE?": GOTO 6000
3091 R$="I SEE.": GOTO 6000
3092 R$="I UNDERSTAND.": GOTO 6000
3093 R$="WHY DO YOU BRING UP THE TOPIC OF FRIENDS?": GOTO 6000
3094 R$="DO YOUR FRIENDS WORRY YOU?": GOTO 6000
3095 R$="DO YOUR FRIENDS PICK ON YOU?": GOTO 6000
3096 R$="ARE YOU SURE YOU HAVE ANY FRIENDS?": GOTO 6000
3097 R$="DO YOU IMPOSE ON YOUR FRIENDS?": GOTO 6000
3098 R$="PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU.": GOTO 6000
3099 R$="DO COMPUTERS WORRY YOU?": GOTO 6000
3100 R$="ARE YOU TALKING ABOUT ME IN PARTICULAR?": GOTO 6000
3101 R$="ARE YOU FRIGHTENED BY MACHINES?": GOTO 6000
3102 R$="WHY DO YOU MENTION COMPUTERS?": GOTO 6000
3103 R$="WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOU PROBLEM?": GOTO 6000
3104 R$="DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?": GOTO 6000
3105 R$="WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?": GOTO 6000
3106 R$="SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?": GOTO 6000
3107 R$="WHAT DOES THAT SUGGEST TO YOU?": GOTO 6000
3108 R$="I SEE.": GOTO 6000
3109 R$="I'M NOT SURE I UNDERSTAND YOU FULLY.": GOTO 6000
3110 R$="COME, COME, ELUCIDATE YOUR THOUGHTS.": GOTO 6000
3111 R$="CAN YOU ELABORATE ON THAT?": GOTO 6000
3112 R$="THAT IS QUITE INTERESTING.": GOTO 6000
4000 IF I=K THEN 5999: FOR J=I+1 TO K:R$( LEN(R$)+1)=" ":P= LEN(R$)+1:W=W(J): IF W<1000 THEN GOTO 5000+W
4010 W=W-1000:R$(P)=I$(W1(W),W2(W)): GOTO 5998
5001 R$(P)="YOU": GOTO 5998
5002 R$(P)="ARE": GOTO 5998
5003 R$(P)="HI": GOTO 5998
5004 R$(P)="YOU'RE": GOTO 5998
5005 R$(P)="YOUR": GOTO 5998
5006 R$(P)="NO": GOTO 5998
5007 R$(P)="AM": GOTO 5998
5008 R$(P)="BYE": GOTO 5998
5009 R$(P)="CAN": GOTO 5998
5010 R$(P)="HOW": GOTO 5998
5011 R$(P)="YOU'RE": GOTO 5998
5012 R$(P)="YOU'VE": GOTO 5998
5013 R$(P)="WERE": GOTO 5998
5014 R$(P)="WHO": GOTO 5998
5015 R$(P)="WHY": GOTO 5998
5016 R$(P)="YES": GOTO 5998
5017 R$(P)="I": GOTO 5998
5018 R$(P)="CAN'T": GOTO 5998
5019 R$(P)="DON'T": GOTO 5998
5020 R$(P)="FEEL": GOTO 5998
5021 R$(P)="YOU'VE": GOTO 5998
5022 R$(P)="NAME": GOTO 5998
5023 R$(P)="WANT": GOTO 5998
5024 R$(P)="WAS": GOTO 5998
5025 R$(P)="WHAT": GOTO 5998
5026 R$(P)="WHEN": GOTO 5998
5027 R$(P)="MY": GOTO 5998
5028 R$(P)="ALIKE": GOTO 5998
5029 R$(P)="CAN'T": GOTO 5998
5030 R$(P)="CAUSE": GOTO 5998
5031 R$(P)="DON'T": GOTO 5998
5032 R$(P)="DREAM": GOTO 5998
5033 R$(P)="ELIZA": GOTO 5998
5034 R$(P)="HELLO": GOTO 5998
5035 R$(P)="MAYBE": GOTO 5998
5036 R$(P)="SORRY": GOTO 5998
5037 R$(P)="THINK": GOTO 5998
5038 R$(P)="WHERE": GOTO 5998
5039 R$(P)="I'M": GOTO 5998
5040 R$(P)="I'VE": GOTO 5998
5041 R$(P)="ALWAYS": GOTO 5998
5042 R$(P)="FRIEND": GOTO 5998
5043 R$(P)="I'M": GOTO 5998
5044 R$(P)="I'VE": GOTO 5998
5045 R$(P)="GOODBYE": GOTO 5998
5046 R$(P)="COMPUTER"
5998 NEXT J
5999 R$( LEN(R$)+1)="?"
6000 PRINT :P1=1:L= LEN(R$)
6010 P2=P1+39: IF P2>L THEN 6030: FOR P2=P2 TO P1 STEP -1: IF R$(P2,P2)=" " THEN 6020: NEXT P2
6020 PRINT R$(P1,P2-1):P1=P2+1: GOTO 6010
6030 PRINT R$(P1,L): GOTO 500
7000 PRINT : PRINT : PRINT : PRINT "THANK YOU. I'VE ENJOYED OUR TALK."
7010 FOR I=1 TO 2000: NEXT I: CALL -936
9999 END