ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:willbelate タイピングゲームの異なるローマ字入力
困り度:
  • 暇なときにでも
こんにちは。
javascriptでタイピングゲームを作っています。
基本的な構造はできたのですが、異なるローマ字打ちを
どの様に作ればいいかわかりません。

word="kyatto,cyatto,cyotto" //キャット、チャット、ちょっと
list=new Array();
list=word.split(",");

変数wordがタイプするローマ字の中身です。
例えば、最初の「kyatto」を「kixyaxtsuto」や「kyaxtuto」
などでも読み込めるようにするにはどうすればいいでしょうか?

宜しくお願い致します。
質問投稿日時:09/07/21 23:37
質問番号:5144893
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:babu_baboo いつも勉強になります!
ありがとうございます。
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:09/07/24 19:54
回答番号:No.3
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答20pt

回答者:yuu_x 語彙が少ないなら、考え方は #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>

途中で飽きた。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:09/07/24 03:01
回答番号:No.2
この回答へのお礼大変勉強になりました。
有難うございます。

回答

良回答10pt

回答者:babu_baboo ごみみたいなものをなげてみる!
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);
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:09/07/22 11:25
回答番号:No.1
この回答へのお礼大変勉強になりました。
有難うございます。
最新から表示回答順に表示良回答のみ表示