Scratchで質問した文字列とリストを使いイケてる俳句を作った

Scratch
Scratchで質問した文字列を変数とリストで利用する

<写真1:Scratchで質問した文字列を変数とリストで利用する>

前回、変数の使い方を学んだが、今回は複数の変数を一つにまとめたような入れ物のリストを学ぶ。

また、ユーザーに質問をして、入力させた答えを利用することも同時に学ぶことにする。

教科書では使い方の説明だけなので、アイデアを考えて簡単なプログラムを作ってみたい。

  • 変数:数値や文字列を記憶しておく入れ物。
  • リスト:数値や文字列を「複数個」記憶しておく入れ物。
  • 質問と答え:ユーザーに質問して入力されたものは変数「答え」(answer)に記憶される。

これらを使ってできるプログラムは、どんなものがあるだろう?今の私にできるのか。(^^;)

質問と変数とリストで俳句を作れないか?

例えば、5文字の言葉を6回、7文字の言葉を3回質問して、それらをランダムに組み合わせて3つの俳句を作るとか。

でも、全部ユーザーが答えては、出来上がりがある程度想像できてしまうし、考えるのも大変だ。だから、ユーザーの負担を軽くして、意外性を高めるために、ユーザーには5文字だけ答えさせて、残りは事前に用意しておくのはどうだろう?

ユーザーには上の句の5文字だけ質問して、残りの中の句の7文字、下の句の5文字は、出来るだけ関連性がない言葉を前もって設定しておく。

季語も必要なので、とりあえず7文字の中に季節の言葉を入れて置くことにしよう。

俳句の季語についての知識は持っていないので、この辺は適当でいいだろう。

中の句と下の句を作ってみた

変数は、「上の句」「中の句」「下の句」の3つ作った。質問の「答え」(answer)はScratchに最初から備わっていて、質問とセットになっている。

中の句と下の句はいくつでも設定できるが、ここでは5個づつ作ってそれぞれのリストに加える。

季語は知らないので、季節を思い浮かべて四季を感じさせるような言葉にしたつもりだ。

中の句と下の句を作って設定

<写真2:中の句と下の句を作って設定>

質問した上の句を、中の句、下の句と組み合わせる

上の句をユーザーに質問すると、その文字列は変数「答え」(answer)に入る。

もし「答え」(answer)が空白だったら、質問を止める。空白でなければ入力した上の句を、設定してある中の句と下の句とランダムに組み合わせて、5秒間だけ表示する。

中の句と下の句のリストの言葉を、ランダム関数(1-5)によって選んで、入力した上の句と組み合わせている。

質問した上の句を、中の句、下の句と組み合わせる

<写真3:質問した上の句を、中の句、下の句と組み合わせる>

完成した句を消去したり閲覧する

完成した句を全部消去したい場合や、作った句をゆっくり見たい時のために、それぞれキーボードのイベントとしてプログラムした。

全部消去する時は「d」キー、完成句のリストから指定して見たい場合はスペースキーを押して操作できる。

また、Scratchのリストは、リストの上で右クリックすると、リストの中のものをテキストデータで出力(Export)することができる。

ちなみに、外部で作ったテキストをリストにインポート(import)することもできる。

完成した句を消去したり閲覧する

<写真4:完成した句を消去したり閲覧する> 

完成した句をテキストに出力

完成した句をテキストに出力(エキスポート)して眺めてみると、同じ句が選ばれていて、あまりランダムに発生していないのが不満に感じた。

もっと完璧にランダムに発生させる方法は、Scratchにはないのだろうか?

完成した句をテキストに出力

<写真5:完成した句をテキストに出力 > 

コメント

タイトルとURLをコピーしました