git clone https://github.com/Zleub/cluedo.git
npm install ; bower install ; make ; make serve
make all-- build client side html'smake m4-- preprocess filesmake serve-- run both client and server process (python & node)make kill-- kill both serversmake re-- rebuild
Inside Computer Understanding: Five Programs Plus Miniatures -> chap9 TaleSpin
-
Initial database. It can be extended before running a story.
-
Initial database can be loaded from a file.
-
assert-factis one of the central control functions. It starts with one fact, infers the consequences, infers the consequences of the consequences, etc. Besides the simple result put in conseqs (e.g., ptrans changes locs), new states may lead to response actions (put in actions) or new plans (put in plans). The plans are done after all the consequences are inferred. -
demonsStored under each character is a list of "demons." A demon is a CD pattern plus an action. Whenever the character learns something this list is checked to see if there is a response to make. Demons are set up by things like the mbuild in a bargain-plan. -
goal-evalexecutes each plan until one works and the goal can be removed, or until none do and the character fails to get the goal. If the goal is already true (and the actor knows that), then return success immediately. If the actor already has the goal, then he's in a loop and has failed. Otherwise, set up the goal and go.-
run-plans -
gen-plansreplicates the same plan with different objects
-
-
Two S-goals
-
thirstTo satisfy thirst, go to some water and drink it. -
hungerTo satisfy hunger, get some food and eat it.
-
-
Three D-goals
-
dcontTo get an object: if you know someone has it, persuade them to give it to you; otherwise try to find out where the object is, go there and take it. -
dknowTo find out something: find a friend to tell you -
dproxTo move an object (including yourself) to where some other person or object is: get the first object (if not yourself), then find out where the second object is and go there with the first object. If this doesn't work, try persuading the object to go there itself.
-
-
Subgoals and plans
-
ask-planThe success of asking something depends upon whether the other person is honest and likes you. -
bargain-planThe success of bargaining with someone by giving them food depends on whether the other person is honest, you don't already have the goal of getting the food you're going to bargain with, and you can get the food to the other person. -
threat-planThe success of threatening depends upon whether you dominate the other person. -
persuadeYou can persuade someone to do something by either asking them, giving them food or threatening them. -
tellTo tell someone something, go there and say it.
-
-
Consequences
-
atransConsequences of an atrans: everyone in the area notices it and the resulting change of possesion, the object changes locations, and the from filler knows he no longer has it. -
graspConsequences of a grasp: everyone knows that the actor either has or (in the case of a tf (transition final or the end of an action) of the grasp) doesn't have the object -
ingestConsequences of an ingest: everyone knows that the actor is no longer hungry or thirsty. -
locConsequences of a loc change: everyone knows it. -
mbuildConsequences of an mbuild: if the object is a causal then a demon is set up for the actor that will be triggered by the antecedent. -
mlocConsequences of an mloc change: check the demons to see if the learned fact affects the learner. Also check the reaction list for general responses to learning such facts. -
mtransConsequences of an mtrans: if there is a ques in the CD mtransed, and if it is a causal, then it is a bargaining promise; otherwise, it is a request (assuming the actors in the sub-CD are in the right places). If there is no ques in the CD mtransed, then the hearer knows about the mtrans, and if he believes the speaker, then he believes what the speaker believes. -
promiseConsequences of y asking x to promise to do xdo if y does ydo: If x deceives y, then after ydo, x will call y stupid, but says that he will do xdo in return for ydo; else if x likes y, then x will do xdo after ydo and says so. Otherwise x says no. -
requestConsequences of x asking y to do z: If y doesn't like x or dominates x, then y will say no; otherwise y will do z. -
planConsequences of a plan: If the actor of the plan act is the actor of the object of the plan, then add the object to the list of actions. -
propelConsequences of a propel: the object struck dies -
ptransConsequences of a ptrans: location change, for both actor and object.
-