C 64/VC 20
Wettbewerb

VIC — Das »intelligente« Programm

Ein Computerprogramm zu schreiben, mit dem man sich einfach in normaler Umgangssprache unterhalten kann — das war die Aufgabe in unserem Programmierwettbewerb vom November '84. Ein Programm war »intelligener« als alle anderen.

Der Ausgangspunkt für diesen Programmierwettbewerb war die »Eliza-Story«. Im Jahre 1966 entwickelte Joseph Weizenbaum am Massachusetts Institute of Technology ein Program names »Eliza«, das — vereinfacht gesagt — einen Psychoanalytiker simuliert. Der Mensch begibt sich also in der Rolle des Patienten an die Computer-Tastatur und wird aufgefordert, von seinen Schwierigkeiten zu berichten. Aufgrund der Eingaben gibt Eliza dann durchaus differenzierte Antworten und stellt auch schon mal Zwischenfragen, so daß ein regelrechter Dialog zustande kommt. Das Eliza-Programm hat inzwischen eine große Verbreitung gefunden und existiert in unzähligen Versionen für alle gängigen Heimcomputer. Mit unserem Programmierwettbewerb wollten wir dazu anregen, ähnliche — und womöglich bessere — Programme für den C 64/VC 20 zu entwickeln. Wir erhielten auch eine ganze Reihe wirklich brauchbarer Programme — nur leider, leider handelte es sich bei vielen dieser Einsendungen um Programme, die eindeutig auf dem Original-Eliza basierten. Diese Programme gelangten natürlich gar nicht erst in die engere Wahl, denn bei unseren Wettbewerben ist immer noch die eigene Kreativität gefragt. Sieger wurde schließlich »VIC«, ein Programm, das sich in zwei wesentlichen Punkten von der Konkurrenz abhebt.

Zunächst einmal ist »VIC« sehr schnell. Auch bei längeren Eingaben werden für die Antwort selten mehr als vier bis fünf Sekunden gebraucht. »VIC« war damit, obwohl vollständig in Basic geschrieben, um ein vielfaches schneller als alle anderen Programme, die zum Teil sogar Maschinenroutinen verwendeten. Ein gutes Beispiel dafür, daß durch gut durchdachte Programmierung auch in Basic überraschend effektive Ergebnisse erzielt werden können. Zum anderen ist »VIC« sehr vielseitig. Man kann mit ihm über viele Themen reden, er bezieht sich in seinen Antworten in den meisten Fällen auf den Eingabesatz und manchmal sind seine Antworten nicht ohne Witz.

Natürlich ist das Programm — ebenso wie »Eliza« — nicht wirklich intelligent. Es sucht nach bestimmten Stichworten im Eingabesatz und erzeugt dann aus einer Reihe von Alternativen die Antworten, die mitunter gar nicht schlecht sind.

»VIC« gehört zu einer Minderheit der zu diesem Wettbewerb eingeschickten Programme — es handelt sich dabei nämlich um eines der wenigen VC 20-Listings, die uns zu diesem Wettbewerb erreichten. Es wurde geschrieben für den VC 20 mit mindestens 8 KByte Erweiterung, läuft aber ohne Änderungen auch auf dem C 64.

Hinweise zur Bedienung:

Tabelle 3. Ein typischer Dialog mit »VIC«

Ihr Computer als »intelligenter« Gesprächspartner — wenn das keine Abwechslung im Software-Eintopf ist?

(Robert Treichler/ev)
Hauptprogramm:
10 Initialisierung
200 Eingabe mit Suche nach Schlüsselworten
300 Bilden von Satz-Kompositionen + Texten
400 Verlegenheitsfragen stellen
500 Auf Bildschirm und Drucker ausgeben
 
Routinen
1 000 Eingabe-Unterprogramm
2 000 Fragen u. Texte vorbereiten
2 500 Für BS editieren
3 000 DATAs einlesen/zählen
10 000 DATAs
Tabelle 1. »VIC«-Programmaufbau
  • AERGER
  • ARM
  • BIN
  • BIST
  • BLEIBE
  • BRAUCHE
  • BRUDER
  • BRUEDER
  • COMPUTER
  • DARF
  • FINDE
  • FRAU
  • FREUND
  • GEBE
  • GEHE
  • GELD
  • GESCHWISTER
  • GESUND
  • GLAUBE
  • GLUECK
  • HABE
  • HAETTE
  • HAST
  • HAT
  • HOFFE
  • IDIOT
  • KANN
  • KANNST
  • KOENNTE
  • KOMME
  • KRANK
  • KUMMER
  • LIEB
  • LUST
  • MACHE
  • MAENNER
  • MANN
  • MOECHTE
  • MOEGLICH
  • MUSS
  • MUTTER
  • ONKEL
  • REICH
  • SAG
  • SCHWAEGERIN
  • SCHWAGER
  • SCHWESTER
  • SEX
  • SOEHNE
  • SORGEN
  • SPIEL
  • SPINNER
  • STREIT
  • STRESS
  • TANTE
  • TOECHTER
  • TRAURIG
  • TROTTEL
  • UNGLUECK
  • UNZUFRIEDEN
  • VATER
  • VERWANDT
  • VIELLEICHT
  • WAERE
  • WEISS
  • WERDE
  • WETTER
  • WILL
  • WUERDE
  • WUNSCH
