こんにちは。
javascriptでタイピングゲームを作っています。
基本的な構造はできたのですが、異なるローマ字打ちを
どの様に作ればいいかわかりません。
word="kyatto,cyatto,cyotto" //キャット、チャット、ちょっと
list=new Array();
list=word.split(",");
変数wordがタイプするローマ字の中身です。
例えば、最初の「kyatto」を「kixyaxtsuto」や「kyaxtuto」
などでも読み込めるようにするにはどうすればいいでしょうか?
宜しくお願い致します。
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>
途中で飽きた。
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);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
ジェネレーターの作り方
-
C#OpenCv V4にのエラーに関する...
-
C言語の質問です HTMLでこのよ...
-
ASP.NET MVCでObjectをjsに渡す
-
ランダムに複数のリンク、重複...
-
javascriptでiframeのURL変更は?
-
C#で、ContextMenuStripに動的...
-
翌月を取得するGASが分かりません
-
javascriptでテーブルに追加し...
-
ASP.NETのコントロールの値をJa...
-
スマフォではボタンを表示させ...
-
jspからjavascriptの変数引継ぎ
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
Boolean型配列中のTrueの有無を...
-
javascript 特定のタグのidの存...
-
Javascriptグローバル変数の値...
-
Vb.netのグローバル変数の宣言...
-
JavaScript で配列の終わりまで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#OpenCv V4にのエラーに関する...
-
食材の期限を管理するためにGAS...
-
google apps scriptの終了のさせ方
-
このプログラムに、王手をかけ...
-
このプログラムに王様の逃げ道...
-
この将棋プログラムに王様ゲッ...
-
ASP.NETのコントロールの値をJa...
-
ジェネレーターの作り方
-
GASでundefinedエラーが出ます
-
なぜmatchメソッドがエラーにな...
-
ASP.NET MVCでObjectをjsに渡す
-
C#で、ContextMenuStripに動的...
-
html javascript リンク先アド...
-
HTMLで作った時報アプリが動き...
-
翌月を取得するGASが分かりません
-
イラレでナンバリングする方法
-
HTMLにWSHを組み込む
-
gas スプレッドシートがアクテ...
-
getElementByIdでASP.NETのText...
-
APIを使って埋め込んだグーグル...
おすすめ情報