eliza.bas

5 PRINT TAB(16);"**************************"
10 PRINT TAB(26);"ELIZA"
20 PRINT TAB(20);"CREATIVE COMPUTING"
30 PRINT TAB(18);"MORRISTOWN, NEW JERSEY":PRINT
40 PRINT TAB(19);"ADAPTADO PARA IBM PC POR"
50 PRINT TAB(20);"PATRICIA DANIELSON, PAUL HASHFIELD Y PERON"
52 PRINT TAB(21);"ASEGURESE QUE CAPS LOCK ESTA ENCENDIDO"
53 PRINT:PRINT TAB(16);"POR FAVOR NO USE COMAS O PUNTOS EN LO QUE ESCRIBA":PRINT
55 PRINT TAB(16);"*************************"
60 PRINT :PRINT :PRINT
80 REM*****INITIALIZATION**********
100 DIM S(36),R(36),N(36)
105 DIM KEYWORD$(36),WORDIN$(7),WORDOUT$(7),REPLIES$(112)
110 N1=36:N2=14:N3=112
112 FOR X = 1 TO N1: READ KEYWORD$(X): NEXT X
114 FOR X = 1 TO N2/2: READ WORDIN$(X):READ WORDOUT$(X): NEXT X
116 FOR X = 1 TO N3: READ REPLIES$(X): NEXT X
130 FOR X=1 TO N1
140 READ S(X),L:R(X)=S(X):N(X)=S(X)+L-1
150 NEXT X
160 PRINT "HOLA! SOY ELIZA. QUE LO AQUEJA?"
170 REM ***********************************
180 REM *******USER INPUT SECTION**********
190 REM ***********************************
200 INPUT I$
201 I$="  "+I$+"  "
210 REM GET RID OF APOSTROPHES
220 FOR L=1 TO LEN(I$)
230 REM IF MID$(I$,L,1)="'" THEN I$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO 230
240 IF L+4>LEN(I$) THEN 250
241 IF MID$(I$,L,4) <> "CALLATE" THEN 250
242 PRINT "O.K. SI SE SIENTE ASI YO NO DIRE NADA...."
243 END
250 NEXT L
255 IF I$=P$ THEN PRINT "POR FAVOR NO SE REPITA!":GOTO 170
260 REM ***********************************
270 REM ********FIND KEYWORD IN I$*********
280 REM ***********************************
300 FOR K=1 TO N1
320 FOR L=1 TO LEN(I$)-LEN(KEYWORD$(K))+1
340 IF MID$(I$,L,LEN(KEYWORD$(K)))<>KEYWORD$(K) THEN 350
341 IF K <> 13 THEN 349
342 IF MID$(I$,L,LEN(KEYWORD$(29)))=KEYWORD$(29) THEN K = 29
349 F$ = KEYWORD$(K): GOTO 390
350 NEXT L
360 NEXT K
370 K=36: GOTO 570:REM WE DIDN'T FIND ANY KEYWORDS
380 REM ******************************************
390 REM **TAKE PART OF STRING AND CONJUGATE IT****
400 REM **USING THE LIST OF STRINGS TO BE SWAPPED*
410 REM ******************************************
430 C$=" "+RIGHT$(I$,LEN(I$)-LEN(F$)-L+1)+" "
440 FOR X=1 TO N2/2
460 FOR L=1 TO LEN(C$)
470 IF L+LEN(WORDIN$(X))>LEN(C$) THEN 510
480 IF MID$(C$,L,LEN(WORDIN$(X)))<>WORDIN$(X) THEN 510
490 C$=LEFT$(C$,L-1)+WORDOUT$(X)+RIGHT$(C$,LEN(C$)-L-LEN(WORDIN$(X))+1)
495 L = L+LEN(WORDOUT$(X))
500 GOTO 540
510 IF L+LEN(WORDOUT$(X))>LEN(C$)THEN 540
520 IF MID$(C$,L,LEN(WORDOUT$(X)))<>WORDOUT$(X) THEN 540
530 C$=LEFT$(C$,L-1)+WORDIN$(X)+RIGHT$(C$,LEN(C$)-L-LEN(WORDOUT$(X))+1)
535 L=L+LEN(WORDIN$(X))
540 NEXT L
550 NEXT X
555 IF MID$(C$,2,1)=" "THEN C$=RIGHT$(C$,LEN(C$)-1):REM ONLY 1 SPACE
556 FOR L=1 TO LEN(C$)
557 IF MID$(C$,L,1)="!" THEN C$=LEFT$(C$,L-1)+RIGHT$(C$,LEN(C$)-L):GOTO 557
558 NEXT L
560 REM **********************************************
570 REM **NOW USING THE KEYWORD NUMBER (K) GET REPLY**
580 REM **********************************************
600 F$ = REPLIES$(R(K))
610 R(K)=R(K)+1:IF R(K)>N(K) THEN R(K)=S(K)
620 IF RIGHT$(F$,1)<>"*" THEN PRINT F$:P$=I$:GOTO 170
625 IF C$<>"   " THEN 630
626 PRINT "USTED TENDRA QUE ELABORAR MAS PARA QUE PUEDA AYUDAR"
627 GOTO 170
630 PRINT LEFT$(F$,LEN(F$)-1);C$
640 P$=I$:GOTO 170
1000 REM *******************************
1010 REM *****PROGRAM DATA FOLLOWS******
1020 REM *******************************
1030 REM *********KEYWORDS**************
1049 REM *******************************
1050 DATA "PEDES ","PUEDO ","TU ERES ","USTED ES ","YO NO ","YO SIENTO "
1060 DATA "PORQUE USTED NO ","PORQUE NO PUEDO ","ES USTED ","YO NO PUEDO ","YO SOY ","SOY "
1070 DATA "USTED ","YO QUIERO ","QUE ","COMO ","QUIEN ","DONDE ","CUANDO ","PORQUE "
1080 DATA "NOMBRE ","CAUSA ","PERDON ","SUENIO ","HOLA ","BUENAS ","TALVEZ "
1090 DATA "NO","SU ","SIEMPRE ","PIENSO ","SIMILAR ","SI ","AMIGO "
1100 DATA "COMPUTADORA", "NOKEYFOUND"
1200 REM *********************************
1210 REM ***STRING DATA FOR CONJUGATIONS**
1220 REM *********************************
1230 DATA " ESTOY "," SOY "," ERAMOS "," FUE "," USTED "," YO "," SU"," MI "
1235 DATA " YO HE "," USTED HA "," YO ESTA "," USTED ESTA "
1240 DATA " YO "," USTED "
1300 REM ******************************
1310 REM *********REPLIES**************
1320 REM ******************************
1330 DATA "DON'T YOU BELIEVE THAT I CAN*"
1340 DATA "TAL VEZ USTED QUERRIA SER COMO YO*"
1350 DATA "USTED QUIERE QUE SEA CAPAZ DE*"
1360 DATA "TAL VEZ USTED NO QUIERE*"
1365 DATA "QUIERE SER CAPAZA DE*"
1370 DATA "QUE LO HACE PENSAR QUE SOY*"
1380 DATA "LE AGRADA PENSAR QUE SOY*"
1390 DATA "TALVEZ A USTED LE GUSTARIA SER*"
1400 DATA "ALGUNA VEZ DESEARIA SER*"
1410 DATA "REALMENTE NO*"
1420 DATA "PORQUE USTED NO*"
1430 DATA "DESEARIA SER CAPAZ DE*"
1440 DATA "LE PREOCUPA*"
1450 DATA "A MENUDO SIENTE*"
1460 DATA "A MENUDO SE SIENTE*"
1470 DATA "DISFRUTA SENTIR*"
1480 DATA "REALMENTE CREE QUE YO NO*"
1490 DATA "TALVEZ EN UN BUEN MOMENTO YO PODRIA*"
1500 DATA "DESEA QUE YO*"
1510 DATA "PIENSA QUE DEBERIA SER CAPAZ DE*"
1520 DATA "PORQUE NO PUEDE USTED*"
1530 DATA "PORQUE ESTA USTED INTERESADO EN SI YO SOY O NO*"
1540 DATA "PREFERIRIA QUE NO FUESE*"
1550 DATA "TAL VEZ EN SUS FANTASIAS YO SOY*"
1560 DATA "COMO SABE USTED QUE NO PUEDE*"
1570 DATA "HA USTED INTENTADO?"
1580 DATA "TAL VEZ USTED PUEDE AHORA*"
1590 DATA "VINO A MI PORQUE USTED ES*"
1600 DATA "POR CUANTO TIEMPO USTED HA ESTADO*"
1610 DATA "USTED CREE QUE ES NORMAL SER*"
1620 DATA "USTED DISFRUTA SER*"
1630 DATA "ESTAMOS DISCUTIENDO DE USTED, NO DE MI."
1640 DATA "OH, YO*"
1650 DATA "USTED NO ESTA REALMENTE HABLANDO DE MI, VERDAD?"
1660 DATA "QUE SIGNIFICARIA PARA USTED SI USTED*"
1670 DATA "PORQUE USTED DESEA*"
1680 DATA "SUPONGA QUE PRONTO ESTE*"
1690 DATA "QUE SUCEDERIA SI USTED NUNCA*"
1700 DATA "A VECES YO TAMBIEN QUIERO*"
1710 DATA "PORQUE LO PREGUNTA?"
1720 DATA "ESA PREGUNTA LE INTERESA?"
1730 DATA "QUE RESPUESTA LE AGRADARIA MAS?"
1740 DATA "QUE PIENSA USTED?"
1750 DATA "ESTAN TALES PREGUNTAS A MENUDO EN SU MOENTE?"
1760 DATA "QUE ES FINALMENTE LO QUE QUIERE SABER?"
1770 DATA "LE HA PREGUNTADO A ALGUIEN MAS?"
1780 DATA "HA PREGUNTADO TAL COSA ANTERIORMENTE?"
1790 DATA "QUE MAS LE VIENE A LA MENTE AL PREGUNTAR ESO?"
1800 DATA "LOS NOMBRES NO ME INTERESAN."
1810 DATA "NO ME IMPORTAN LOS NOMBRES -- POR FAVOR CONTINUE."
1820 DATA "ES ESA UNA PERSONA REAL?"
1830 DATA "NO LE VIENEN A LA MENTE OTRAS RAZONES?"
1840 DATA "ESA RAZON EXPLICA ALGO MAS?"
1850 DATA "QUE OTRA RAZON PODRIA HABER?"
1860 DATA "POR FAVOR NO SE DISCULPE!"
1870 DATA "LAS DISCULPAS NO SON NECESARIAS."
1880 DATA "QUE SENTIMIENTOS TIENE CUANDO SE DISCULPA?"
1890 DATA "NO SE PONGA A LA DEFENSIVA!"
1900 DATA "QUE LE SUGIERE ESE SUEÑO?"
1910 DATA "SUEÑA A MENUDO?"
1920 DATA "QUE PERSONAS APARECEN EN SU SUEÑO?"
1930 DATA "ESTA PREOCUPADO POR SUS SUEÑOS?"
1940 DATA "COMO ESTA... POR FAVOR INDIQUE SU PROBLEMA."
1950 DATA "NO PARECE DEMASIADO SEGURO."
1960 DATA "PORQUE EL TONO INSEGURO?"
1970 DATA "NO PUEDE SER MAS POSITIVO?"
1980 DATA "USTED NO ESTA SEGURO?"
1990 DATA "NO LO SABE?"
2000 DATA "ESTA DICIENDO NO SOLO PARA SER NEGATIVO?"
2010 DATA "ESTA SIENDO UN POCO NEGATIVO."
2020 DATA "PORQUE NO?"
2030 DATA "ESTA SEGURO?"
2040 DATA "PORQUE NO?"
2050 DATA "PORQUE ESTA PREOCUPADO SOBRE MI*"
2060 DATA "QUE HAY DE SU PROPIO*"
2070 DATA "PUEDE PENSAR UN EJEMPLO ESPECIFICO?"
2080 DATA "CUANDO?"
2090 DATA "SOBRE QUE ESTA PENSANDO?"
2100 DATA "EN SERIO, SIEMPRE?"
2110 DATA "USTED REALMENTE PIENSA ESO?"
2120 DATA "PERO USTED NO ESTA SEGURO DE*"
2130 DATA "USTED DUDA DE*"
2140 DATA "EN QUE FORMA?"
2150 DATA "QUE PARECIDO VE USTED?"
2160 DATA "QUE LE SUGIERE LA SIMILITUD A USTED?"
2170 DATA "QUE OTRAS CONEXIONES VE USTED?"
2180 DATA "PODRIA HABER REALMENTE ALGUNA CONEXION?"
2190 DATA "COMO?"
2200 DATA "USTED PARECE BASTANTE POSITIVO."
2210 DATA "ESTA USTED COMPLETAMENTE SEGURO?"
2220 DATA "LO PERCIBO."
2230 DATA "ENTIENDO."
2240 DATA "PORQUE TRAE EL TEMA DE AMIGOS?"
2250 DATA "SUS AMIGOS LO PREOCUPAN?"
2260 DATA "SUS AMIGOS LO ESCOGEN?"
2270 DATA "ESTA VERDADERAMENTE SEGURO QUE TIENE ALGUN AMIGO?"
2280 DATA "SE IMPONE A SUS AMIGOS?"
2290 DATA "TAL VEZ SU AMOR POR AMIGOS LE PREOCUPE A USTED."
2300 DATA "LAS COMPUTADORAS LE PREOCUPAN?"
2310 DATA "HABLA DE MI EN PARTICULAR?"
2320 DATA "ESTA ATERRORIZADO POR LAS MAQUINAS?"
2330 DATA "PORQUE MENCIONA LAS COMPUTADORAS?"
2340 DATA "QUE PIENSA QUE LAS MAQUINAS HAN HECHO CON SU PROBLEMA?"
2350 DATA "NO PIENSA QUE LAS COMPUTADORAS PUEDEN AYUDAR AL PUEBLO?"
2360 DATA "QUE ES LO QUE LE PREOCUPA DE LAS MAQUINAS?"
2370 DATA "DIGAMOS, USTED ESTA MUY MAL PSICOLOGICAMENTE?"
2380 DATA "QUE LE SUGIERE ESTO A USTED?"
2390 DATA "YA VEO."
2400 DATA "NO ESTOY SEGURA DE ENTENDERLO COMPLETAMENTE."
2410 DATA "VAMOS, VAMOS. ELUCIDE SUS PENSAMIENTOS."
2420 DATA "PUEDE ELABORAR SOBRE ELLO?"
2430 DATA "ESO ES BASTANTE INTERESANTE."
2500 REM *************************
2510 REM *****DATA FOR FINDING RIGHT REPLIES
2520 REM *************************
2530 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3
2540 DATA 28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9
2550 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4
2560 DATA 80,3,83,7,90,3,93,6,99,7,106,6
  • eliza.bas.txt
  • Última modificación: 2022/08/03 19:05
  • por peron