Tabelle 2. »VIC«-Schlüsselwörter
|
1 rem 'vic' ein ki-programm f. vc20 + 8kb
2 rem      robert treichler
3 rem fl-9497 triesenberg (f.tum liechtenstein)
10 rem
20 rem init.+titel
30 rem
50 print"{clr}       v i c{down}{down}{down}"
60 print"kopie auf drucker?    {down}<j/n>"
70 getz$:ifz$=""then70
80 ifz$="n"then100
90 d=1:open4,4:print#4,chr$(14)"vic - interview"chr$(15)+chr$(10)
100 print"{clr}{down}{down}{down}ich muss mich mal kurz{down}konzentrieren.":ea=50:fa=50:sv=3:gosub3200
110 dima%(25),e$(ea),f$(fa),s$(sa),s%(sa,sv),t$(tk+tn),t2$(tk),tv$(tv),tf$(tf)
120 gosub3000:f$="salue, ich heisse vic! wie heisst du ?":gosub2500:gosub1000
130 n$=e$(w):f$="also "+n$+", erzaehle mir etwas von dir und deiner familie.":goto500
197 rem
198 rem input+vergl.
199 rem
200 gosub1000:fori=0tow:a=asc(e$(i))-65:ifa<0ora>25then290
210 s=a%(a):ifs=0then290
220 fors=stosa:ifs%(s,0)>tkthenz$=left$(e$(i),len(s$(s))):goto250
230 z$=e$(i)
250 ifz$>s$(s)thennexts:goto290
260 ifz$<s$(s)then290
270 gosub2000
290 nexti
297 rem
298 rem output vorber.
299 rem
310 ifff=0then350
320 ff=0:iftf>0thentf=tf-1
330 f$=tf$(tf):goto500
350 ifw<2andf<1thenf$="mach gefaelligst einen anstaendigen satz!":goto500
360 iff<1then400
370 f$=f$(f):f$(f)="":f=f-1:goto500
397 rem
398 rem verlegenheitsfragen stellen
399 rem
400 ifta<3then430
410 f$="so, nun muss ich aber schluss machen. tschuess "+n$
420 gosub2500:close4:end
430 t=int(rnd(1)*tv):iftv$(t)=""then430
460 ta=ta+1:f$=tv$(t):tv$(t)=""
497 rem
498 rem frage ausgeben
499 rem
500 gosub2500
510 goto200
990 rem
991 rem***************
992 rem
993 rem routinen:
994 rem
995 rem
997 rem input
998 rem
999 rem get char
1000 e=0:e$="":geta$:ifa$>""then1000
1010 print"{rvon} {rvof}{left}";
1020 geta$:ifa$=""then1020
1030 a=asc(a$):ifa<>20then1100
1040 ife<1then1020
1050 e=e-1:e$=left$(e$,e):print" {left}{left}";:goto1010
1100 ifa=13thena$="."
1110 ifa$<" "ora$>"z"then1020
1120 e$=e$+a$:e=e+1:printa$;
1130 ifa$="!"ora$="."then1200
1140 ifa$="?"thenff=1:goto1200
1150 goto1010
1199 rem in worte zerlegen
1200 ife<1thenreturn
1202 print:print"{down}{down}lass mich ueberlegen."
1205 w=-1:wa=0:fori=1toe:a$=mid$(e$,i,1):a=asc(a$)
1210 ifa>64anda<91ora>47anda<58then1300
1220 ifwa=0orwt=1then1350
1230 ifa=45thenwt=1:goto1350
1250 wa=0:goto1350
1300 ifwa=0thenwa=1:w=w+1:e$(w)="":ifw>ea-1thenreturn
1310 wt=0:e$(w)=e$(w)+a$
1350 next
1399 rem 1.pers ersetzen durch 2.pers.
1400 fori=0tow:iflen(e$(i))>6then1490
1405 z$=left$(e$(i),4)
1410 ifz$="ich"thene$(i)="du":goto1450
1415 ifz$="du"thene$(i)="ich":goto1450
1420 ifz$="mich"then1480
1425 ifz$="dich"then1470
1430 ifz$="mein"then1480
1435 ifz$="dein"then1470
1440 ifz$="mir"then1480
1445 ifz$="dir"then1470
1450 goto1490
1470 e$(i)="m"+right$(e$(i),len(e$(i))-1):goto1490
1480 e$(i)="d"+right$(e$(i),len(e$(i))-1)
1490 next
1500 rem drucken
1520 ifdthenprint#4,"du: ";e$
1530 return
1997 rem
1998 rem fragen vorber.
1999 rem
2000 iff>fa-1thenreturn
2010 rem nicht benutzte texte suchen
2020 z=0:forj=0tosv:t=s%(s,j):ift$(t)>""thenz(z)=t:z=z+1
2030 nextj
2050 ifz=0thenreturn
2060 t=z(rnd(1)*z):ift=<tkandi=wthenreturn
2100 rem text holen
2120 f=f+1:f$(f)=t$(t):t$(t)="":ift>tkthenreturn
2200 rem text-komposition
2210 ife$(i+1)="ich"ore$(i+1)="du"then2230
2220 forj=i+1tow:goto2250
2230 forj=0tow:ifj=ithenj=j+2:rem inversion
2250 ife$(j)="und"ore$(j)="oder"thenj=w:goto2270
2260 f$(f)=f$(f)+" "+e$(j)
2270 nextj
2280 f$(f)=f$(f)+" "+t2$(t)
2290 return
2497 rem
2498 rem bs editieren
2499 rem
2500 print"{clr}":x$=f$
2510 z=22
2520 z$=mid$(f$,z,1):ifz$=""then2550
2530 ifasc(z$)<65then2550
2540 z=z-1:goto2520
2550 z$=left$(f$,z):printz$:ifz<22thenprint"{down}";
2560 ifz=>len(f$)then2580
2570 f$=right$(f$,len(f$)-z):iff$<>""then2510
2580 print"{down}{down}":ifd=1thenprint#4,"vic:";x$
2590 return
2997 rem
2998 rem data's lesen
2999 rem
3000 restore:fori=1tosa:reads$(i):j=0:a=asc(s$(i))-65:ifa%(a)=0thena%(a)=i
3030 readz:ifz=0then3050
3040 s%(i,j)=abs(z)-tk*(z>0):j=j+1:goto3030
3050 next:readz$
3060 fori=tk+1totk+tn:readt$(i):next:readz$
3070 fori=1totk:readt$(i),t2$(i):next:readz$
3080 fori=0totv-1:readtv$(i):next:readz$
3090 fori=0totf-1:readtf$(i):next:readz$:ifz$<>"$"thenprint"{clr}data-fehler{down}":end
3100 return
3200 rem
3201 rem data's zaehlen
3202 rem
3210 gosub3300:sa=z:gosub3300:tn=z:gosub3300:tk=z/2:gosub3300:tv=z:gosub3300:tf=z:return
3300 z=0
3320 readz$:ifz$="$"thenreturn
3330 a=asc(z$):ifa>57ora<45ora=46thenz=z+1
3340 goto3320
9999 rem *************
10000 rem
10010 rem schluesselwoerter + verkettung
10020 rem
10650 dataaerger,14,25,0,arm,2,22,0
10660 databin,-1,-12,-13,-19,0,bist,-17,-35,-37,-38,0,bleibe,-7,-30,0
10662 databrauche,-14,0,bruder,9,0,brueder,9,0
10670 datacomputer,11,0
10680 datadarf,-3,-29,0
10700 datafinde,-34,0,frau,3,4,0,freund,15,0
10710 datagebe,-32,0,gehe,-15,0,geld,2,0,geschwister,9,0
10712 datagesund,21,22,0,glaube,-5,27,29,0,glueck,23,0
10720 datahabe,-2,-22,-39,0,haette,17,0,hast,-36,0,hat,-25,0,hoffe,-6,0
10730 dataidiot,20,0
10750 datakann,-4,-24,0,kannst,-18,-42,0,koennte,17,0
10752 datakomme,-33,0,krank,22,0,kummer,25,0
10760 datalieb,6,28,0,lust,24,0
10770 datamache,-11,-21,-27,-28,0,maenner,5,0,mann,5,0
10772 datamoechte,-16,-31,0,moeglich,13,0,muss,-20,-26,0,mutter,7,0
10790 dataonkel,10,0
10820 datareich,2,22,0
10830 datasag,12,29,0,schwaegerin,10,0,schwager,10,0
10832 dataschwester,9,0,sex,26,0,soehne,1,0,sorgen,25,0,spiel,16,0
10834 dataspinner,20,0,streit,25,0,stress,25,0
10840 datatante,10,0,toechter,1,0,traurig,14,25,0,trottel,20,0
10850 dataunglueck,14,23,0,unzufrieden,14,0
10860 datavater,8,0,verwandt,10,0,vielleicht,13,0
10870 datawaere,17,0,weiss,-10,0,werde,-9,-23,-40,-41,0,wetter,18,0
10872 datawill,-8,-9,-41,0,wuerde,17,0,wunsch,19,0
19990 data$
19997 rem
19998 rem texte
19999 rem
20001 datadu bist sicher stolz auf deine kinder. was machen sie?
20002 datageld allein macht nicht gluecklich!
20003 dataich glaube frauen sind ein heikles thema.
20004 data"uebrigens, wie sollte deine traumfrau sein?"
20005 datamachst du dir viel aus maenner?
20006 datamit der liebe ist es halt so eine sache.
20007 dataerzaehle mir mehr ueber deine mutter.
20008 datawar dein vater sehr streng mit dir?
20009 dataerzaehl mir etwas mehr von deinen geschwistern.
20010 datagibt es in deiner verwandtschaft auch leute die du magst?
20011 data"was glaubst du, sind computer fuer die menschheit ein fluch oder ein segen?"
20012 datadas halte ich fuer ein geruecht.
20013 datadu scheinst etwas unsicher zu sein.
20014 dataversuche solche negativen gedanken von dir fern zu halten.
20015 datadu bist aber hoffentlich nicht verheiratet - oder?
20016 datagambler!
20017 dataso sicher scheint das aber nicht zu sein - oder?
20018 datahast du kein besseres thema als das wetter?
20019 datawuensche sind die triebfeder der menschheit. (gut - was?)
20020 data"nebenbei bemerkt: schimpfwoerter moechte ich dann keine mehr hoeren!"
20021 data"a votre sante! (hast du gesehen, ich kann sogar franzoesisch.)"
20022 data"du sagst dir vermutlich auch: lieber gesund und reich, als krank und arm."
20023 data"du kennst doch die geschichte vom hans im glueck, oder?"
20024 data"apropos lust: ich haette jetzt gerade lust auf ein bier."
20025 datadu solltest das leben etwas von der heiteren seite nehmen.
20026 dataweisst du wie nonnen zaehlen?              1 2 3 4 5 pfui!
20027 datadas kann ich allerdings nicht so recht glauben.
20028 datageht die liebe bei dir auch durch den magen?
20029 dataglaubst du das wirklich?
29990 data$
29997 rem
29998 rem kompositions-texte
29999 rem
30001 data"bist du etwa stolz darauf, dass du",bist?
30002 data"was fuer ein zufall, auch ich habe",.
30003 data"wer bestimmt denn, dass du",darfst?
30004 data"das habe ich mir gedacht,dass du",kannst.
30005 datawarum glaubst du,?
30006 data"hoffst du noch etwas anderes, ausser",?
30007 data"deine standhaftigkeit in ehren. ist es aber wirklich klug,",zu bleiben?
30008 data"an was denkst du, wenn du",willst?
30009 data"glaubst du es waere gut, wenn du",wuerdest?
30010 data"wie meinst du das genau, du wuesstest",?
30011 dataalso mach,. ist mir auch gleich.
30012 data"wen interessiert das schon, dass du",bist?
30013 data"oh, ich waere auch gerne",.
30014 datavielleicht brauchst du wirklich,.
30015 dataich moechte eigentlich auch,gehen.
30016 data"an was denkst du, wenn du",moechtest?
30017 data"uebrigens:du bist selbst",!
30018 data"wetten wir, dass du selbst",kannst?
30019 data"so, so. du bist also",. ob das wohl jemanden juckt?
30020 data"kann ich dir helfen, wenn du das naechste mal",musst?
30021 data"erzaehle mir mehr darueber, wie du",machst.
30022 data"was glaubst du woher das kommt, dass du",hast?
30023 datawarum wirst du,?
30024 data"kannst du mir erklaeren, wie man",kann?
30025 datawer hat sonst noch,?
30026 datadu bist nicht der einzige. auch ich sollte,.
30027 data"was denkst du dir dabei, wenn du",machst?
30028 data"was waere wohl, wenn jeder",machen wuerde?
30029 data"das muesste mir mal einer sagen, dass ich",darf!
30030 datawarum kannst du nur so stur sein und,bleiben?
30031 data" "," - das moechte noch mancher!"
30032 data"ich finde es grosszuegig von dir, dass du",gibst.
30033 datakommt sonst noch jemand,?
30034 dataich stimme dir voll bei. auch ich finde,.
30035 data"ok, ich bin"," - was bist denn du?"
30036 data"das weiss doch jeder, dass ich",habe.
30037 data"hat lange gedauert, bis du gemerkt hast, dass ich",bin.
30038 data"dummkopf! das weiss man doch, dass ich",bin.
30039 data"bist du froh, dass du",hast?
30040 datawer wird sonst noch,?
30041 datawenn nur alle,wuerden!
30042 datawarum soll ich,koennen?
30043 data"glaubst du, das beeindruckt mich, dass du",kannst?
39990 data$
39997 rem
39998 rem verlegenheits-texte
39999 rem
40001 dataredest du immer so einfaeltiges zeugs?
40002 dataerzaehle mir was du von mir denkst.
40003 data"glaubst du auch, dass ich dir etwas ueberlegen bin?"
40004 datawarum sprichst du eigentlich mit einem computer?
40005 datakannst du nicht etwas gescheiters erzaehlen?
40006 databist du auch so intelligent wie ich?
40007 data"uebrigens: was haelst du eigentlich von unserer konversation?"
40008 data"wenn es dir zu bloed wird, zieh mir einfach den stecker raus."
40009 dataein gespraech mit dir ist ziemlich einfaeltig.
40010 data"unserer konversation nach zu schliessen, bist du nicht gerade der hellste!"
40990 data$
40998 rem
40999 rem verlegenh.texte auf ?
41000 rem
41001 datadeine fragerei geht mir auf den wecker!
41002 datadumme frage! weiss doch jeder!
41003 datakeine ahnung! was erwartest du eigentlich von mir?
41004 datadas weisst du sicher besser als ich. erzaehle weiter!
49999 data$
  1 REM 'VIC' EIN KI-PROGRAMM F. VC20 + 8KB 
  2 REM      ROBERT TREICHLER 
  3 REM FL-9497 TRIESENBERG (F.TUM LIECHTENSTEIN) 
 10 REM 
 20 REM INIT.+TITEL 
 30 REM 
 50 PRINT"{CLR,7SPACE}V I C{3DOWN}" 
 60 PRINT"KOPIE AUF DRUCKER?{4SPACE,DOWN}<J/N>" 
 70 GET Z$:IF Z$="" THEN70 
 80 IF Z$="N" THEN100 
 90 D=1:OPEN 4,4:PRINT#4,CHR$ (14)"VIC - INTERVIEW"CHR$ (15)+CHR$ (10) 
 100 PRINT"{CLR,3DOWN}ICH MUSS MICH MAL KURZ{DOWN}KONZENTRIEREN.":EA=50:FA=50:SV=3:GOSUB 3200 
 110 DIM A%(25),E$(EA),F$(FA),S$(SA),S%(SA,SV),T$(TK+TN),T2$(TK),TV$(TV),TF$(TF) 
 120 GOSUB 3000:F$="SALUE, ICH HEISSE VIC! WIE HEISST DU ?":GOSUB 2500:GOSUB 1000 
 130 N$=E$(W):F$="ALSO "+N$+", ERZAEHLE MIR ETWAS VON DIR UND DEINER FAMILIE.":GOTO 500 
 197 REM 
 198 REM INPUT+VERGL. 
 199 REM 
 200 GOSUB 1000:FOR I=0 TOW:A=ASC (E$(I))-65:IF A<0OR A>25 THEN290 
 210 S=A%(A):IF S=0 THEN290 
 220 FOR S=S TOSA:IF S%(S,0)>TK THENZ$=LEFT$ (E$(I),LEN (S$(S))):GOTO 250 
 230 Z$=E$(I) 
 250 IF Z$>S$(S) THENNEXT S:GOTO 290 
 260 IF Z$<S$(S) THEN290 
 270 GOSUB 2000 
 290 NEXT I 
 297 REM 
 298 REM OUTPUT VORBER. 
 299 REM 
 310 IF FF=0 THEN350 
 320 FF=0:IF TF>0 THENTF=TF-1 
 330 F$=TF$(TF):GOTO 500 
 350 IF W<2AND F<1 THENF$="MACH GEFAELLIGST EINEN ANSTAENDIGEN SATZ!":GOTO 500 
 360 IF F<1 THEN400 
 370 F$=F$(F):F$(F)="":F=F-1:GOTO 500 
 397 REM 
 398 REM VERLEGENHEITSFRAGEN STELLEN 
 399 REM 
 400 IF TA<3 THEN430 
 410 F$="SO, NUN MUSS ICH ABER SCHLUSS MACHEN. TSCHUESS "+N$ 
 420 GOSUB 2500:CLOSE 4:END 
 430 T=INT (RND (1)*TV):IF TV$(T)="" THEN430 
 460 TA=TA+1:F$=TV$(T):TV$(T)="" 
 497 REM 
 498 REM FRAGE AUSGEBEN 
 499 REM 
 500 GOSUB 2500 
 510 GOTO 200 
 990 REM 
 991 REM *************** 
 992 REM 
 993 REM ROUTINEN: 
 994 REM 
 995 REM 
 997 REM INPUT 
 998 REM 
 999 REM GET CHAR 
 1000 E=0:E$="":GET A$:IF A$>"" THEN1000 
 1010 PRINT"{RVSON,SPACE,RVOFF,LEFT}"; 
 1020 GET A$:IF A$="" THEN1020 
 1030 A=ASC (A$):IF A<>20 THEN1100 
 1040 IF E<1 THEN1020 
 1050 E=E-1:E$=LEFT$ (E$,E):PRINT"{SPACE,2LEFT}";:GOTO 1010 
 1100 IF A=13 THENA$="." 
 1110 IF A$<" "OR A$>"Z" THEN1020 
 1120 E$=E$+A$:E=E+1:PRINTA$; 
 1130 IF A$="!"OR A$="." THEN1200 
 1140 IF A$="?" THENFF=1:GOTO 1200 
 1150 GOTO 1010 
 1199 REM IN WORTE ZERLEGEN 
 1200 IF E<1 THENRETURN 
 1202 PRINT:PRINT"{2DOWN}LASS MICH UEBERLEGEN." 
 1205 W=-1:WA=0:FOR I=1 TOE:A$=MID$ (E$,I,1):A=ASC (A$) 
 1210 IF A>64AND A<91OR A>47AND A<58 THEN1300 
 1220 IF WA=0OR WT=1 THEN1350 
 1230 IF A=45 THENWT=1:GOTO 1350 
 1250 WA=0:GOTO 1350 
 1300 IF WA=0 THENWA=1:W=W+1:E$(W)="":IF W>EA-1 THENRETURN 
 1310 WT=0:E$(W)=E$(W)+A$ 
 1350 NEXT 
 1399 REM 1.PERS ERSETZEN DURCH 2.PERS. 
 1400 FOR I=0 TOW:IF LEN (E$(I))>6 THEN1490 
 1405 Z$=LEFT$ (E$(I),4) 
 1410 IF Z$="ICH" THENE$(I)="DU":GOTO 1450 
 1415 IF Z$="DU" THENE$(I)="ICH":GOTO 1450 
 1420 IF Z$="MICH" THEN1480 
 1425 IF Z$="DICH" THEN1470 
 1430 IF Z$="MEIN" THEN1480 
 1435 IF Z$="DEIN" THEN1470 
 1440 IF Z$="MIR" THEN1480 
 1445 IF Z$="DIR" THEN1470 
 1450 GOTO 1490 
 1470 E$(I)="M"+RIGHT$ (E$(I),LEN (E$(I))-1):GOTO 1490 
 1480 E$(I)="D"+RIGHT$ (E$(I),LEN (E$(I))-1) 
 1490 NEXT 
 1500 REM DRUCKEN 
 1520 IF D THENPRINT#4,"DU: ";E$ 
 1530 RETURN 
 1997 REM 
 1998 REM FRAGEN VORBER. 
 1999 REM 
 2000 IF F>FA-1 THENRETURN 
 2010 REM NICHT BENUTZTE TEXTE SUCHEN 
 2020 Z=0:FOR J=0 TOSV:T=S%(S,J):IF T$(T)>"" THENZ(Z)=T:Z=Z+1 
 2030 NEXT J 
 2050 IF Z=0 THENRETURN 
 2060 T=Z(RND (1)*Z):IF T=<TKAND I=W THENRETURN 
 2100 REM TEXT HOLEN 
 2120 F=F+1:F$(F)=T$(T):T$(T)="":IF T>TK THENRETURN 
 2200 REM TEXT-KOMPOSITION 
 2210 IF E$(I+1)="ICH"OR E$(I+1)="DU" THEN2230 
 2220 FOR J=I+1 TOW:GOTO 2250 
 2230 FOR J=0 TOW:IF J=I THENJ=J+2:REM INVERSION 
 2250 IF E$(J)="UND"OR E$(J)="ODER" THENJ=W:GOTO 2270 
 2260 F$(F)=F$(F)+" "+E$(J) 
 2270 NEXT J 
 2280 F$(F)=F$(F)+" "+T2$(T) 
 2290 RETURN 
 2497 REM 
 2498 REM BS EDITIEREN 
 2499 REM 
 2500 PRINT"{CLR}":X$=F$ 
 2510 Z=22 
 2520 Z$=MID$ (F$,Z,1):IF Z$="" THEN2550 
 2530 IF ASC (Z$)<65 THEN2550 
 2540 Z=Z-1:GOTO 2520 
 2550 Z$=LEFT$ (F$,Z):PRINTZ$:IF Z<22 THENPRINT"{DOWN}"; 
 2560 IF Z=>LEN (F$) THEN2580 
 2570 F$=RIGHT$ (F$,LEN (F$)-Z):IF F$<>"" THEN2510 
 2580 PRINT"{2DOWN}":IF D=1 THENPRINT#4,"VIC:";X$ 
 2590 RETURN 
 2997 REM 
 2998 REM DATA'S LESEN 
 2999 REM 
 3000 RESTORE :FOR I=1 TOSA:READ S$(I):J=0:A=ASC (S$(I))-65:IF A%(A)=0 THENA%(A)=I 
 3030 READ Z:IF Z=0 THEN3050 
 3040 S%(I,J)=ABS (Z)-TK*(Z>0):J=J+1:GOTO 3030 
 3050 NEXT :READ Z$ 
 3060 FOR I=TK+1 TOTK+TN:READ T$(I):NEXT :READ Z$ 
 3070 FOR I=1 TOTK:READ T$(I),T2$(I):NEXT :READ Z$ 
 3080 FOR I=0 TOTV-1:READ TV$(I):NEXT :READ Z$ 
 3090 FOR I=0 TOTF-1:READ TF$(I):NEXT :READ Z$:IF Z$<>"$" THENPRINT"{CLR}DATA-FEHLER{DOWN}":END 
 3100 RETURN 
 3200 REM 
 3201 REM DATA'S ZAEHLEN 
 3202 REM 
 3210 GOSUB 3300:SA=Z:GOSUB 3300:TN=Z:GOSUB 3300:TK=Z/2:GOSUB 3300:TV=Z:GOSUB 3300:TF=Z:RETURN 
 3300 Z=0 
 3320 READ Z$:IF Z$="$" THENRETURN 
 3330 A=ASC (Z$):IF A>57OR A<45OR A=46 THENZ=Z+1 
 3340 GOTO 3320 
 9999 REM ************* 
 10000 REM 
 10010 REM SCHLUESSELWOERTER + VERKETTUNG 
 10020 REM 
 10650 DATA AERGER,14,25,0,ARM,2,22,0 
 10660 DATA BIN,-1,-12,-13,-19,0,BIST,-17,-35,-37,-38,0,BLEIBE,-7,-30,0 
 10662 DATA BRAUCHE,-14,0,BRUDER,9,0,BRUEDER,9,0 
 10670 DATA COMPUTER,11,0 
 10680 DATA DARF,-3,-29,0 
 10700 DATA FINDE,-34,0,FRAU,3,4,0,FREUND,15,0 
 10710 DATA GEBE,-32,0,GEHE,-15,0,GELD,2,0,GESCHWISTER,9,0 
 10712 DATA GESUND,21,22,0,GLAUBE,-5,27,29,0,GLUECK,23,0 
 10720 DATA HABE,-2,-22,-39,0,HAETTE,17,0,HAST,-36,0,HAT,-25,0,HOFFE,-6,0 
 10730 DATA IDIOT,20,0 
 10750 DATA KANN,-4,-24,0,KANNST,-18,-42,0,KOENNTE,17,0 
 10752 DATA KOMME,-33,0,KRANK,22,0,KUMMER,25,0 
 10760 DATA LIEB,6,28,0,LUST,24,0 
 10770 DATA MACHE,-11,-21,-27,-28,0,MAENNER,5,0,MANN,5,0 
 10772 DATA MOECHTE,-16,-31,0,MOEGLICH,13,0,MUSS,-20,-26,0,MUTTER,7,0 
 10790 DATA ONKEL,10,0 
 10820 DATA REICH,2,22,0 
 10830 DATA SAG,12,29,0,SCHWAEGERIN,10,0,SCHWAGER,10,0 
 10832 DATA SCHWESTER,9,0,SEX,26,0,SOEHNE,1,0,SORGEN,25,0,SPIEL,16,0 
 10834 DATA SPINNER,20,0,STREIT,25,0,STRESS,25,0 
 10840 DATA TANTE,10,0,TOECHTER,1,0,TRAURIG,14,25,0,TROTTEL,20,0 
 10850 DATA UNGLUECK,14,23,0,UNZUFRIEDEN,14,0 
 10860 DATA VATER,8,0,VERWANDT,10,0,VIELLEICHT,13,0 
 10870 DATA WAERE,17,0,WEISS,-10,0,WERDE,-9,-23,-40,-41,0,WETTER,18,0 
 10872 DATA WILL,-8,-9,-41,0,WUERDE,17,0,WUNSCH,19,0 
 19990 DATA $ 
 19997 REM 
 19998 REM TEXTE 
 19999 REM 
 20001 DATA DU BIST SICHER STOLZ AUF DEINE KINDER. WAS MACHEN SIE? 
 20002 DATA GELD ALLEIN MACHT NICHT GLUECKLICH! 
 20003 DATA ICH GLAUBE FRAUEN SIND EIN HEIKLES THEMA. 
 20004 DATA "UEBRIGENS, WIE SOLLTE DEINE TRAUMFRAU SEIN?" 
 20005 DATA MACHST DU DIR VIEL AUS MAENNER? 
 20006 DATA MIT DER LIEBE IST ES HALT SO EINE SACHE. 
 20007 DATA ERZAEHLE MIR MEHR UEBER DEINE MUTTER. 
 20008 DATA WAR DEIN VATER SEHR STRENG MIT DIR? 
 20009 DATA ERZAEHL MIR ETWAS MEHR VON DEINEN GESCHWISTERN. 
 20010 DATA GIBT ES IN DEINER VERWANDTSCHAFT AUCH LEUTE DIE DU MAGST? 
 20011 DATA "WAS GLAUBST DU, SIND COMPUTER FUER DIE MENSCHHEIT EIN FLUCH ODER EIN SEGEN?" 
 20012 DATA DAS HALTE ICH FUER EIN GERUECHT. 
 20013 DATA DU SCHEINST ETWAS UNSICHER ZU SEIN. 
 20014 DATA VERSUCHE SOLCHE NEGATIVEN GEDANKEN VON DIR FERN ZU HALTEN. 
 20015 DATA DU BIST ABER HOFFENTLICH NICHT VERHEIRATET - ODER? 
 20016 DATA GAMBLER! 
 20017 DATA SO SICHER SCHEINT DAS ABER NICHT ZU SEIN - ODER? 
 20018 DATA HAST DU KEIN BESSERES THEMA ALS DAS WETTER? 
 20019 DATA WUENSCHE SIND DIE TRIEBFEDER DER MENSCHHEIT. (GUT - WAS?) 
 20020 DATA "NEBENBEI BEMERKT: SCHIMPFWOERTER MOECHTE ICH DANN KEINE MEHR HOEREN!" 
 20021 DATA "A VOTRE SANTE! (HAST DU GESEHEN, ICH KANN SOGAR FRANZOESISCH.)" 
 20022 DATA "DU SAGST DIR VERMUTLICH AUCH: LIEBER GESUND UND REICH, ALS KRANK UND ARM." 
 20023 DATA "DU KENNST DOCH DIE GESCHICHTE VOM HANS IM GLUECK, ODER?" 
 20024 DATA "APROPOS LUST: ICH HAETTE JETZT GERADE LUST AUF EIN BIER." 
 20025 DATA DU SOLLTEST DAS LEBEN ETWAS VON DER HEITEREN SEITE NEHMEN. 
 20026 DATA WEISST DU WIE NONNEN ZAEHLEN?              1 2 3 4 5 PFUI! 
 20027 DATA DAS KANN ICH ALLERDINGS NICHT SO RECHT GLAUBEN. 
 20028 DATA GEHT DIE LIEBE BEI DIR AUCH DURCH DEN MAGEN? 
 20029 DATA GLAUBST DU DAS WIRKLICH? 
 29990 DATA $ 
 29997 REM 
 29998 REM KOMPOSITIONS-TEXTE 
 29999 REM 
 30001 DATA "BIST DU ETWA STOLZ DARAUF, DASS DU",BIST? 
 30002 DATA "WAS FUER EIN ZUFALL, AUCH ICH HABE",. 
 30003 DATA "WER BESTIMMT DENN, DASS DU",DARFST? 
 30004 DATA "DAS HABE ICH MIR GEDACHT,DASS DU",KANNST. 
 30005 DATA WARUM GLAUBST DU,? 
 30006 DATA "HOFFST DU NOCH ETWAS ANDERES, AUSSER",? 
 30007 DATA "DEINE STANDHAFTIGKEIT IN EHREN. IST ES ABER WIRKLICH KLUG,",ZU BLEIBEN? 
 30008 DATA "AN WAS DENKST DU, WENN DU",WILLST? 
 30009 DATA "GLAUBST DU ES WAERE GUT, WENN DU",WUERDEST? 
 30010 DATA "WIE MEINST DU DAS GENAU, DU WUESSTEST",? 
 30011 DATA ALSO MACH,. IST MIR AUCH GLEICH. 
 30012 DATA "WEN INTERESSIERT DAS SCHON, DASS DU",BIST? 
 30013 DATA "OH, ICH WAERE AUCH GERNE",. 
 30014 DATA VIELLEICHT BRAUCHST DU WIRKLICH,. 
 30015 DATA ICH MOECHTE EIGENTLICH AUCH,GEHEN. 
 30016 DATA "AN WAS DENKST DU, WENN DU",MOECHTEST? 
 30017 DATA "UEBRIGENS:DU BIST SELBST",! 
 30018 DATA "WETTEN WIR, DASS DU SELBST",KANNST? 
 30019 DATA "SO, SO. DU BIST ALSO",. OB DAS WOHL JEMANDEN JUCKT? 
 30020 DATA "KANN ICH DIR HELFEN, WENN DU DAS NAECHSTE MAL",MUSST? 
 30021 DATA "ERZAEHLE MIR MEHR DARUEBER, WIE DU",MACHST. 
 30022 DATA "WAS GLAUBST DU WOHER DAS KOMMT, DASS DU",HAST? 
 30023 DATA WARUM WIRST DU,? 
 30024 DATA "KANNST DU MIR ERKLAEREN, WIE MAN",KANN? 
 30025 DATA WER HAT SONST NOCH,? 
 30026 DATA DU BIST NICHT DER EINZIGE. AUCH ICH SOLLTE,. 
 30027 DATA "WAS DENKST DU DIR DABEI, WENN DU",MACHST? 
 30028 DATA "WAS WAERE WOHL, WENN JEDER",MACHEN WUERDE? 
 30029 DATA "DAS MUESSTE MIR MAL EINER SAGEN, DASS ICH",DARF! 
 30030 DATA WARUM KANNST DU NUR SO STUR SEIN UND,BLEIBEN? 
 30031 DATA " "," - DAS MOECHTE NOCH MANCHER!" 
 30032 DATA "ICH FINDE ES GROSSZUEGIG VON DIR, DASS DU",GIBST. 
 30033 DATA KOMMT SONST NOCH JEMAND,? 
 30034 DATA ICH STIMME DIR VOLL BEI. AUCH ICH FINDE,. 
 30035 DATA "OK, ICH BIN"," - WAS BIST DENN DU?" 
 30036 DATA "DAS WEISS DOCH JEDER, DASS ICH",HABE. 
 30037 DATA "HAT LANGE GEDAUERT, BIS DU GEMERKT HAST, DASS ICH",BIN. 
 30038 DATA "DUMMKOPF! DAS WEISS MAN DOCH, DASS ICH",BIN. 
 30039 DATA "BIST DU FROH, DASS DU",HAST? 
 30040 DATA WER WIRD SONST NOCH,? 
 30041 DATA WENN NUR ALLE,WUERDEN! 
 30042 DATA WARUM SOLL ICH,KOENNEN? 
 30043 DATA "GLAUBST DU, DAS BEEINDRUCKT MICH, DASS DU",KANNST? 
 39990 DATA $ 
 39997 REM 
 39998 REM VERLEGENHEITS-TEXTE 
 39999 REM 
 40001 DATA REDEST DU IMMER SO EINFAELTIGES ZEUGS? 
 40002 DATA ERZAEHLE MIR WAS DU VON MIR DENKST. 
 40003 DATA "GLAUBST DU AUCH, DASS ICH DIR ETWAS UEBERLEGEN BIN?" 
 40004 DATA WARUM SPRICHST DU EIGENTLICH MIT EINEM COMPUTER? 
 40005 DATA KANNST DU NICHT ETWAS GESCHEITERS ERZAEHLEN? 
 40006 DATA BIST DU AUCH SO INTELLIGENT WIE ICH? 
 40007 DATA "UEBRIGENS: WAS HAELST DU EIGENTLICH VON UNSERER KONVERSATION?" 
 40008 DATA "WENN ES DIR ZU BLOED WIRD, ZIEH MIR EINFACH DEN STECKER RAUS." 
 40009 DATA EIN GESPRAECH MIT DIR IST ZIEMLICH EINFAELTIG. 
 40010 DATA "UNSERER KONVERSATION NACH ZU SCHLIESSEN, BIST DU NICHT GERADE DER HELLSTE!" 
 40990 DATA $ 
 40998 REM 
 40999 REM VERLEGENH.TEXTE AUF ? 
 41000 REM 
 41001 DATA DEINE FRAGEREI GEHT MIR AUF DEN WECKER! 
 41002 DATA DUMME FRAGE! WEISS DOCH JEDER! 
 41003 DATA KEINE AHNUNG! WAS ERWARTEST DU EIGENTLICH VON MIR? 
 41004 DATA DAS WEISST DU SICHER BESSER ALS ICH. ERZAEHLE WEITER! 
 49999 DATA $ 
Listing »VIC« — Das »intelligente« Programm
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →