過去ログ NO.1109254064
□ ぴー [2005年02月22日00時31分]はじめまして。 どなたかご存知の方、教えてください。
現在「Hyper_Shiritori v.2.3」を使用しているんですが、濁点が付いた単語(例:りんご)の続きを、濁点ありの単語(例:ごりら)でも濁点なしの単語(例:こども)でも、どちらでも続きを再開するようなことは可能でしょうか。
shiritori.cgi の中の182行目と346行目に、以下のように追加してみたんですが‥
$check =~ s/こ/ご/; $check =~ s/ご/こ/;
濁点ありなし両方には反応してくれません。 どうしたら良いのでしょうか?
□ ぴー [2005年02月22日00時52分]追記です。 設置は以下のURLです。 http://www.hiddenmickey.jp/shiritori/shiritori.cgi 宜しくお願いします。
□ NXer [2005年02月24日23時07分] はじめまして。NXerです。
>10 $check =~ s/こ/ご/; >20 $check =~ s/ご/こ/;
10行目で「こ」は、「ご」になります。 20行目で「ご」が、「こ」に。 置換したつもりが元にもどっているのでは。
以下は、例示された、語尾が濁音「ご」の尻取りした語頭が 濁音「ご」でも清音「こ」でも、ともに尻取りになるスクリプト の例です。当方のローカル・サーバーで動作しました。
---------------------------------初期設定 16 #濁音置換用flag to convert voiced sounds to voiceless ones 17 $cflag=1; ======== 366 if(substr($c_word,$c_len,2) eq "ん") { &error("「ん」で終わる単語は投稿できません"); } $str=substr($FORM{'word'},0,2); if ($str =~ /(が|ぎ|ぐ|げ|ご|ざ|じ|ず|ぜ|ぞ|だ|ぢ|づ|で|ど|ば|び|ぶ|べ|ぼ|ぱ|ぴ|ぷ|ぺ|ぽ)/){ $cflag=0; } elsif ($cflag=1){ $check =~ s/が/か/; $check =~ s/ぎ/き/; $check =~ s/ぐ/く/; $check =~ s/げ/け/; $check =~ s/ご/こ/; $check =~ s/ざ/さ/; $check =~ s/じ/し/; $check =~ s/ず/す/; $check =~ s/ぜ/せ/; $check =~ s/ぞ/そ/; #だ〜ぽ分の置換文は省略 } 377 if($check ne '' && substr($FORM{'word'},0,2) ne $check) { &error("しりとりになっていません"); } ----------既存の366,377(一部修正)、その間の行は挿入スクリプトby NXer
いま、「たまご」の尻取りとします。 「ごまじお」と入力。 $str=substr($FORM{'word'},0,2); ↑で語頭の「ご」を1文字代入します。 ($str =~ /(が|ぎ|ぐ|げ|ご|ざ|じ|,,,,)/) ↑それが、/(..|..)/の、〜または〜にマッチするかを正規表現 で調べます。もちろん、「ご」に一致。真となって$cflagの値を0にします。 この結果377は動作しないで通常の尻取り続行。
つぎに、濁音は清音で始めてもよい尻取りルールなので 「ことう」(孤島)と入力。 elsif 文に飛びます。初期値で清音も許可するフラッグ$cflag=1 であることから、ここでチェック用の文字を置換。 ------------------- $check =~ s/ご/こ/; -------------------- これで本来「ご」ですが、「こ」が許可されて尻取りは有効の判断がされます。
さて、濁音と半濁音は合計25文字あります。これらを同様の 置換文にすると長くなるため、ここでは、「だ」以降は省略しました。 補充してください。
尻取りのルールは、関係する協会が決めていると思いますが 当方の限られたperlの知識ではこれが限度です。 そちらでもうまく動作した時は、説明文に濁、半濁音は 清音でも可などのルール説明を追加して見てください。 メッセージ機能の追加など、尻取りゲームに終わらせない で、すえぽんさんのcgiを奥行きのあるものにしたい気が します。ぜひとも、よりエレガントなアルゴリズムを考案 してください。
***************p.s***************** なお、上記のスクリプト説明は、当方のメモです。理解を強制 するものではありません。コピーペーストでご利用いただき さらに運用していただければ、very happy(満足)。
一定時間書込が無かったので過去ログに移りました
|
|