On Fri, 23 Mar 2012, Tanner Swett wrote:
> On Fri, Mar 23, 2012 at 1:13 PM, Kerim Aydin <ke...@u.washington.edu> wrote:
> > Trying to define an obvious concept here, does recursion work, can
> > this be written better?
> >
> >     A golem can either have a Boss, be Emancipated, or be in Storage.
> >
> >     If a golem has no owner, or (through circularity of ownership)
> >     owns itself, it is Emancipated.  Otherwise:
> >     1. If a golem's owner is a first-class person, that person
> >        is the golem's Boss; otherwise,
> >     2. If the golem's owner is an Emancipated golem or a non-golem,
> >        then the golem is in Storage; otherwise,
> >     3. the golem's owner's Boss is the golem's Boss.
> 
> If I may make a suggestion:
> 
> {A golem's first guardian (if any) is its owner. A golem's nth
> guardian (if any), for n greater than 1, is the owner of its (n-1)st
> guardian.
> 
> If a golem has no owner, or has itself as a guardian, it is
> Emancipated. If a golem is not Emancipated, but has an Emancipated
> golem as a guardian, it is in Storage. If a golem has a first-class
> player as a guardian, that player is the golem's Boss.}

I like the phrasing.  One difference:  Golem ownership isn't restricted.  
A golem can be transferred to a ruble, for example. If the ownership 
chain is: 
   F.C. person -> Ruble -> Golem
then my version stops at "Ruble" ("non-golem") and calls the golem in 
Storage.  Your version sees all the way through to "Boss".  But also
if the chain is Lost&Found -> Ruble -> Golem then yours makes it 
undefined.

I suppose desired behavior depends on what I'm using this for.  I think
"In storage" is a little more appropriate because once the golem is
owned by the Ruble, the F.C. person can't get at it (because there's
no way to act-on-behalf of a ruble).

-G.





Reply via email to