• 締切済み

タイピングゲームの曖昧入力アルゴリズムについて教えてください。

こんにちは。 タイピングゲームの曖昧入力のアルゴリズムについて教えてください。 あれはどのように実装しているのでしょうか? すべてのパターンを保存しておくというのはさすがにスマートではないと思うので何かしらで判定してると思うのですが、どのように判定すればいいかわかりません。 わかる方お願いします!

  • -una-
  • お礼率55% (5/9)

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

ちょっと考えたんだけど, きれいな方法は見付からず.... 「入力パターン」を列挙しておくのが簡単な気がします. つまり 「あ」→[a] 「きゃ」→[kilya]/[kixya]/[kya] のように「文字列」に対応する「入力パターンの集合」を配列で表現して, 問題文をこの配列に対する添字の列に変換する. そうすれば, 入力された文字があっているかどうかはパターンを調べていけばわかるはずです. とはいえ, 問題の複雑さが「プログラムの複雑さ」から「準備しておくデータの複雑さ」に変わっただけなんだよなぁ.

-una-
質問者

お礼

回答ありがとうございます。 やはり私も力押しでなんとかする意外に思い浮かびません。 こんなくだらない問題に真剣になっていただきありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

はい, そんな感じで作るのが簡単じゃないかなと思います. ただし, まじめに入力パターンをサポートすると想像以上に面倒な気がします. 特に促音・拗音・撥音は「次の文字を見ないと『どのパターンになり得るか』が確定しない」という, いやらしい性質を持っています.

-una-
質問者

お礼

Tacosanさん、回答ありがとうございます。 自分も頭の中で一番問題視しているのはそこの部分なのです。 C言語で実装したいとは思っているのですが、なかなかいいアルゴリズムというか構造が思い浮かびません。 力押しでもなんとかなるとは思いますができるだけスマートにわかりやすく書きたいのでよろしければ知恵を貸していただけるとありがたいです。 ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

おそらく, 各「かな文字」に対して入力パターンを作っておき, 「現在着目している文字」についてのみ入力パターンを調べている.... ということを #2 で言おうとしているんじゃないかなぁ. 「じゃ」に対して 7通りの入力が可能であるとすると, 確かに「じゃ」を 3回含む文字列はそれだけで 343通りの入力パターンを持ちます. ですが, 実はこのパターンが全て同時に必要なわけではありません. 最初の「じゃ」に対する入力を待つときには, 2個目や 3個目の「じゃ」がどんな入力パターンであるか気にする必要はありません. そして, 最初の「じゃ」を入力し終えたら, それに対してどのような可能性があったかを覚えておく必要もありません.

-una-
質問者

お礼

Tacosanさん、回答ありがとうございます。 各文字の対応表を作っておいて、実行中に必要に応じて文字列を構成しなおしていきどんどん判定していくという解釈でよろしいでしょうか?? 確かにそうすると膨大な量のデータは必要にならず、問題を作成する際にもひらがなで入力しておくだけで平気なので簡単かもしれませんね。 もう少しで解決できそうです。ありがとうございました。

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.2

全パターン入っているのでは?

-una-
質問者

お礼

junkUserさん、回答ありがとうございます。 全パターン入っているというのは「じゃ」という文字列に対して「jya」「ja」「zya」「jilya」「zilya」「zixya」「jixya」と7種類のパターンを準備しておくということでしょうか? もしもそういうことだとすると 「じゃ」という文字列が複数個文字列中に入っていた場合「じゃ」の入力パターンは 「jya」「ja」「zya」「jilya」「zilya」「zixya」「jixya」 と7種類存在するので7の「じゃ」の個数乗ということで文章中に「じゃ」が2つ入ってきただけで49通り、3つ入ってきたときは343通りと膨大な量のデータを準備しなくてはならないと思うのです。 やはりこれではスマートではない気がしてしまいます。 回答ありがとうございました。

  • fifaile
  • ベストアンサー率25% (622/2403)
回答No.1

>曖昧入力のアルゴリズム どういったものですか?

-una-
質問者

補足

fifaileさん、説明足らずですみませんでした。 曖昧入力のアルゴリズムということですが、たとえば「じゃ」と打つ場合 「jya」「ja」「zya」「jilya」「zilya」「zixya」「jixya」 と何通りものパターンが存在します。 タイピングゲームを作った場合「じゃ」を「ja」だけにしか対応させていないと普段それ以外のタイピングをしている人はまず打てません。 そこで「じゃ」と打つ場合などに「jya」「ja」「zya」「jilya」「zilya」「zixya」「jixya」のどのパターンでも正解にするようなアルゴリズムを組みたいのです。 判定はローマ字1文字づつにつけていく方式にしたいのです。 説明が下手ですみませんがよろしくお願いします。

