Joke Text Maker
フリーウェア:[Download](12KB)
誰が?どこで?何を?どうした?・・・文章の要素を組み合わせて勝手に文書を作ってくれる。それがこの Instant Joker です。
仕様が単純なので、誰でも簡単に自分の好きな文章に入れ替えることができます。
直接 CGIファイルを呼び出す方法と、SSI を使って HTML中に文章を挿入する方法が選べます。
# 出力モード(0=plain text/1=HTML text/2=HTML File)
$mode = 2;
標準ではモード2に設定されています。通常の HTMLファイルとしてブラウザに表示されます。
モード0と1ではテキストファイルとして出力されますが、モード1の場合、改行に<BR>タグが付いていますので、HTML ファイルの中にテキストを挿入して利用する場合に便利です。(SSI を使用)
InstantJoker.cgi をFTPソフトで転送し、プロトコルを「755」に設定します。
これだけでCGIファイルを呼び出せば動作します。
SSI を使用する場合、付属の index.html を参考にしてください。
もし index.html を使用して文章が表示されない場合、サーバーが SSI の使用を禁止していたり、設定が必要な場合がありますので、プロバイダに確認をしてください。
楽しい使用例をお待ちしています。(→メール)
ニュース速報(サンプル)
三国志ニュース(秀麗)
# メイン処理
&date_time;
&who;
&where;
&what;
&how;
&oti;
各サブルーチンへ「&OOOO」から処理を呼び出しますので、不要な処理がある場合、「&」の前に「#」を付ければ、その処理は自行されません。
$ran = rand(100);
if ($ran < 100) {$msd ="" "おそらく、";}
if ($ran < 90) {$msd ="" "時々、";}
if ($ran < 80) {$msd ="" "なぜか、";}
if ($ran < 70) {$msd ="" "昨日、";}
if ($ran < 60) {$msd ="" "さきほど、";}
if ($ran < 50) {$msd = "およそ、";}
if ($ran < 40) {$msd = "本日、";}
1行目で0以上100未満の乱数を発生させています。
それ以降の部分でメッセージの確率を調整しています。
「本日、」は40%、「およそ、」は10%という具合です。(その行と下の行の数字を引き算します)
例えば、乱数が45と出た場合、各条件を見ると、100未満、90未満など多くの条件に合致します。しかし、最終的に50未満という条件を満たして、$msd に「およそ、」を受け取って、条件を終了します。
注意点は、数字を比較する部分が数字の大きな順に並ぶようにすることです。順番を間違うと正しく動作しません。
@msw = ("鈴木さん","男性","美男子","宇宙飛行士","大学教師","新体操選手","国会職員","警察官","ネズミ男","北野さん","ススム君","コウちゃん","OL","大関","三毛猫","少女","リカちゃん(78)","消防士","指揮者","棋士","国民的英雄");
$ran = int(rand($#msw));
この部分では長い1行目で、それぞれのパーツを配列変数(@msw)に収め、2行目で収めたパーツの数までの乱数を発生させています。
パーツとなる言葉を増やしたり減らしたりすることで、自動的に乱数を調整しています。
$msg = "$msg$msw[$ran]が";
所々にあるこのような部分が文章を継ぎ足して合成している部分です。
また、上記の例では「が」という助動詞を足しています。
# HTML file 出力フォーマット
HTMLファイルへの出力は上記サブルーチンの中で行っています。<HTML>~</HTML>の間にある部分を思うように修正してください。(その前後は変更しないでください。)
ただし、「ソ」「表」「能」など CGI では正しく表示できない文字には注意してください。(文字の後ろに「\」を付ければ正しく表示されます。)