home *** CD-ROM | disk | FTP | other *** search
-
- LET PERSON = INT;
-
- PROC verbpart:
- next random;
- IF drawing < 70
- THEN
- transverb;
- object
- ELSE intransverb
- FI
- ENDPROC verbpart;
-
- PROC verb ending:
- IF person = 3
- THEN put ("s")
- FI;
- person := 0
- ENDPROC verb ending;
-
- PROC transverb:
- trans inf;
- verb ending
- ENDPROC transverb;
-
- PROC trans inf:
- next random;
- IF drawing < 10
- THEN put (" hate")
- ELIF drawing < 20
- THEN put (" love")
- ELIF drawing < 30
- THEN put (" fear")
- ELIF drawing < 40
- THEN put (" like")
- ELIF drawing < 45
- THEN put (" accept")
- ELIF drawing < 50
- THEN put (" respect")
- ELIF drawing < 55
- THEN put (" offend")
- ELIF drawing < 60
- THEN put (" attack")
- ELIF drawing < 65
- THEN put (" reject")
- ELIF drawing < 70
- THEN put (" understand")
- ELIF drawing < 75
- THEN put (" ignore")
- ELIF drawing < 80
- THEN put (" know")
- ELIF drawing < 85
- THEN put (" betray")
- ELIF drawing < 90
- THEN put (" threaten")
- ELIF drawing < 95
- THEN put (" shock")
- ELSE put (" observe")
- FI
- ENDPROC trans inf;
-
- PROC subst:
- next random;
- IF drawing < 16
- THEN put (" man")
- ELIF drawing < 32
- THEN put (" male")
- ELIF drawing < 48
- THEN put (" woman")
- ELIF drawing < 64
- THEN put (" female")
- ELIF drawing < 80
- THEN put (" child")
- ELIF drawing < 93
- THEN put (" person")
- ELSE put (" subject")
- FI
- ENDPROC subst;
-
- PROC subject:
- next random;
- IF person = 2
- THEN put (" you")
- ELSE nounphrase
- FI
- ENDPROC subject;
-
- PROC statement ending:
- next random;
- IF drawing < 10
- THEN put ("!")
- ELSE put (".")
- FI
- ENDPROC statement ending;
-
- PROC statement:
- next random;
- IF drawing < 25
- THEN relativation
- FI;
- subject;
- verbpart
- ENDPROC statement;
-
- PROC sentence:
- choose person;
- next random;
- IF drawing > 2 * credits
- THEN
- statement;
- personal address option;
- statement ending
- ELSE
- question;
- personal address option;
- question ending
- FI
- ENDPROC sentence;
-
- PROC relativation:
- next random;
- IF drawing < 8
- THEN put (" I wonder if")
- ELIF drawing < 16
- THEN put (" I don't want to know if")
- ELIF drawing < 24
- THEN put (" I don't care if")
- ELIF drawing < 32
- THEN put (" I think")
- ELIF drawing < 40
- THEN put (" I conclude")
- ELIF drawing < 48
- THEN put (" I suspect")
- ELIF drawing < 56
- THEN put (" I suppose")
- ELIF drawing < 64
- THEN put (" I guess")
- ELIF drawing < 72
- THEN put (" I'm afraid")
- ELIF drawing < 79
- THEN put (" It looks like")
- ELIF drawing < 86
- THEN put (" so you think")
- ELIF drawing < 93
- THEN put (" you act as if")
- ELSE put (" therefore")
- FI
- ENDPROC relativation;
-
- PROC question ending:
- put ("? ");
- TEXT VAR dummy;
- get (dummy)
- ENDPROC question ending;
-
- PROC question:
- next random;
- IF drawing > 75
- THEN modality
- FI;
- auxiliary verb;
- subject;
- person := 0;
- verbpart
- ENDPROC question;
-
- PROC personal address option:
- next random;
- IF drawing < 3
- THEN put (", " + patient name)
- ELIF drawing < 5
- THEN put (", my dear")
- ELIF drawing < 7
- THEN put (", mon ami")
- ELIF drawing < 8
- THEN put (", mon cher " + patient name)
- FI
- ENDPROC personal address option;
-
- PROC object:
- IF person = 2
- THEN put (" yourself")
- ELSE nounphrase
- FI
- ENDPROC object;
-
- PROC nounphrase:
- next random;
- IF drawing < 2
- THEN put (" your IBM representative")
- ELIF drawing < 10
- THEN put (" someone like you")
- ELIF drawing < 17
- THEN put (" your partner")
- ELIF drawing < 25
- THEN put (" your rival")
- ELIF drawing < 32
- THEN put (" everybody")
- ELIF drawing < 40
- THEN put (" your neighbour")
- ELIF drawing < 47
- THEN put (" your mother in law")
- ELIF drawing < 55
- THEN put (" your cousin")
- ELSE
- article;
- adjective option;
- subst
- FI
- ENDPROC nounphrase;
-
- PROC next random:
- drawing := random (1, 99)
- ENDPROC next random;
-
- PROC modality:
- next random;
- IF drawing < 10
- THEN put (" in which respect")
- ELIF drawing < 40
- THEN put (" why")
- ELIF drawing < 60
- THEN put (" since when")
- ELIF drawing < 70
- THEN put (" how often")
- ELIF drawing < 80
- THEN put (" for what reason")
- ELIF drawing < 90
- THEN put (" where")
- ELSE put (" when")
- FI
- ENDPROC modality;
-
- PROC intransverb:
- intrans inf;
- verb ending;
- again option
- ENDPROC intransverb;
-
- PROC intrans inf:
- next random;
- IF drawing < 15
- THEN put (" sleep")
- ELIF drawing < 30
- THEN put (" yawn")
- ELIF drawing < 45
- THEN put (" think")
- ELIF drawing < 58
- THEN put (" drink")
- ELIF drawing < 65
- THEN put (" dream")
- ELIF drawing < 72
- THEN put (" sweat")
- ELIF drawing < 79
- THEN put (" tremble")
- ELIF drawing < 86
- THEN put (" smile")
- ELSE put (" mumble")
- FI
- ENDPROC intrans inf;
-
- PROC choose person:
- next random;
- IF drawing < 50
- THEN person := 2
- ELSE person := 3
- FI
- ENDPROC choose person;
-
- PROC auxiliary verb:
- IF person = 2
- THEN put (" do")
- ELSE put (" does")
- FI
- ENDPROC auxiliary verb;
-
- PROC article ending:
- IF n wanted
- THEN
- put ("n");
- n wanted := false
- FI
- ENDPROC article ending;
-
- PROC article:
- next random;
- n wanted := false;
- IF drawing < 30
- THEN put (" the")
- ELIF drawing < 45
- THEN put (" that")
- ELIF drawing < 60
- THEN put (" this")
- ELIF drawing < 65
- THEN put (" every")
- ELIF drawing < 90
- THEN
- n wanted := true;
- put (" a")
- ELSE put (" some")
- FI
- ENDPROC article;
-
- PROC again option:
- next random;
- IF drawing < 5
- THEN put (" again")
- ELIF drawing < 10
- THEN put (" now")
- FI
- ENDPROC again option;
-
- PROC adjective option:
- next random;
- IF drawing < 4
- THEN put (" normal")
- ELIF drawing < 8
- THEN put (" healthy")
- ELIF drawing < 12
- THEN put (" usual")
- ELIF drawing < 16
- THEN
- article ending;
- put (" intelligent")
- ELIF drawing < 20
- THEN put (" depressed")
- ELIF drawing < 24
- THEN
- article ending;
- put (" agressive")
- FI
- ENDPROC adjective option;
-
- program:
- explanation;
- request name;
- initialize random;
- nasty initial remark;
- session;
- nasty final remark.
-
- explanation:
- put ("Your therapist will ask you some questions");
- put (" and make some helpful observations.");
- line (2);
- put ("Please give a short answer to each question.");
- line (3).
-
- request name:
- TEXT VAR patient name;
- REP
- put ("Your name please?");
- get (patient name)
- UNTIL patient name <> ""
- ENDREP.
-
- initialize random:
- TEXT VAR copy :: patient name;
- INT VAR i;
- INT VAR drawing;
- WHILE copy <> ""
- REP
- i := 32;
- WHILE HEAD copy > ascii (i)
- REP
- drawing := choose128;
- i INCR 1
- ENDREP;
- copy := TAIL copy
- ENDREP.
-
- nasty initial remark:
- line (3);
- next random;
- IF drawing < 10
- THEN put ("You needn't shout. just sit down.")
- ELIF drawing < 20
- THEN put ("Oh yes, they told me.")
- ELIF drawing < 30
- THEN put ("Never mind.")
- ELIF drawing < 40
- THEN put ("That's what you think.")
- ELIF drawing < 50
- THEN put ("Hm. We'll see.")
- ELIF drawing < 60
- THEN put ("Take a chair, hee hee.")
- ELIF drawing < 70
- THEN
- put ("Are you sure you're ");
- put (patient name);
- put ("?")
- ELIF drawing < 80
- THEN put ("Better take another chair, because of the dog.")
- ELIF drawing < 90
- THEN put ("Are you comfortable? There we go.")
- ELSE put ("I wonder.")
- FI;
- line (3).
-
- session:
- INT VAR person;
- BOOL VAR n wanted;
- INT VAR credits :: 45;
- REP
- sentence;
- line (1);
- credits := credits - 2
- UNTIL credits <= 0
- ENDREP.
-
- nasty final remark:
- line (2);
- next random;
- IF drawing < 10
- THEN put ("Not that way, that's the window.")
- ELIF drawing < 20
- THEN put ("We won't see that one back.")
- ELIF drawing < 30
- THEN put ("Oops. What have I said.")
- ELIF drawing < 40
- THEN put ("Put that knife away. SISTER! HELP!")
- ELIF drawing < 50
- THEN put ("No personal checques. Cash please!")
- ELIF drawing < 60
- THEN put ("I really enjoyed doing that.")
- ELIF drawing < 70
- THEN put ("I hope we understand one another?")
- ELIF drawing < 80
- THEN put ("You can leave now.")
- ELIF drawing < 90
- THEN put ("You can crawl out from under that chair now.")
- ELSE put ("How's that for an inferiority complex?")
- FI.
-
- ⇦