Topic entry

Hi all.

I´m trying to do this:

Before asking someone about something: 
	repeat through Table of Conversation: 
		if the other party of the player is the person entry:
			if the topic understood matches the topic entry:
				say "[reply entry][paragraph break]";
				rule succeeds; 
	if the other party of the player is a person listed in Table of Greetings:
		say "[miss entry][paragraph break]" instead; 
	otherwise:
		say "Beg you pardon?[paragraph break]" instead.

Table of Conversation
	person	topic				reply
	Operator	"Matrix/The Matrix"	"The Matrix has you."
	Operator	"Exit/An exit"		"I have the exit prepared. Call 5678."

But I cannot find the right word instead “matches” (That does´t work).

Can you help me??

Thanks a lot.

What about “includes”?

Inform is confusing about the way it handles string comparisons. When you’re comparing a snippet to a topic, you say the snippet “includes” the topic if it includes something that meets the specification, and that it “matches” the topic if it is exactly the same as something that meets the specification. When you’re comparing two indexed texts, you say that the first “matches” the second if it includes the second, and it “exactly matches” the second if it’s exactly the same as it.

It’s something I keep getting wrong even when I’m looking at the documentation for it.

“Includes” neither worked…

I’m a programer, and I think it’s time to try TADS3… Maybe it is more accurate to my way of thinking…

How is it not working?

…ah ha, on testing I see the problem. When you put a slash between two words in a topic, the slash applies only between the individual words on either side of it. So “a/the matrix” matches “a matrix” and “the matrix”… and “Matrix/The Matrix” matches “The Matrix” and “Matrix Matrix”. So even if you change it to “includes” “ask operator about matrix” won’t work, because the topic understood is “matrix” which doesn’t include either “the matrix” or “matrix matrix”.

If you want to force an exact match (so that “ask operator about matrix” and “ask operator about the matrix” work but “ask operator about the matrix of possibilities” doesn’t), then you can use the word “or” in your topic column instead of the slash:

Table of Conversation person topic reply Operator "Matrix" or "the matrix" "The Matrix has you." Operator "Exit" or "an exit" "I have the exit prepared. Call 5678."

If you want to match it sloppily so that you do catch anything including “matrix,” in your case it’ll be enough to change it to “includes” and go with “matrix” and “exit,” since “the matrix” includes “matrix” and “an exit” includes “exit”! You can also use “or” if you take this route.

(The tab stops in the above code look weird for some reason but if you copy them out they’ll be properly aligned.)

Wohoho… That´s it Matt… You rules :smiley:

Thanks man!!

You could also do something along the lines of:

Understand "ask [someone] about the/a/an [text]" as asking it about.

This will make the syntax a whole lot more permissive, including ungrammatical phrases like ASK NEO ABOUT AN MATRIX, but it’s somewhat more orthogonal in that, since you can TAKE THE RED PILL, it should make sense that you can also use the definite article when you ASK MORPHEUS ABOUT THE BLUE PILL.