「夏草や 負けるな一茶 夢のあと」――ランダム俳句プログラムで奇跡の一句は生まれるか!?:プチコンで始めるBASIC新世代育成“虎の穴”(7)(1/3 ページ)
懐かしのジョークプログラムの代表格「ランダム俳句プログラム」をプチコンのBASICで再現するとこうなった! 一風変わったデータ管理方法として、グラフィック面をメモリ代わりに使うテクニックも紹介するぞ。
一茶も苦労しとるのじゃな!
『秋深き 兵(つわもの)どもが ここにあり』か……。ふむ、もうそんな季節なのじゃなあ。
何だか雄々しい句ですが、全部間違ってるんじゃないでしょうか。
いやいや、ワシのミスではないぞ。ほれ、この通り、きちんとプチコンで表示されとるじゃろ(画像1)。
えーと、どこからつっこめばいいのか……。
チッ、まだるっこしい! 要するに俳句の“五・七・五”をランダムで組み合わせるプログラムだろ?
『夏草や 負けるな一茶 夢のあと』か……。ふむ、一茶も苦労しとるのじゃな。
うるせえヨ!
ハカセはしみじみとしていますが、もちろんこれは“ジョークプログラム”。現代でも、さまざまな環境で作られている人気のプログラムジャンルですね。懐かしのマイコン時代にも、「基本的にテキストだけで表現できる」&「作り自体は単純」にもかかわらず、結果はなかなか笑えるものに仕上がるということで、初心者のチャレンジにふさわしい定番プログラムの1つでした。
これを現代のプチコンで再現すると、こんな感じになるでしょうか(ソースコード1)。
CLS 'カ゛メンクリア CLEAR 'ショキカ DIM WORD$(256,3) WORD$(0,0)="ナツクサヤ" WORD$(0,1)="ツワモノト゛モカ゛" WORD$(0,2)="ユメノアト" 'メインルーチン @MAIN CLS FOR I=0 TO 2 'ハイク セイセイ R=RND(NO+1) KU$=KU$+WORD$(R,I)+" " NEXT 'ハイク ヒョウシ゛ PRINT KU$ KU$="" PRINT PRINT "ステキナ ク テ゛シタネ" PRINT "(Space=ヨミナオシ Enter=ツイカ)" 'ニュウリョクマチ @KEYWAIT K$=INKEY$() IF K$==" " THEN @MAIN IF K$==CHR$(13) THEN @INPUT WAIT 1 GOTO @KEYWAIT 'ハイク ツイカ @INPUT CLS NO=NO+1 'トオシハ゛ンコ゛ウ ツイカ INPUT "サイショノ5モシ゛ハ";WORD$(NO,0) INPUT "ツキ゛ノ7モシ゛ハ";WORD$(NO,1) INPUT "サイコ゛ノ5モシ゛ハ";WORD$(NO,2) GOTO @MAIN
ソースコード1 ちょっとほのぼのしますね。えっ、そうでもない!? ちなみに[SPACE]キーで俳句の追加(五・七・五の順番で)ができます! |
いかがでしょう。2次元配列「WORD$(n1,n2)」の“n1”が句の通し番号、“n2”が順に五・七・五のセンテンスであると、すぐにお分かりですね。
「INKEY$()」関数は、BASIC以外の言語ではあまり見掛けませんが、キーボードからの入力1文字を返す関数です。毎フレームチェックが必要なので、ラベル「@KEYWAIT」の中でループし続けています(こういう「入力待ちループ」がいちいち必要になるところも、他の言語であまり使われない理由かもしれません……)。
話は分かったけどヨォ、随分と初心者向きのプログラムじゃねェか。MONOist読者には“いまさら”って感じじゃねェの?
やってることは変数にセンテンスのデータを格納して、ランダムに読み出すだけですから、目新しさは感じませんね。
キミら、本当に遠慮なしにズバズバと指摘してくるのう……。じゃが、それももっともじゃ。そこで、「プチコン」らしいひとひねりを加えてみたぞい! ほれっ!!
TALK "@T200@S3@E8"+KU$
な……、なるほど。「TALK」文で、音声読み上げしてるんだね。
そこは『読み上げ』よりも『詠み上げ』と言ってほしいのう(ドヤッ!!)。
うるせーッての! 第一、このMONOistの記事ページからは音声が聞こえねェから分かりづれェだろうが!!
ム、ム、ムッ!? パラメータを、“@T200(やや遅め)・@S3(女性)・@E8(単調に)”に設定して、何となく俳句っぽいイントネーションで詠み上げさせたんじゃが……。まあ、そのへんは実際にプチコンでQRコードをロードして、発音させてみてくれい。
こ、これはかなり露骨な販促では……。
販促かどうかはともかく、多彩なパラメータの発声をプログラム中に簡単に入れ込めるのは、プチコンのBASICならではですね(露骨な販促)。
過去、いわゆる「PC-6000系」のマイコンにも採用されていた音声合成機能ですが、当時から“コンピュータがしゃべる(それも比較的突拍子もないイントネーションで)”というのは珍しくも愉快なものでした。当時、店頭に陳列されたデモ機の中に、誰かが打ち込んだ「変なフレーズを発声するプログラム」が放置されるという、ちょっとしたイタズラも横行したとかしないとか……。
今回のプログラムも、音声が付いただけで“衝撃2倍”の面白さなので、できれば実機でお試しいただきたいところです。
Copyright © ITmedia, Inc. All Rights Reserved.