• ベストアンサー

タイピングゲームの異なるローマ字入力

こんにちは。 javascriptでタイピングゲームを作っています。 基本的な構造はできたのですが、異なるローマ字打ちを どの様に作ればいいかわかりません。 word="kyatto,cyatto,cyotto" //キャット、チャット、ちょっと list=new Array(); list=word.split(","); 変数wordがタイプするローマ字の中身です。 例えば、最初の「kyatto」を「kixyaxtsuto」や「kyaxtuto」 などでも読み込めるようにするにはどうすればいいでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.2

語彙が少ないなら、考え方は #1 多いなら、それぞれの語のハッシュを用意しておくと楽? 参考までに。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title></title> <script type="text/javascript"> var romanAlphabetMap = {  0x0074 : [ // t   /[\u305F\u3061\u3064\u3066\u3068]/, // たちつてと   {    0x0069 : /^([\u3061\u30C1])/, // i : ちチ    0x0079 : { // y     0x0061 : /^(\u3061\u3083|\u30C1\u30E3)/ // a : ちゃチャ    }   }  ],  0x006C : [ // l   /[\u3083\u3085\u3087]/, // ゃゅょ   {    0x0079 : { // y     0x0061 : /^[\u3083\u30E3]/ // a : ゃャ    }   }  ],  0x0078 : [ // x   /[\u3083\u3085\u3087]/, // ゃゅょ   {    0x0079 : { // y     0x0061 : /^[\u3083\u30E3]/ // a : ゃャ    }   }  ] }; var p = romanAlphabetMap; var word = 'ちゃ'; //@cc_on function typeGameHandler( evt ) {  var keyCode = evt./*@if(1) keyCode @else@*/ which /*@end@*/;  if( 'undefined' == typeof p[ keyCode ] ) {   alert( 'Mistake!!' );   /*@if(1) evt.returnValue = false; @else@*/ evt.preventDefault( ); /*@end@*/  } else {   p = p[ keyCode ];   if( p instanceof Array && word.search( p[0] ) == 0 ) {   p = p[1];  } else if( p instanceof RegExp && word.search( p ) == 0 ) {   word = word.replace( p, '' );   p = romanAlphabetMap; word == '' && alert( 'Complete!!' );  }  } } </script> </head> <body> <p><input type="text" onkeypress="typeGameHandler( event );"></p> </body> </html> 途中で飽きた。

willbelate
質問者

お礼

大変勉強になりました。 有難うございます。

その他の回答 (2)

回答No.3

いつも勉強になります! ありがとうございます。

回答No.1

ごみみたいなものをなげてみる! var word_list = { 'kyatto' : ['kyatto', 'kixyaxtsuto', 'kyaxtuto'], 'atoha' : ['atowa'] } function arryMatch (key, list) { var i, spl, kl = key.length, s, ret = []; for (i = 0; spl = list[i]; i++) { s = spl.substr(0, kl); if (s === key) ret.push(s); } return ret; } var chk = arryMatch('kya', word_list['kyatto']); alert (chk.length);

willbelate
質問者

お礼

大変勉強になりました。 有難うございます。

