文章ジェネレータ
30分プログラム、その247。新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEAより、Tclで文章ジェネレータ。
8. 「(名前)が、(場所)で、(アクション)した」がランダムに組み合わされて出てくるプログラム。
要するに、配列・リストと乱数の使い方の問題。リストはlistコマンドで生成してlindexでアクセスできる。乱数はexprコマンド内でrand()という関数が用意されている。
使い方
$ wish rand.tcl
ソースコード
#!/usr/bin/wish set subject [list {私} {あなた} {あの人} {坊主}] set where [list {家} {公園} {学校} {プール}] set action [list {走った} {踊った} {飛んだ} {運動した}] proc choice {list} { lindex $list [expr int(rand() * [llength $list])] } button .make -text "make" -command { set s [choice $subject] set w [choice $where] set a [choice $action] set result ${s}は${w}で${a} } label .result -textvariable result -width 20 pack .make .result