ラウンジ(兼FAQ掲示板)

Hyper_Shiritori v.2.3
過去ログ 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(満足)。

一定時間書込が無かったので過去ログに移りました

suepon.com | CGI作成/CGI制作 | JavaScript | ドメイン検索 | バナー自動作成 | Google ダンスツール | 松浦亜弥 | H.P.memo | パソコン | ネイル

Copyright (C) 2002 - 2008 suepon , All rights reserved. Powered by CGI Script Market.