Либо вам нужен случайный случайный переход, либо вы хотите пройти серию перестановок. Первый гораздо проще реализовать, так как вам нужно менее постоянное состояние, и у Tcllib уже есть случайный shuffler для вас.
# This is part of Tcllib
package require struct::list
bind pub -|- !random proc:random
proc proc:random {nick host handle channel arg} {
set randomItems {
"test1"
"test2"
"test3"
"test4"
"test5"
"test6"
"test7"
}
set output [struct::list shuffle $randomItems]
putnow "PRIVMSG $channel :$output"
}
Существует множество других способов создания списка, который также должен быть перетасован. Использовать большой литерал очень просто ...
(Обратите внимание, что принято ставить вызовы package require
вне процедур в верхней части скрипта, чтобы их было легко найти при визуальном сканировании файл. Tcl не применяет это, и никогда не будет применять, но это определенно хороший стиль.)