I think that something similar to this might have been suggested a while back, but I don't think that anything has been suggested with quite this type of behavior. So, here goes. It's a bit long because I tried to be specific and detailed.
A worm is a long monster, that unlike other long monsters, is active at both ends. Of course, on any given turn, only one end will be active and act like a head, while the other end will act like a tail, so that the worm remains the same length. Unlike other long monsters, worms can be of length one.
Movement Rules:
If neither end of the worm can move, then nothing happens.
If just one end can move, or if the worm is of length one, then the worm will move from that end like a regular serpent.
If both ends can move, then a serpent move is generated for both ends. Of the two, the move made is the move that minimizes the Manhattan distance of the closest end to Beethro (distance ignores walls and obstacles). If both moves result in the same closest value, some arbitrary preference can be used.
Note that usually it will be the closest end that moves actively, but this will not always be the case:
....B... .....B.. A,B = end of worm
....O... .....O.. O = worm segment
....O... .....O.. X = wall
....OX.* ....AO.* * = Beethro
....AX.. ........
.....X.. ........
In both cases above, the minimum distance for the closest end, A, occurs when B moves and A drags along as a tail. Fiddling with it seems to suggest that this would happen relatively often, creating movement patterns very different from any that already exist.
If an end is under the effect of a decoy, than the generated move and the Manhattan distances for that end are calculated using the decoy. All the same, the move chosen is the one that minimizes the distance of the closest end, whether the closeness is to a decoy or to Beethro. If a brain is in effect, then the move generated for each end will be a brained serpent’s move, and the final move chosen will minimize brain pathmap distance instead of Manhattan distance.
Vulnerability:
Worms will be vulnerable at their centers. This will be a single vulnerable segment if the worm is of odd length, and two vulnerable segments if it is of even length. Length-one and length-two worms are no exception, and fall under this rule easily. When a segment is destroyed, the (up to two) resulting pieces become independent worms. Ideally, the pieces would not move on the turn they are created, like tar babies from cutting tar. Again, no exceptions are needed for short worms. Length-one worms leave no pieces, and length-two worms leave a single length-one worm when struck.
Puzzle Potential:
Since worms will never get themselves stuck (aside from force arrows, etc) or killed like normal serpents, they will be significantly more versatile for manipulation puzzles where they are needed to block tar or other critters, or need to be maneuvered out of an unreachable area. Dual-ended movement will result in behavior unlike that of any existing monster. Also, small alcoves or serpent traps would actually act as storage for worms as long as Beethro is closer to the trapped end, since the trapped worm would oscillate between stepping into the trap and then not being able to move and being dragged out as a tail. This could open more possibilities for manipulation puzzles. Also, the splitting of worms allows much potential for puzzles (need X worms of different lengths) and combat. Moreover, the length-one worm all by itself would open possibilities, as a unique type of “roach” that moves only orthogonally, keeps moving unless trapped, and exhibits 5-turn serpent direction preference, among other features of serpent movement.
Comments?
____________________________
Complexity is the source of Life.