Thursday, August 02, 2007

Proposal: The Monkey Tree

S.K.
-Amnistar

Adminned at 04 Aug 2007 18:24:20 UTC

If Proposal: Arrays and StacksBa did not pass, then:

1. Remove the rule called “The Monkey Line”.

2. Create a new rule called “Status” with the text:

Each Monkey has a Status tracked in the GDNT which is either In the Line, or In the Tree.  The default status is In the Line.  As a daily action, any Monkey may change their status to any of the allowed statuses.

3. Set the Status of all Monkeys to In the Line.

4. Add a subrule to “Status” with the text:

The Monkey Line is an endless line of chalk squares (known as “Positions”), each of them numbered, starting from one and going up. Each monkey whose status is “In the Line” appears once and only once in The Monkey Line. The Monkey Line is tracked in a wiki page called “Monkey Dynasty Gamestate Documents”. Position one is known as the top of the list. Each Position may contain one or more Monkeys, or be empty. Whenever a Monkey joins the game or has eir status changed back to “In the Line”, they are placed in the lowest numbered empty Position. Whenever a Monkey has eir status set to something other than the Monkey Line or goes idle, they are removed from the monkey line and their position becomes empty.

If a Position is empty (and a later Position has a Monkey in it), or if a Position has more than one Monkey in it, then the Line is Unbalanced.

If a Position is empty, but the position immediately after it has a single Monkey in it, then any Monkey may move that Monkey into the empty position.

If a Position has two Monkeys in it, then any Monkey may increment the Position of every Monkey after that Position, and place the alphabetically-earliest of the two Monkeys into the newly vacated Position.

If Proposal: Arrays and StacksBa did pass then reword the first sentence of the rule “Status” to read:

Each Monkey has a Status tracked in the GDNT which is either In the Line, In the Barrel, or In the Tree.  The default status is In the Line.

and remove the last sentence of “The Monkey Line” and add the following sentence to the end of the “Status” rule:

As a daily action, any Monkey may change their status to any of the allowed statuses.

In either case, then add a subrule called “The Monkey Tree” to the rule “Status” with the text:

The Monkey Tree is an endless tree made of Nodes, each of which can be termed a Root, a Junction, or a Leaf. The Nodes may each contain zero or more Monkeys.  No Monkey may occupy more than one Node of the tree at a time.  The Monkey Tree is tracked on the wiki page called “Monkey Dynasty Gamestate Documents”.

There is one Node of the Monkey Tree which is known as the Root.  The Root is always a part of the Monkey Tree.  If the Root contains no Monkeys, the tree is Empty, and the Root contains no Branches.  If the Root contains any Monkeys, than it has two Branches; a Left Branch and a Right Branch.  Each of these Branches contains one Node.

All other Nodes in the tree are either referred to as Junctions or Leaves.  Every Junction contains two Branches; a Left Branch, and a Right Branch.  Each of these Branches contains one Node.

If a Leaf has any Monkeys in it, it becomes a Junction.  If a Junction contains no Monkeys, and neither of the Nodes in its Branches are Junctions, it becomes a Leaf, and the Nodes that were formerly in its Branches are no longer considered to be part of the tree.  If a Junction or the Root contains no Monkeys, but one or both of the Nodes in its Branches are Junctions, than any Monkey may move either the Monkey in the Node in the Junction’s Left Branch or the Monkey in the Node in the Junction’s Right Branch into the Junction.

If a Junction or the Root ever contains more than one Monkey, than any Monkey may either move the Monkey whose name occurs earlier in the alphabet to the Node in the Junction or Root’s Left Branch, or move the Monkey whose name occurs later in the alphabet to the Junction or Root’s Right Branch.

Whenever a Monkey’s status is changed to “In the Tree”, they move into the Root of the tree.  If a Monkey’s status changes to something other than In the Tree, they are removed from the Monkey Tree if they were in it previously.

Nodes in the tree can be referred to individually in the following manner:
The root Node can be referred to as “O”.
The Node on the Left Branch of any other Node can be referred to by appending “L” to the name of that Node.
The Node on the Right Branch of any other Node can be referred to by appending “R” to the name of that Node.
Thus, OR is the right child of the root, OL is the left child of the root, ORL is the left child of the right child of the root, etc.

I hope I didn’t forget anything here.  I’m working on the assumption that if Clucky’s proposal doesn’t pass, it was because of the Barrel part and not the restructuring.

Comments

Hix:

08-02-2007 20:32:47 UTC

Crazy! for

Amnistar:

08-02-2007 21:30:37 UTC

o rly?

sorry couldn’t resist.
for

Chivalrybean:

08-02-2007 22:07:20 UTC

for

Icarus:

08-03-2007 06:00:03 UTC

for A semi-automated tree? Great!

Clucky:

08-03-2007 11:28:14 UTC

against

-If my proposal doesn’t pass, we have two rules called status. The barrel proposal was already passed.

-There is nothing to keep this tree sorted. If I switch OLLRL with OLRRRLR then that will unsort the tree with no negative effect. In other words, we are compromising simplicity for a goal we cannot hope to obtain. Maybe have a dance move that sorts the tree—but I don’t see why it always needs to be sorted. Just stick them in the nearest empty spot.

But yeah, if my proposal doesn’t pass I’ll go ahead and veto this one as it doesn’t handle the ‘clucky’s proposal didn’t pass but the barrel proposal did’ case very well.

90000:

08-03-2007 13:39:55 UTC

against

Chivalrybean:

08-03-2007 15:49:30 UTC

What if each junction has a letter, and each branch has simply a number? For example there is a root, and off it a junction named A, which has two branches named A1 and A2.

Then perhaps branches could not become junctions until A1 and A2 are both full.

Then the lowest numbered junction with the lowest letter becomes the next letter. For example when A1 and A2 are full, A1 would become B and A2 would become C.

Just tossing out some ideas, not sure if that is what we are looking for, but hopefully even a poor idea will give life to a better idea.

Clucky:

08-03-2007 20:16:12 UTC

I personally do not see what is wrong with Kevan’s graphical lettering idea. Its far more simpler than anything else—those without programing experience can easily still figure out where to place a monkey and how the tree works. Instead of having to wrap your mind around crazy stuff—its basically just gravity!

Oracular rufio:

08-04-2007 00:42:49 UTC

Clucky - my bad, I didn’t realize that Kevan had created the Statis rule rather than you until people had started voting.

There’s no particular reason that it needs to be sorted, but it’s a way to initialize each Monkey’s position in the tree that is not related to anything that might be considered a score and isn’t at the whim of whoever is organizing it.  Trying to figure out what the “nearest empty spot” is is not going to be simple, to contrast.

Chivalrybean - Branches don’t need to be referred to, just Nodes.  Naming the left child name + 1 and the right child name + 2 is exactly the same as what I’m doing, it just uses numbers instead of letters.

I’m not sure I get what Kevan meant with his lettering idea, honestly. Would that just assign random letters to each Node?  That doesn’t seem like a great idea to me, because a) it means you can’t refer to Nodes that don’t exist currently but may once the tree is added to/rearranged and b) someone could go through and reletter everything and magically change what people’s code does.  This is an objective way to refer to Nodes that expressly references their place in the tree structure.

Oracular rufio:

08-04-2007 00:45:23 UTC

Actually, seeing how Clucky’s proposal has failed I’ll just self-kill and repropose this in a way that doesn’t recreate rules.

against