関連するQ&A

  • 全角ローマ字打ちでのタイピングで疑問なことがあるんです。

    全角ローマ字打ちでタイピング中、シフトキーを押しながら アルファベットのどれかを押すと、 大文字のアルファベットが出ます。 たとえば 「 A 」 これって半角英数字打ちのときの大文字のAと 全く同じものなのでしょうか。 言い換えると、全角ローマ字打ちの最中 半角大文字アルファベットを突然打ちたくなったとき、 半角モードに切替えなくてもシフトキーを押しながら アルファベットを押せばよい、ということでしょうか。 また、どこのどんなパソコンでもこのような仕様に なっているのでしょうか。 XPです。 IME使っています。 教えてください。 お願いします。

  • ローマ字うち

    PC操作に関して超初心者です。 Word、Excel、E-mailなど、文字を入力する際にローマ字打ちをしています。 先日、知人宅のPCをさわる機会がありました。知人のPCはひらがな打ち設定をしています。ひらがな打ちをローマ字打ち設定に変えようとしたのですが、やり方がわからず、結局知人宅のPCを操作できず、作業が滞り、困ってしまいました。 この「ひらがな打ち⇔ローマ字打ち」に変更するにはどうしたらよいのか教えていただけませんか。

  • ワードのローマ字入力

    とても初歩的な質問で申し訳ないのですが悩んでいるのでお願いします。 普段はワードやメールの時はローマ字打ち(というのでしょうか、「ま」なら「MA」と打つやつ)をしています。 会社では年配の人がいるためか、日本打ち(「ま」とうつならJのところを打つ)になっています。 私はとしては非常に使いにくいので自分が使うときだけローマ字うちにしたいのです。 家ではコントロールとcapslockを押せば切り替わってまた同じようにすると戻るのに、会社のはどうやってもうまく切り替わりません。 切り替わっても、元にもどらなくなったりするんです。 会社のは95なんですが、どうやったらいいのでしょうか・・(T_T) いつも日本打ちしているのですがなかなか慣れないし 時間ももったいないんです。

  • 日本語(ローマ字)タイピングについて

    ある何度か、つい最近、競争する機会がありましたので、 実際に、いろいろタイピングで競争すると、 私は、この点で、特に負けていました。 ・比較的長い文章で、よくつっかかりやすく、その部分で遅くなる。 ・上記の間に、ローマ字文字を、脳みそ内で、生成しなおしていることが  わかった(生成しなおし=たちつてと(表記:tachitsuteto→tatituteto 等) ・比較的短文だと、応答速度が速い さすがに、かな打ちをすれば、早くなるにはなるんですが、逆に、 今更ながら、覚えるということで、困っています。 かな打ちを覚えない前提で、いかに、ローマ字文字を、 いかにミスなく、早く打つ方法は、どうしたらよいでしょうか? よろしくお願いします。 -- ↑上記ここまで p.s.この文面は、たちつてとの例文で少し止まりましたが、約3分強でできています

  • ローマ字打ちが出来なくなりました。

    急にローマ字打ちが出来なくなりました。言語バーの「kana」にすると、かな入力になり、capslookを解除しても出来ません。 ネットで色々調べてみて「Alt+カタカナひらがなローマ字キー」を押すと戻るとあったので試してみましたがなりません。他にも「Alt+半角/全角/漢字(左上キー)で試したりしましたができません。 下の言語バーのツール→プロパティ→全般のタブ→入力設定、ローマ字入力/かな入力で右のリストでローマ字入力にしていますが、それでもローマ字打ちができないんです。 お手上げです。誰か教えてください。

  • タイピングソフト

    タイピングソフトって、ローマ字入力しか対応してませんよね?コナンのソフトや、ザク打ちなどやってみましたが、ひらがな打ちはできなそうでしたが、できるものもあるのでしょうか?

  • ローマ字うちの「ん」について

    タイピングに詳しい方、教えてください。私はずっとローマ字打ちで「ん」の打ち方は「nn」とおぼえてきました。ところがタイピングソフトの「特打」で「ん」を「nn」と打つとほとんどの場合、誤りになってしまいます。たとえば「新聞紙」は「sinbunsi」、「電話」は「denwa」という具合。でも「杏仁豆腐」は「annnindouhu」と、最初の「ん」を「nn」と打たないと駄目のようです。多分その次の文字「ni」との関係だと思うのですが・・。「ん」を「nn」と打つのはまちがいでしょうか?また「ん」を「n」と打っている方、「ん」を「nn」と打たないといけないときをどのように感覚で区別しているのでしょうか?ぜひ教えてください。「ん」を「n」1回で済めばずいぶん早くなると思うのですが。私の言わんとすること、意味わかったかな?

  • タッチタイピング…先生に怒鳴られました。

    現在43歳の女性です。短期契約社員として、いろいろな会社で働いています。 19歳から20歳になる頃、初めてワープロを使い始めて以来、ずっとカナ打ちでした。 まだ「キーボードあいうえお配列」や「親指シフトキー」のある時代です。 しかし、最近「今どきカナ打ちでは困る。」という理由から採用を断られたり、採用試験のタイピングテストでローマ字入力の速度試験で落ちたりすることが多くなり、ローマ字打ちに変える事にしました。 しかし、タイピング練習ソフトなどを使って練習しても成果が上がらず、パソコン教室でローマ字打ちのタイピングを習う事にしました。 1回が3時間のコースなのですが、初日の段階で「あなたのように覚えの遅い人はいないわ!まだ40代でしょ!まるで60代の定年退職者に教えてるみたいだわっ!」とヒステリックに怒鳴られました。 偶然、私と同じようにカナ打ちからローマ字打ちに変える練習に来ている人がいたのですが、わずか1時間でローマ字で文章を打てるようになりました。 そのような方を基準に見れば、3時間も打ち続けてホームポジションから脱出していなかった私に教えていて、先生も怒鳴りたくなったのでしょう。 しかし私の言い分としては「打てないから習いに来ている。」という気持ちです。 講師は、私と同年代。 受講料は、もちろん有料で、しかもかなりの額です。 まだ2日目で、私自身としては「習いに来て良かった。今までローマ字打ちが出来なくて悩んでいたのが嘘のようだわ。」という気持ちなのですが…。 そこで皆さんにお尋ねします。 このような場合、怒鳴られたと感じるほど怒られても仕方ないのでしょうか? 「打てないから習いに来ている。」という私の考えは違うのでしょうか?

  • PCのローマ字打ち。

     PCでワードを使って文章作成の時にローマ字打ち、あ(a)というふうに書いてある一覧ってありませんか?ご存知の方教えて下さい。

  • しっかりローマ字打ちはできるのに・・

    説明するのがとても難しいのですが、 ごらんのとおりしっかり文字はローマ字打ちで出来るのですが、タイピングの際なぜかすべて大文字入力なんです。 例えば、「メガネ」の場合、「め」を打つ際に、最初小文字のエムが出るはずなのに「M」と出ます。普通小文字ですよね? なので半角英数のパスワードを打つ際に必ずエラーが出てしまうのです。 誰か助けてください。

専門家に質問してみよう