A seeming inconsistency

This may not be the best way to map out a story, with a street running down the middle of the map, and four rooms (mainly shops) on each side of it, but here’s what I wrote:

[code]Part - Rooms

Rocky’s Apartment is a region. Bedroom, Bath, Kitchen and Cloest are in Rocky’s Apartment.

A room can be either visited or unvisited.

Union Street is a region.

Street Outside of Recording Studio is a room.

Street Outside of Record Shop is a room.

Street Outside of Apartment is a room.

Street Outside of Kit Kat Club is a room.

Street Outside of Kit Kat Club is east of Street Outside of Apartment.

Street Outside of Apartment is east of Street Outside of Recod Shop.

Street Outside of Record Shop is east of Street Outside of Recording Studio.

Recording Studio is a room.

Street Outside of Apartment is north of Bedroom.

Street Outside of Recording Studio is north of Recording Studio.

Street Outside of Record Shop is north of Record Shop.

Street Outside of Kit Kat Club is north of Kit Kat Club.

Pawn Shop is north of Street Outside of Apartment.

Precinct House is north of Street Outside of Recording Studio.[/code]

The deal is, Inform has no problem through the penultimate line (Pawn Shop is north of Street Outside of Apartment), but it refuses to compile when I add the last line. I can’t figure out why. Here’s the message:

Problem. You wrote ‘Precinct House is north of Street Outside of Recording Studio’ , but in another sentence ‘Street Outside of Recording Studio is north of Recording Studio’ : but this looks like a contradiction, which might be because I have misunderstood what was meant to be the subject of one or both of those sentences.

The similar names are probably confusing it, because of the whole “automatically assume elements are short names” thing. I do not know what the best solution is, but some possible solutions I would try are:

-using the “room called ___” phrasing
-giving the streets unique street names
-replacing the spaces in the names with dashes and then writing a print-name rule so it still displays nicely for the player

Nope. That’s not it. Thanks anyway.

I just went through and replaced all the street names with unique acronyms, and it compiled fine.

You’re right, thanks.

I was wrong. It only compiled when I incorrectly placed one of the shops (precinct house).

Inform appears to object to this code:

[code]Street Outside of Moon Studio is north of Moon Studio.

Street Outside of Platter Shop is north of Platter Shop.

Street Outside of Kit Kat Club is north of Kit Kat Club.

Pawn Shop is north of Street Outside of Apartment.

Precinct House is north of Street Outside of Moon Studio.[/code]

It gives this message:

Problem. You wrote ‘Precinct House is north of Street Outside of Moon Studio’ , but in another sentence ‘Street Outside of Moon Studio is north of Moon Studio’ : but this looks like a contradiction, which might be because I have misunderstood what was meant to be the subject of one or both of those sentences.

The code I wrote seems to work on three sections of the street, but not when it comes to Moon Studio’s section of the street. I don’t know why.

Putting single quotes around the last room name solves the problem for me (Inform7 6L38):

Precinct House is north of 'Street Outside of Recording Studio'.

Does that actually work? I had no idea you could use single-quotes for grouping like that. That is incredibly useful.

I tried it out with objects and it just treats the single quotes as part of the object’s name… so unless room names work differently from that, it’s basically giving it a unique name, and not a way of indicating name boundaries.

Actually, I don’t really think it does work, at least, it’s not working for me.
I suspect there may be a better way to do this, I just don’t know what it is.

I want the “map” of my story to have Union Street running across the center from west to east; the precinct house, hardware store, pawn shop and men’s shop on the north, west to east; Moon Studio, the Platter Shop, Bedroom and Kit Kat Club on the south, west to east.

Is there a better way?

I’d shrink this map down a lot. Make one street location with exits NW, N, NE for the shops on the north side and exits SW, S, SE for the shops on the south side. If you need more than three per side you could add a second part of the street, or make the street a dead-end (and thus add another building on the W exit). That should take care of the naming problem for you.

You had quite a few problems in there. Some of the rooms were plainly not connected, you had some typos, and globally the logic was a bit messy. Put up you code a FEW lines at a time and compile often.

Try the following. It uses constructs like east of a room called:

[code]Part - Rooms

Rocky’s Apartment is a region. Bedroom, Bath, Kitchen and Closet are in Rocky’s Apartment.

A room can be either visited or unvisited.

Union Street is a region.

Street Outside of Recording Studio is a room.

Street Outside of Recording Studio is north of a room called Recording Studio.

Street Outside of Record Shop is a room.

Street Outside of Apartment is a room.

Street Outside of Kit Kat Club is a room.

Street Outside of Kit Kat Club is east of Street Outside of Apartment.

Street Outside of Apartment is east of Street Outside of Record Shop.

Street Outside of Record Shop is east of Street Outside of Recording Studio.

Street Outside of Apartment is north of Bedroom.

Street Outside of Recording Studio is north of Recording Studio.

Street Outside of Record Shop is north of a room called Record Shop.

Kat Club is north of Kit Kat Club is south of Street Outside of Kit Kat Club.

Pawn Shop is north of Street Outside of Apartment.

Precinct House is north of Street Outside of Recording Studio.[/code]

One of the problems is when you have room names like “Street Outside of Record Shop” because “Outside” is a direction. Consider that “Street is Outside of Record Shop” will make two locations: “Record Shop,” which you exit from to “Street.” Which is kind of what you want.

It’s really hard to get out of the habit of using directions in room names at first. Zork violates this right off the bat: “West of House”.

Why not give each street a name instead of just naming them what they’re “outside” of?

Barring that, you pretty much need to do "SOORS is north of Record Shop. The printed name of SOORS is “Street Outside of Record Shop”.

That’s what did it! Thanks! Rock’n’Roll is here to stay!