Feline Behavior
Example 405
★Suppose we have a cat which is supposed to react to (and destroy) the most interesting thing in its environment. There are several ways we could approach this problem, but for the sake of demonstration, let's have it follow a rulebook to figure out which thing it most wants to interact with. We will then return the chosen object as "the object produced by the cat behavior rules".
"Feline Behavior"
The Kitchen is a room. The cat is an animal in the Kitchen. In the Kitchen is a bowl, a ball of wool, a newspaper. The bowl contains a quantity of cream.
The cat is wearing a silver collar. The description of the cat is "It is wearing [a list of things worn by the cat]."
The player carries a closed openable container called a bag. The bag contains catnip.
The cat behavior rules is a rulebook producing an object.
A cat behavior rule when the cat can touch the catnip:
say "The cat frolics with the catnip until nothing remains of it.";
rule succeeds with result catnip.
A cat behavior rule when the cat can touch the cream:
say "The cat laps up the cream.";
rule succeeds with result cream.
A cat behavior rule when the cat can touch the ball of wool:
say "The cat makes the ball of wool into a useless tangle which must be discarded.";
rule succeeds with result ball.
A cat behavior rule when the cat can touch the newspaper:
say "The cat bats playfully at the newspaper until all the nasty boring articles are destroyed.";
rule succeeds with result newspaper.
A cat behavior rule:
say "The cat looks miffed at the lack of ready entertainment, and glares at you with yellow eyes as though wondering whether your pants leg is good for claw-sharpening.";
rule fails.
Every turn:
let the destroyed object be the object produced by the cat behavior rules;
if the destroyed object is not nothing:
now the destroyed object is nowhere;
say "[line break]Good thing you have no use for [the destroyed object] yourself.[paragraph break]".
Test me with "z / z / open bag / z / z".
Test me with "z / z / open bag / z / z".
Kitchen
You can see a cat, a bowl (in which is a quantity of cream), a ball of wool and a newspaper here.
>(Testing.)
>[1] z
Time passes.
The cat laps up the cream.
Good thing you have no use for the quantity of cream yourself.
>[2] z
Time passes.
The cat makes the ball of wool into a useless tangle which must be discarded.
Good thing you have no use for the ball of wool yourself.
>[3] open bag
You open the bag, revealing catnip.
The cat frolics with the catnip until nothing remains of it.
Good thing you have no use for catnip yourself.
>[4] z
Time passes.
The cat bats playfully at the newspaper until all the nasty boring articles are destroyed.
Good thing you have no use for the newspaper yourself.
>[5] z
Time passes.
The cat looks miffed at the lack of ready entertainment, and glares at you with yellow eyes as though wondering whether your pants leg is good for claw-sharpening.
You can see a cat, a bowl (in which is a quantity of cream), a ball of wool and a newspaper here.
>(Testing.)
>[1] z
Time passes.
The cat laps up the cream.
Good thing you have no use for the quantity of cream yourself.
>[2] z
Time passes.
The cat makes the ball of wool into a useless tangle which must be discarded.
Good thing you have no use for the ball of wool yourself.
>[3] open bag
You open the bag, revealing catnip.
The cat frolics with the catnip until nothing remains of it.
Good thing you have no use for catnip yourself.
>[4] z
Time passes.
The cat bats playfully at the newspaper until all the nasty boring articles are destroyed.
Good thing you have no use for the newspaper yourself.
>[5] z
Time passes.
The cat looks miffed at the lack of ready entertainment, and glares at you with yellow eyes as though wondering whether your pants leg is good for claw-sharpening.
We include the if rule succeeded… condition here because nothing will be returned if the cat's search failed (as for instance in the result of the final rule).
Naturally, if we wanted we could equally well ask "if rule failed…".