Strangely Consistent

Musings about programming, Perl 6, and programming Perl 6

July 25 2012 — putting out the fire

I got a nice email today.

Date: Wed, 25 Jul 2012 10:54:09 -0600
Message-ID: <>
Subject: crypt test cases with water
From: Bruce Armstrong <...>


  I've been following your crypt game with interest.  It has been thought provoking.
Today's post brought out the tester in me and I have a few sad path tests that
unfortunately complicate things.

Water is not a normal object, but it is treated as such, so currently...

You can take water without a helmet.
Once taken, the water is gone
You can put the water in the car and pick it back up again

It has been fun to read these posts.  I thank you for writing this all up and look
forward to seeing how you handle these and other conditions that come up.

Well, I thank you, dear tester! Your submissions entered into the growing list of ways to mess with the game, thus making you eligible for the promised Amazon book. Also, I took the time to fix the bugs you discovered:

The middle bug, "Once taken, the water is gone", is really the core issue, as I see it. Water isn't so much a "thing" as it is a "mass noun", and you should be able to have as many of it as you like in different places of the game. The game engine is not happy with such multi-location objects right now. Rather than address the problem head on, I went with last year's solutions. If it turns out that this becomes a pain point, I might evolve a more permanent solution.

Now, let's move on to today's commits:

Well, that was easy. It feels like the game engine mostly has what I need now, and I can just make method calls and it obeys. A nice feeling overall. The game engine is in for a number of overhauls, though. I'll get to them as stuff settles down. Good thing I have a test suite. 哈哈

Tomorrow we'll grab the treasure from the crypt, trigger total cavern collapse, and die. It'll be fun.