[SOLVED] CS prolog % The characters in the world.

$25

File Name: CS_prolog_%_The_characters_in_the_world..zip
File Size: 376.8 KB

5/5 - (1 vote)

% The characters in the world.
character(monica).
character(simon).
character(oswald).
character(naomi).

% character genders
gender_spec(monica, she).
gender_spec(simon, he).
gender_spec(oswald, they).
gender_spec(naomi, she).

% Fallback if we forget to specify a character gender.
gender_default(they).

% Determine character gender.
gender(Char, Gender) :- gender_spec(Char, Gender).
gender(Char, Gender) :- gender_default(Gender), + gender_spec(Char, _).

% pejorative expressions that characters like to use.
pejorative_spec(monica, nerd).
pejorative_spec(simon, n00b).
pejorative_spec(oswald, doofus).
pejorative_spec(naomi, nimrod).

% Generic pejorative fallback.
pejorative_default(jerk).

% Determine character pejorative expression
pejorative(Char, Perj) :- pejorative_spec(Char, Perj).
pejorative(Char, Perj) :- pejorative_default(Perj), + pejorative_spec(Char, _).

% characters who are mutual enemies.
enemies(monica, oswald).
enemies(simon, oswald).
enemies(naomi, monica).

% the symmetric closure of enemies/2
enemy_of(Enemy1, Enemy2) :-
enemies(Enemy1, Enemy2) ;
enemies(Enemy2, Enemy1).

% characters who are mutual friends.
friends(monica, simon).
friends(oswald, naomi).

% the symmetric closure of friends/2
friend_of(Friend1, Friend2) :-
friends(Friend1, Friend2) ;
friends(Friend2, Friend1).

:- set_prolog_flag(double_quotes, atom).

% events that have happened previously, tagged by the social action
% event_occurred(embarrassed, X, Y, String) means that X did something to embarrass Y
% and String is how you would describe it.

event_occurred(embarrassed, monica, oswald, I broke up with Oswald in the middle of his tennis match just to make him loose).

event_occurred(embarrassed, oswald, monica, I told Monica the party was casual and she showed up to the formal in shorts and a tee shirt).

event_occurred(embarrassed, simon, oswald, I tripped Oswald in the cafeteria and made him spill all of his food).

social_exchange_available(bond_over_complaining_about_mutually_disliked_person, [Friend1, Friend2, Enemy, EmbarrassDesc, EnemyGender, Pejorative]) :-
friend_of(Friend1, Friend2),
enemy_of(Friend1, Enemy),
enemy_of(Friend2, Enemy),
event_occurred(embarrassed, Friend2, Enemy, EmbarrassDesc),
gender(Enemy, EnemyGender),
pejorative(Friend1, Pejorative).

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS prolog % The characters in the world.
$25