関連するQ&A

  • 数字並び替え全パターン取得のアルゴリズム

    例えば5つの数字1,2,3,4,5の並び替えのパターンは5!=120通りあると思うのですが、このパターン全て取得するようなアルゴリズムはどういうものになりますでしょうか。 1,2,3,4,5 1,2,3,5,4 1,2,4,5,3 1,2,4,3,5 続く。。。。 これら並び替えのパターンを全て取得したい。 アルゴリズムの説明、又はアルゴリズムの名前が存在するようであれば教えていただけると幸いです。 実際には1000個程度の数字の並び替えパターン全てを何らかのコンピュータ言語を使い、アルゴリズムを実装したいと思っています。 よろしくお願いいたします。

  • vba タイピングゲーム 入力文字正誤判定

    vba ユーザーフォームで簡単な英単語のタイピングゲームを作っています。 Label2 に英単語表示 TextBox1 で入力 Label3 で○×で判定 TextBox1 で最初に1文字を入れた時点で×が出ます。 正しく入力が完了すると○になります。 入力が完了し、エンターキイを押した時点で正誤を判定したいのですが分かりません。 書式を教えてください。

  • タイピングゲームについて

    どなたか教えていただけると助かります。 自分は、かな入力なのですが、お気に入りの、かな入力専門のタイピングゲームが閉鎖してしまって・・・ ランキング形式で、オンラインで(DLタイプのゲームではなく。だんなさんのPCなので、ちょっと(^_^;))、なにかよいものありますか?? よろしくお願いいたします。

  • お勧めかな入力用タイピングソフト

    タイピングソフトを探してみましたが、 かな入力できるものはひとつしか見つかりませんでした。 なぜかな入力ものは少ないんですか? お勧めかな入力用タイピングソフトがあったら教えてください。ゲーム感覚で出来るもの探してます よろしくおねがいします。

  • タイピングソフト&ネットのタイピングゲーム

    タイピングソフトはいろいろなものを見ましたが、 今まで「これが一番よいっっ!」というものにめぐり合っていません。 もし今までこれはすごいタイピングゲームだ!と思うフリーのゲームに出会った方、ぜひ教えてください。 あと、オンラインでできるタイピングゲームで、楽しいものもよろしければ教えてください。お願いします。

  • HTMLのみでタイピングゲームって作れますか?

     タイピングゲームを作りたいと思っているのですが、HTMLのみでタイピングゲームは作れますか?  初めてゲームを作るので、参考ページや参考書等を教えていただけると助かります。  わかる方、よろしくお願いします。  

  • コマンドが練習できるタイピングゲーム(ソフト)

    僕は最近Linuxを導入しプログラミングなどもしている中学3年です。 質問なのですが僕は日本語のタイピングは タイピングゲームなどで練習し人並み以上くらいには できるようになったのですが、最近プログラミングするときや コマンドプロンプトやターミナル画面で コマンドなどを入力しようと思うと英語だからかはわかりませんが すごくタイピングが遅くかつミスも日本語を入力するときより 格段に多くなってしまいます。 そういうコマンド専用のタイピング練習ゲーム(ソフト)などはありませんでしょうか? 少しはぐぐったのですが日本語のタイピングゲームや 英単語のタイピングゲームくらいしかありませんでした・・・・・

  • タイピングゲーム

     色々、タイピングゲームはあるのですが、だいたいが、早く打つのを目的としているのが多いと思います。その、目的は当然だとは、思うのですが、私が、理想としてるのは、タイピングをして、間違えたりしたら、その文字を消去しないと次に進めないような、現実的なゲームを探しています。  例えば、例題の文章や作文が上の方にすでに記入されてあり、下の枠に自分で同じ文章を書いていくという、感じのを探しています。そうすれば、間違えた文字を打った時などは、「BackSpace」を押し、一度消去しないと、次に進めないという、ゲームを探しています。  どなたか、教えてください。お願いします。 

  • Cでアルゴリズムの差し替えができるようにするには?

    C++ならstrategyパターンを実装した経験はあるのですが、Cで同じような事ってできるのでしょうか?開発中のアルゴリズムなので、差し替えや変更に強い設計にしたいのですが、どうすればいいのかわかりません。どなたかお知恵をお願いします。

  • C言語でタイピングゲーム作成

    C言語でタイピングのプログラムを作りたいと思っています。 仕様は以下の通りです。 1、文字列出力とタイピング機能 出力する英単語は、プログラムの中で文字配列として定義しておく。英単語はすべて小文字 のみとする。まず、配列の先頭から1つ英単語を出力してそれをタイピングさせる。 そして次の英単語、また次の英単語と、最後の英単語まで出力とタイピングを繰り返す。 2.照合とカウント 入力文字を一文字ずつ照合して、あってるか間違っているかを判定しカウントする。 定義した配列のすべての英単語についてタイピングと照合を終えたら、タイピング成績の出 力へ進む。 3. タイピングの成績出力 タイピングの成績を出力する。何文字正しく入力できたかを%で出力する。 以上です。 理解を深めるために、ソースに説明を入れて書いていただけるとありがたいです! 回答よろしくお願いいたします