marnanel: (Default)
I've found the problem with the T-Zero topiary map. The exits from each room depend on the direction you entered from. So rather than 25 rooms, it makes more sense to talk about 100 (5 rows by 5 columns by 4 directions).

I've run a bot over the maze with this assumption and this is a rough diagram of what I've found.
https://i.imgur.com/0m4EQFJ.png

Red = prohibited by rules
Blue = permitted
Green = prohibited by hedge (boundary or middle)
Grey = U-turn; universally prohibited
Black = special

There are two special points: the one at (0,1) leaves through the entrance, and the one at (4,3) leaves through the exit and wins.

Heaven help anyone trying to map this with pen and paper.
marnanel: (Default)
okay, lovely people, I need some help.

I'm in the middle of porting one of my favourite adventure games, T-Zero, from DOS to Inform. So far, I've reverse-engineered the binary to figure out the stringtable encryption. ([personal profile] brainwane asked for more details on that, so I'll post them later.) I've also built a harness that can run the DOS version (in Dosbox), or the Inform version (in Frotz) equivalently, and allows you to plug in classes that can process commands and responses from either.

I'm having an interesting time implementing the maze, which is called the Topiary. Someone on ifdb said it took him a full year to solve the maze, so I guess it's not surprising. Here's what I have so far.

map

The maze is 5x5. Rather than blocking cardinal directions ("you can't go east from here"), each room blocks relative directions ("you can't turn right here"). I have made an attempt to list which directions are allowed in each room.

The pink line is the solution given in t-zero.sol on ifarchive. I can confirm that it works.

The diagonals are blocked by monsters; they're useful for checking you're in the room you expected. Each monster is a chimera whose name is randomly made up from a prefix and a suffix. (There is another puzzle about the monster names, but it doesn't concern us here.) I've used the initials of the prefix and the suffix as they appear in the save file I'm about to give you; the name of each monster changes every time you enter the maze.

My question is this: something in my understanding of the way the rooms block turns (through/left/right) must be wrong. A few rooms seem to allow a particular turn in some situations but not others. What determines this?

(I'm also rather curious as to whether it's ever possible to get to an unsolvable position, but that's secondary.)

I could probably work this out by reverse-engineering again, but black-box testing is far easier and less error-prone.

A zipfile of the program, and the save file topi.sav, are here: https://marnanel.org/temp/t-zero/

Profile

marnanel: (Default)
Monument

January 2022

S M T W T F S
      1
2345678
9101112131415
1617 1819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 12th, 2025 09:48 am
Powered by Dreamwidth Studios