検索
連載

「夏草や 負けるな一茶 夢のあと」――ランダム俳句プログラムで奇跡の一句は生まれるか!?プチコンで始めるBASIC新世代育成“虎の穴”(7)(1/3 ページ)

懐かしのジョークプログラムの代表格「ランダム俳句プログラム」をプチコンのBASICで再現するとこうなった! 一風変わったデータ管理方法として、グラフィック面をメモリ代わりに使うテクニックも紹介するぞ。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
※本記事はアフィリエイトプログラムによる収益を得ています

一茶も苦労しとるのじゃな!

ハカセ

秋深き 兵(つわもの)どもが ここにあり』か……。ふむ、もうそんな季節なのじゃなあ。

インテリ

何だか雄々しい句ですが、全部間違ってるんじゃないでしょうか。


ハカセ

いやいや、ワシのミスではないぞ。ほれ、この通り、きちんとプチコンで表示されとるじゃろ(画像1)。


今回の実行画面。ちょっと地味?
画像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]キーで俳句の追加(五・七・五の順番で)ができます!

ソースコード1のQRコード
ソースコード1のQRコード

 いかがでしょう。2次元配列「WORD$(n1,n2)」の“n1”が句の通し番号、“n2”が順に五・七・五のセンテンスであると、すぐにお分かりですね。

 「INKEY$()」関数は、BASIC以外の言語ではあまり見掛けませんが、キーボードからの入力1文字を返す関数です。毎フレームチェックが必要なので、ラベル「@KEYWAIT」の中でループし続けています(こういう「入力待ちループ」がいちいち必要になるところも、他の言語であまり使われない理由かもしれません……)。

ワンパク

話は分かったけどヨォ、随分と初心者向きのプログラムじゃねェか。MONOist読者には“いまさら”って感じじゃねェの?


インテリ

やってることは変数にセンテンスのデータを格納して、ランダムに読み出すだけですから、目新しさは感じませんね。


ハカセ(涙)

キミら、本当に遠慮なしにズバズバと指摘してくるのう……。じゃが、それももっともじゃ。そこで、「プチコン」らしいひとひねりを加えてみたぞい! ほれっ!!


    TALK "@T200@S3@E8"+KU$

神崎

な……、なるほど。「TALK」文で、音声読み上げしてるんだね。


ハカセ

そこは『読み上げ』よりも『詠み上げ』と言ってほしいのう(ドヤッ!!)。


ワンパク

うるせーッての! 第一、このMONOistの記事ページからは音声が聞こえねェから分かりづれェだろうが!!


ハカセ

ム、ム、ムッ!? パラメータを、“@T200(やや遅め)・@S3(女性)・@E8(単調に)”に設定して、何となく俳句っぽいイントネーションで詠み上げさせたんじゃが……。まあ、そのへんは実際にプチコンでQRコードをロードして、発音させてみてくれい。


QRコード2
「TALK」文で、音声読み上げを追加したプログラムのQRコード
インテリ

こ、これはかなり露骨な販促では……。



 販促かどうかはともかく、多彩なパラメータの発声をプログラム中に簡単に入れ込めるのは、プチコンのBASICならではですね(露骨な販促)。

 過去、いわゆる「PC-6000系」のマイコンにも採用されていた音声合成機能ですが、当時から“コンピュータがしゃべる(それも比較的突拍子もないイントネーションで)”というのは珍しくも愉快なものでした。当時、店頭に陳列されたデモ機の中に、誰かが打ち込んだ「変なフレーズを発声するプログラム」が放置されるという、ちょっとしたイタズラも横行したとかしないとか……。

 今回のプログラムも、音声が付いただけで“衝撃2倍”の面白さなので、できれば実機でお試しいただきたいところです。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る