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!