I have code that works to do what I want. But what I am wondering is if there is a way to do it simpler. I want to be able to not just shuffle a list, but keep consecutive items together. For instance, this would allow for sensible ongoing conversations.
To do this I define the following and operate on it.
[code]a talkgroup is a kind of thing. a talkgroup has a number called cur-row. a talkgroup has a table-name called cur-table.
jokes is a talkgroup. cur-row of jokes is 0. cur-table of jokes is table of cc-blather.
complaints is a talkgroup. cur-row of jokes is 0. cur-table of complaints is table of bar-blather.
[/code]
This works okay, but two tries with tables or lists didn’t. And it’s no problem if they don’t, but I don’t understand why & sense I’m missing something important about Inform in general. Code-tries are below.
[spoiler][code]“tablenum” by Andrew Schultz
room 1 is a room. room 2 is west of room 1.
temp-table is a table-name that varies. a table has a number called x.
when play begins:
now temp-table is table of not very random talk;
sort table of not very random talk in random order;
every turn:
if player is in room 1:
now temp-table is table of not very random talk;
if player is in room 2:
now temp-table is table of boring talk;
increment x of temp-table;
if x of temp-table > number of rows in temp-table:
now x is 1;
choose row x of temp-table in temp-table;
say “[blah entry]”;
to say minus:
decrement x of temp-table;
table of not very random talk
blah
“[one of]Hi![minus][or]How are you?[minus][or]My, the weather![cycling]”
“I like lamp.”
table of boring talk
blah
“[one of]yawn[minus][or]yawn again[cycling]”
“zzz”[/code][/spoiler]
[spoiler][code]“tablenum” by Andrew Schultz
room 1 is a room. room 2 is west of room 1.
temp-list is a list of text variable that varies.
a list has a number called x.
when play begins:
now temp-list is list of not very random talk;
sort list of not very random talk in random order;
every turn:
if player is in room 1:
now temp-list is list of not very random talk;
if player is in room 2:
now temp-list is list of boring talk;
increment x of temp-list;
if x of temp-list > number of entries in temp-list:
now x is 1;
say “[entry x of temp-list in temp-list]”;
to say minus:
decrement x of temp-list;
list of not very random talk is a list of text variable. list of not very random talk is { “[one of]Hi![minus][or]How are you?[minus][or]My, the weather![cycling]”, “I like lamp.” }
list of boring talk is a list of text variable. list of boring talk is { “[one of]yawn[minus][or]yawn again[cycling]”, “zzz” }[/code][/spoiler]
This says “In the sentence ‘increment x of temp-list’ , you seem to be looking up the ‘x’ property, but ‘list of k’ is not allowed to have that property.”
So, am I missing syntax, or the big picture? Thanks!