home *** CD-ROM | disk | FTP | other *** search
- (*
- JEANPAUL : The Existential Companion
-
- (c) David Weinberger 1986
- Compatible with CP/M and MS-DOS
-
- *)
-
- var originalline,
- endofline,
- prevline,
- line: string[80];
- responsectr,
- cursectr,
- meaningctr,
- deathctr,
- randomdraw,
- prevrandom,
- endphrase,
- random20,
- ctr: integer;
- prevword: string[16];
- realityquestionflag: boolean;
- targetword: string[10];
- whatyouthink: string[40];
- usedupsentence,
- usedupquestion: array[1..16] of integer;
- c : char;
-
- procedure UPPERCASE;
- var x:integer;
- begin
- for x:=1 to length(line) do begin
- if line[x]>'Z' then line[x]:=upcase(line[x]);
- end;
- end;
-
- procedure NULLTHELINE;
- var x:integer;
- begin
- line:='';
- end;
-
-
- procedure GETENDOFLINE;
- var lengthofendline,c:integer;
- begin
- lengthofendline:=length(line)-endphrase+1;
- endofline:=copy(originalline,endphrase,lengthofendline);
-
- if endofline[length(endofline)] in ['?','.','!'] then
- endofline:=copy(endofline,1,length(endofline)-1);
- end;
-
- procedure PREVIOUSWORD;
- var y,x:integer;
- tempword:string[16];
- begin
- Y:=1;tempword:=' ';
- x:=pos(targetword,line)-1; {pos of space before word}
- if x>0 then begin
- repeat
- tempword[y]:=line[x-y];
- y:=succ(y);
- until (line[x-y]=' ') or (x-y=0);
- end;
- {Sort them out of backwards order}
- for X:=1 to y do begin
- prevword[x]:=tempword[y-x];
- end;
- prevword:=copy(prevword,1,y-1);
- if prevword[1]<>' ' then prevword:=' '+prevword;
- {lowercase it}
- for x:=1 to length(prevword) do begin
- if prevword[x]<'Z' then prevword[x]:=chr(ord(prevword[x])-32);
- end;
- end;
-
-
- procedure Repeatedline;
- begin
- if randomdraw<=2 then
- writeln('Repetition is a sign of a lack of imagination.');
- If randomdraw>2 then
- writeln('Do not persist in this. It bores me.');
- nulltheline;
- end;
-
- procedure FRENCH;
- begin
- writeln('I prefer to speak English, the language of Jerry Lewis.');
- nulltheline;
- end;
-
- procedure DESCARTES;
- begin
- writeln('Yes, but Descartes is dead. He thought, therefore he was.');
- nulltheline;
- end;
-
- procedure RIGHT;
- begin
- if pos('?',line)>0 then begin
- case randomdraw of
- 1:writeln('My advice is decide, that is, invent!');
- 2:writeln('Right, wrong, these are states of mind.');
- 3:writeln('The question isn''t what I think, but what you''ll do.');
- 4:writeln('You have no right to ask such advice of anyone else! Never!');
- end;
- randomdraw:=0;
- end;
- case randomdraw of
- 1:writeln('What sense of ''right'' do you have in mind?');
- 2:writeln('If you mean ''morally'' right, then I must disagree.');
- 3:writeln('If that is right, then what is wrong?');
- 4:writeln('Right or wrong, still existence is existence.');
- end;
- nulltheline;
- end;
-
-
- procedure REALITY;
- begin
- case randomdraw of
- 1: begin
- writeln('Do you mean ''reality'' the word or ''reality'' the thing?');
- realityquestionflag:=true;end;
- 2: writeln('Reality-- or Being-- is featureless. Thus, how can you describe it?');
- 3: writeln('But is reality itself real?');
- 4: writeln('But possibility is even higher than actuality, n''est pa?');
- end;
- nulltheline;
- end;
-
-
- procedure REALITYREPLY;
- begin
- if pos('WORD',line)>0 then
- writeln('But the word ''Reality'' is itself a thing.')
- else
- writeln('But in saying that you are using words.');
- nulltheline;
- end;
-
-
-
- Procedure WRONG;
- begin
- case randomdraw of
- 1:writeln('It is not up to us to make such judgements. And there is no God.');
- 2:writeln('God is dead; all is permitted.');
- 3:writeln('Did your parents believe in God?');
- 4:writeln('I am no judge of right and wrong, and no one is my judge.');
- end;
- nulltheline;
- end;
-
- procedure EXISTENTIAL;
- begin
- case randomdraw of
- 1:writeln('What do you mean by ''existence''?');
- 2:writeln('''Existentialism'' was a term invented by non-Existentialists.');
- 3:writeln('I prefer not to use that term.');
- 4:writeln('Existentialism is a life to be lived, not a word to be bandied about.');
- end;
- nulltheline;
- end;
-
- procedure PHILOSOPHY;
- begin
- case randomdraw of
- 1:writeln('What do you mean by philosophy? And what does philosophy mean by you?');
- 2:writeln('Philosophy is a game for intellectual scavengers.');
- 3:begin writeln('Kindly either explain what you mean by philosophy');
- writeln('or cease using the term, if you please');end;
- 4:writeln('Why talk of philosophy here instead of truth?');
- end;
- nulltheline;
- end;
-
-
- procedure TRUTH;
- begin
- case randomdraw of
- 1:writeln('Truth is subjectivity.');
- 2:writeln('What is truth? You tell me.');
- 3:writeln('But why should I care about truth.');
- 4:writeln('Truth, pshaw! It is just an excuse.');
- end;
- nulltheline;
- end;
-
- Procedure GOD;
- begin
- if (pos('DEAD',line)>0) and (pos('?',line)>0) then begin
- writeln('We would be better off had He never lived!');
- randomdraw:=0;
- end;
-
- case randomdraw of
- 1:writeln('God is a bourgeois idea.');
- 2:writeln('Do not talk of fairytales!');
- 3:writeln('Belief in God is not a crutch but a bandage.');
- 4:writeln('The deity is brought in when sense has fled.');
- end;
- nulltheline;
- end;
-
- Procedure DEATH;
- begin
- deathctr:=succ(deathctr);
- if pos('KNOW',line)>0 then begin randomdraw:=0;
- writeln('But can one really know about death?'); end;
- If pos('fraid',line)>0 then begin randomdraw:=0;
- writeln('Death is nothing. Therefore, you have nothing to fear.');end;
- case randomdraw of
- 1: writeln('Death, the certainty of the possibility of impossibility.');
- 2: writeln('Ultimately it is death that gives meaning.');
- 3:writeln('How often have I dreamt of death ... only to find myself living it!');
- 4: writeln('Can you taste death? Touch it? Can you describe it?');
- end;
- nulltheline;
- end;
-
-
- Procedure MEANS;
- begin
- if pos('MEANS THAT',line)>0 then endphrase:=pos('MEANS THAT',line)+11
- else endphrase:=pos('MEANS',line)+6;
- getendofline;
- case randomdraw of
- 1: writeln('If it truly means ',endofline,' then there''s no hope.');
- 2: writeln('Ah, but is ''',endofline,' '' truly meaningful?');
- 3: writeln('So, ',endofline,' is to you something meaningful?');
- 4: writeln('Isn''t saying ''',endofline,' '' really a way of avoiding the truth?');
- end;
- nulltheline;
- end;
-
- procedure I_THINK;
- begin
- if pos('THINK YOU',line)+pos('THINK THAT YOU',line)>0 then begin
- if randomdraw>2 then writeln('Please don''t bring me into this.')
- else
- writeln('What I think is that you ought to think.');
- nulltheline;
- end;
-
- endphrase:=pos('THINK',line)+5;
- whatyouthink:=copy(line,endphrase,40);
-
- if line<>'' then begin {line='' if was 'think that'}
- getendofline;
-
- case randomdraw of
- 1:writeln('Thinking',endofline,' doesn''t make it so.');
- 2:writeln('Thinking',endofline,' is still thinking. Try feeling instead.');
- 3:writeln('Tell me the choices that lead you to think',endofline);
- 4:writeln('You merely think',endofline,'? Why aren''t you sure?');
- end;
- nulltheline;
- end;
- end;
-
- procedure WHAT_IS;
- begin
- case randomdraw of
- 1:writeln('It is what you make it to be.');
- 2:writeln('It is what it is and nothing more.');
- 3:writeln('Why ask? Create your own answer!');
- 4:writeln('What is it? Come come, you must answer it yourself.');
- end;
- nulltheline;
- end;
-
- procedure DONT_YOU;
- var yourinit:boolean;
- whereyour:integer;
- begin
- yourinit:=false;
- endphrase:=pos('DON''T YOU',line)+9;
- GETENDOFLINE;
- if pos('your',endofline)>0 then begin
- yourinit:=true;
- whereyour:=pos('your',endofline);
- delete(endofline,whereyour,4);
- insert('my',endofline,whereyour);
- end;
- if (pos('my',endofline)>0) and (not yourinit) then begin
- whereyour:=pos('my',endofline);
- delete(endofline,whereyour,2);
- insert('your',endofline,whereyour);
- end;
- if pos('me',endofline)>0 then begin
- whereyour:=pos('me',endofline);
- delete(endofline,whereyour,2);
- insert('you',endofline,whereyour);
- end;
- case randomdraw of
- 1:writeln('I don''t',endofline,' because I choose not to.');
- 2:writeln('I need no excuse not to',endofline,'.');
- 3:writeln('Freedom demands that I not',endofline,' but only because I choose to.');
- 4:writeln('I should',endofline,'? What a strange request.');
- end;
- nulltheline;
- end;
-
-
- procedure I_AM;
- var r2:integer;
- whatyouare:string[40];
- begin
- endphrase:=pos('AM',line)+3;
- getendofline;
- r2:=random(2);
- if r2=0 then begin
- case randomdraw of
- 1: writeln('Isn''t it really the case that you choose to be ',endofline ,'?');
- 2: writeln('Tell me why you think it acceptable to be ',endofline ,'.');
- 3: writeln('If you are ',endofline ,' then must not all be ',endofline ,'?');
- 4: writeln('Being ',endofline ,' usually is just a ruse.');
- end;
- end;
- if r2=1 then begin
- case randomdraw of
- 1:writeln('Being ',endofline,' usually shows bad faith.');
- 2:writeln('Your being ',endofline,' has consequences, does it not?');
- 3:writeln('Did you choose to be ',endofline,' freely?');
- 4:writeln('There are those who would give up all to be ',endofline);
- end;
- end;
-
- nulltheline;
- whatyouare:='';
- end;
-
-
-
- Procedure MEANING;
- begin
- meaningctr:=succ(meaningctr);
- if meaningctr=7 then begin
- writeln('You are too concerned with meaning. It has infected you');
- writeln('like a worm borrowing into sewage. It has become merely a');
- writeln('game for you and I will not play that game any longer.');
- randomdraw:=0;
- end;
- if meaningctr in [8,9,10] then begin
- writeln('I said I will have no more talk of meaning! You must either');
- writeln('change the topic or change your mode of existence.');
- randomdraw:=0;
- end;
- if meaningctr>10 then begin
- writeln('Very well. Talk of meaning. But do not expect me to.');
- randomdraw:=0;
- end;
-
- if pos('LIFE',line)>0 then begin
- case randomdraw of
- 1: writeln('To ask the question is already to give it meaning.');
- 2: writeln('Life is full of meaning. But so is pus.');
- 3: begin writeln('What is the fascination of this question of meaning?');
- writeln('I have never understood it!');end;
- 4: writeln('Why should one expect meaning?');
- end;
- nulltheline;
- randomdraw:=0;
- end; {mean+life}
-
- case randomdraw of
- 1: writeln('But what does ''meaning'' mean?');
- 2: writeln('If my pipe goes out, is that a meaning?');
- 3: writeln('The scratchings of a chicken in the dirt. Is that what you mean by meaning?');
- 4: writeln('What sort of answer would satisfy you?');
- end;
- nulltheline;
-
- end; {meaning}
-
- Procedure UNIVERSE;
- begin
- if randomdraw>2 then writeln('The universe? So vast, so small. So metaphysical.');
- if randomdraw<2 then writeln('The universe is ... other people.');
- nulltheline;
- end;
-
- procedure CURSES;
- begin
- if cursectr=0 then writeln('Such language!');
- if cursectr=1 then writeln('Are such vulgarities necessary?');
- cursectr:=succ(cursectr);
- if cursectr>2 then writeln(^G);
- nulltheline;
- end;
-
- procedure NOTHING;
- begin
- case randomdraw of
- 1:writeln('Nothingness is no answer ... which is the only answer.');
- 2:writeln('You talk like a naive metaphysician. Nothing is not itself a thing.');
- 3:writeln('I place much weight on this little word ''nothing''.');
- 4:writeln('Do not hurry over a word as important as ''nothing''.');
- end;
- nulltheline;
- end;
-
- procedure BORING;
- begin
- case randomdraw of
- 1: writeln('Boredom is in the mind of the beholder.');
- 2: writeln('So you are bored? We are born. We die. Who promised anything else.');
- 3: writeln('I am bored too. Let''s die together.');
- 4: begin writeln('You must take responsibility for your boredom. It is you not');
- writeln('I who have such an uneventful life that you seek solace through');
- writeln('a dumb computer game. Au revoir!');
- writeln('(... I will stay if you the ''o'' key.)');
- read(kbd,c);
- if upcase(c)<>'O' then halt
- else writeln('Very well, we shall resume.');
- end;
-
- end;
- nulltheline;
- end;
-
- procedure SUICIDE;
- begin
- case randomdraw of
- 1:begin
- writeln('Would you do something so desperate for reasons or because');
- writeln('there are no reasons?');end;
- 2: writeln('An idle threat.');
- 3: writeln('Punishing the world for its absurdity?');
- 4: writeln('Suicide and laughter are the only authentic responses to the human condition.');
- end;
- end;
-
- procedure HEIDEGGER;
- begin
- if randomdraw>2 then
- writeln('Heidegger was overrated as a philosopher and underrated as a Nazi.')
- else
- writeln('Heidegger is fine for acolytes looking for a cult. I prefer truth.');
- nulltheline;
- end;
-
-
- {===============================================}
- BEGIN
- randomize;
- responsectr:=0;deathctr:=0;meaningctr:=0;cursectr:=0;
- realityquestionflaG:=false;whatyouthink:='';
- for ctr:=1 to 16 do begin
- usedupquestion[ctr]:=0;usedupsentence[ctr]:=0;
- end;
- clrscr;
-
- {--sign on --}
- writeln;
- writeln('>>> JEAN PAUL <<<':44);
- write('(c) 1986 David Weinberger':48);
- writeln;writeln;writeln('Bonjour!':40);writeln;
- writeln('Pull up a hard-backed chair in this intimate Parisian Bistro');
- writeln('and let''s talk philosophy.');
- writeln('Let us talk of life and death, of God and men, of truth and reality');
- writeln('of meaning and of nothing.');
- writeln('We shall talk all night, until we have plumbed the very depths of our');
- writeln('shallow existence together, or until you type ''END''.');
- writeln;
- writeln('Tell me, what''s on your mind.');
-
- REPEAT
- writeln;
- readln(line);
- originalline:=line;
- Uppercase;
- write('>');
- responsectr:=succ(responsectr);
- randomdraw:=random(4)+1;
-
- {---responses---}
-
- if (responsectr=20) and (deathctr=0) then begin
- writeln('I notice you avoid the question of death. Why?');
- nulltheline;
- end;
-
- {-- if repeated line}
- if line=prevline then REPEATEDLINE;
-
- if (realityquestionflag=true) then begin
- realityquestionflag:=false;
- if (pos('WORD',line)+ pos('THING',line))>0 then REALITYREPLY;
- end;
-
- if pos(' JE ',line)+pos('FRANCAIS',line)+pos(' JOUR ',line)>0 then FRENCH;
-
- if pos('THEREFORE I AM',line)>0 then DESCARTES;
-
- {-- Cues which are answered with snippet from question}
- if (pos('I THINK',line)>0) {and (randomdraw>2)} then I_THINK;
- if (pos('I AM',line)>0) or (pos('I''m',line)>0) then I_AM;
- if pos('DON''T YOU',line)>0 then DONT_YOU;
-
-
- if pos('RIGHT',line)>0 then RIGHT;
-
- if pos('REALITY',line)>0 then REALITY;
-
- if (pos('WRONG',line)>0) or (pos('EVIL',line)>0) or (pos('BAD',line)>0)
- then WRONG;
-
- if pos('EXISTENTIAL',line)>0 then EXISTENTIAL;
-
- if pos('PHILOSOPH',line)>0 then PHILOSOPHY;
-
- if pos('TRUTH',line)>0 then TRUTH;
-
- if (pos('GOD',line))>0 then GOD;
-
- if pos('SHIT',line)+pos('FUCK',line)+pos('MERDE',line)>0 then CURSES;
-
- if (pos('DEATH',LINE)>0) or (pos('DIE',LINE)>0) or (pos('DYING',line)>0)
- then DEATH;
-
- if (pos(' MEANS',line))>1 then MEANS;
-
- if pos('MEAN',line)>0 then MEANING;
-
- if pos('WHAT IS',line)>0 then WHAT_IS;
-
- if (pos('UNIVERSE',LINE)>0) and (randomdraw>0) then UNIVERSE;
-
- if pos('HEIDEGGER',line)>0 then HEIDEGGER;
-
- if pos('NOTHING',line)>0 then NOTHING;
-
- if pos('KILL MYSELF',line) + pos('SUICIDE',line)>0 then SUICIDE;
-
- if pos('BORING',line)+pos('BORED',line)>0 then BORING;
-
-
- {-- NO WORDS RECOGNIZED--}
- {--not a question}
- if (line<>'') then begin
-
-
- repeat
- random20:=random(20)+1;
- until random20<>prevrandom;
-
- if (random20=25) and (whatyouthink<>'') then begin
- if randomdraw>2 then
- writeln('Isn''t this a consequence of the fact that you think ',whatyouthink,'?');
- if randomdraw<=2 then
- writeln('I fail to see how this connects with the fact that you think',whatyouthink);
- end;
-
-
-
- if line[length(line)]<>'?' then begin
-
- {-- get fresh reply}
- if usedupsentence[random20]=1 then begin
- ctr:=0;
- repeat
- random20:=succ(random20); ctr:=succ(ctr);
- if random20=26 then random20:=1;
- until (usedupsentence[random20]=0) or (ctr=25);
-
- if ctr=25 then begin
- for ctr:=1 to 25 do begin
- usedupsentence[ctr]:=0;
- end; {for-to}
- end; {ctr=25}
- end; {usedsentence=1}
-
- usedupsentence[random20]:=1;
-
- case random20 of
- 1: writeln('And why is such a statement in order?');
- 2: writeln('Hmmm.... I wonder.');
- 3: writeln('One could write a book on such a topic.');
- 4: writeln('Yes, no, maybe. Such might be my responses.');
- 5: writeln('True... Yet false in its own way.');
- 6: writeln('It is just words.');
- 7: writeln('Ah me. You bring me ennui.');
- 8: writeln('Go on.');
- 9: writeln('Can you be less clear?');
- 10: writeln('You provoke many thoughts in me.');
- 11: writeln('Interesting. Try putting it in its reverse form.');
- 12: writeln('We must work together to expose the real meaning of your words.');
- 13: writeln('Tell me more.');
- 14: writeln('You must elaborate.');
- 15: writeln('I reserve my objections');
- 16: writeln('Have another glass of wine.');
- 17: writeln('You sound remarkably French. On your mother''s side, perhaps?');
- 18: writeln('This a statement that denies freedom. Fie on it!');
- 19: writeln('Pardon me, but I wasn''t listening. For a moment, you became a mere object.');
- 20: writeln('Finish the story. Every sentence -- nay, every breath -- is a story.');
- 21: writeln('Such a thought! Did you study under Heidegger?');
- 22: writeln('Do not vacilate. You must choose sides. Everyone must.');
- 23: writeln('I have the feeling we are on a carousel. It is hell.');
- 24: writeln('Please, do not imitate me. You have read too many of my books, no?');
- 25: writeln('Good God! ... if there were a God!');
- end;
- end;
-
- if line[length(line)]='?' then begin
-
- if usedupquestion[random20]=1 then begin
- ctr:=0;
- repeat
- random20:=succ(random20); ctr:=succ(ctr);
- if random20=17 then random20:=1;
- until (usedupquestion[random20]=0) or (ctr=16);
-
- if ctr=16 then begin
- for ctr:=1 to 16 do begin
- usedupquestion[ctr]:=0;
- end;
- end; {ctr=16}
- end; {if usedquestion=1}
- usedupquestion[random20]:=1;
- case random20 of
- 1:writeln('Questions are like mousetraps, and I am no mouse.');
- 2:writeln('A beautiful question. I marvel at its vivacity.');
- 3:writeln('Not all questions are meant to have answers.');
- 4:writeln('Can you rephrase that question?');
- 5:writeln('There are some questions best left unasked.');
- 6:writeln('I need to think about that. Have you another question?');
- 7:writeln('Is this question answerable?');
- 8:writeln('Is this question attached to life or merely floating by?');
- 9:writeln('Yes, let the questions pile up like snow in a blizzard.');
- 10:writeln('A question like this .... how to deal with it?');
- 11:writeln('All I can say is that you must fail to answer it yourself.');
- 12:writeln('Good question.');
- 13:writeln('Every question contains its own answer. What''s this one''s?');
- 14:writeln('You must put your question as a statement.');
- 15:writeln('Some questions are merely itches.');
- 16:writeln('Are you serious with this question?');
- end;
- end;
- prevrandom:=random20;
- end; {if line<>''}
-
-
- prevline:=line;
- until line='END';
-
- END. end;
-
- if pos(' JE ',line)+pos('FRANCAIS',line)+pos(' JOUR ',line)>0 then FRENC