OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

VBを使ってのタイピングについて

  • すぐに回答を!
  • 質問No.161729
  • 閲覧数649
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 35% (35/99)

今、卒業研究でVBを使ってのタイピングゲームソフトを作成してます。
5行の文字列をひとまとめにして連続してタイピングさせたい。
(1行目が終わったら2行目。2行目が終わったら3行目・・・5行目まで)

そこでみなさんにお聞きしたいのですが、
配列を使ってのタイピングは可能なのでしょうか??

よろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル12

ベストアンサー率 45% (207/457)

では簡単な例を説明してみます。
フォームのkeypressのイベントでどのキーが押されたかは分かります。
押された回数をカウントすれば基本的にタイプ数は分かります。
"例えば"は(tatoeba)で問題ないのですが"ふ"の場合(hu/fu)でもいいですし"だった"は(datta/daltuta/daxtuta)でもいいのですよね。これがローマ字入力の判定の難しさだと思います。
"例えば"のチェックルーチン(めっちゃいい加減版)エンターキーは不要と判断しました。
なお、bが文字を打った回数。cが文字数という事で参考にして下さい。

Dim wk(5) As String
Dim a As Integer
Dim b As Integer
Dim c As Integer

Private Sub Form_KeyPress(KeyAscii As Integer)
Dim chk As String

chk = LCase(Chr(KeyAscii))

If Mid(wk(0), a, 1) = chk Then
a = a + 1
End If

b = b + 1

If a > c Then
MsgBox "ok"
End If

End Sub
Private Sub Form_Load()
wk(0) = "tatoeba"
a = 1
b = 0
c = Len(wk(0))

End Sub
お礼コメント
sakky_t

お礼率 35% (35/99)

さっそくありがとうございます。
しかもプログラム付で・・・。

プログラムはある程度は理解しているものの
初めてみる関数ばかりで、苦戦中です。
しばらくこの参考プログラムを先生に聞いて理解してみます。

また、新たに質問させてもらうと思いますが
その時はよろしくお願いします。
投稿日時 - 2001-11-06 12:24:17
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 45% (207/457)

プログラムを作るのが卒業研究なら基本的なプログラミング技能を有していると判断します。 例えば そこで みなさんに お聞き したいのですが というタイピングを出題するとして どのようにキータイプさせ、どのような判定を下すのでしょうか? OKなら次の行、違うなら元の行ですね。 後は自分で考えて何処までやって何処が分からないのか説明してからにしてね。 ...続きを読む
プログラムを作るのが卒業研究なら基本的なプログラミング技能を有していると判断します。

例えば
そこで
みなさんに
お聞き
したいのですが

というタイピングを出題するとして

どのようにキータイプさせ、どのような判定を下すのでしょうか?

OKなら次の行、違うなら元の行ですね。

後は自分で考えて何処までやって何処が分からないのか説明してからにしてね。
お礼コメント
sakky_t

お礼率 35% (35/99)

回答をありがとうございます。
yanmaaさんの言われるプログラム技能は有しています。

私たちが作っているタイピングプログラムは

例えば
そこで
みなさんに
お聞き
したいのですが

の5行で例えると
1.『例えば』を日本語表示とローマ字表示する。
  例    例えば
     tatoeba
2.「t」からタイプ開始 → Enterキーを押すと1行終了
  その際、先頭の文字とキーボードからタイピングした文字が同じなら同時にローマ字を一文字ずつ消していく。
  なおかつ、Enterキーを押すまでに「タイプした数」と「誤った数」をカウントする。
3.これを5回繰り返す。

というのを考えています。
こういうプログラムをVBで作成するのは可能でしょうか?
投稿日時 - 2001-11-05 12:00:49
  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

質問の意味をいまいち理解してませんが・・・ 判定を行うタイミングが、このソフトの鍵となると思います。 複数行あろうとなかろうと一緒です。 複数行ある文章もようは改行コード(定数:vbCrlf)を含んだ一行と置き換えることができます。 簡単な比較ロジックは 1.テキストボックスのChangeイベントを認識 2.入力文字と入力文字数を得る 3.正解例の頭からその文字数文を得る 4.それ ...続きを読む
質問の意味をいまいち理解してませんが・・・

判定を行うタイミングが、このソフトの鍵となると思います。
複数行あろうとなかろうと一緒です。
複数行ある文章もようは改行コード(定数:vbCrlf)を含んだ一行と置き換えることができます。

簡単な比較ロジックは
1.テキストボックスのChangeイベントを認識
2.入力文字と入力文字数を得る
3.正解例の頭からその文字数文を得る
4.それらを比較
です。

しかし、文章の入力を終えてからの判定は並大抵ではありません。
一度判定ロジックを組んだ経験があるのですが、結局かなりの駄作になってしまいました。
例えば、余計な文字が1文字入ったら、どうするのかというだけで様々なパターンが想像つきます。
それ以外に2行目と3行目が入れ違いになっていた場合にも、複数の処理に分かれます。
これらを全て兼ね備えたプログラムは、人工知能開発ぐらいのレベルになると思います。。。
ですので、あまり入力し終えてからの判定はお奨めできません。


一度、市販されてるタイピングソフトではなく、フリーでダウンロードできるタイピングのソフトを見て研究してみては?

はずしてたなら、ごめんなさい。
お礼コメント
sakky_t

お礼率 35% (35/99)

回答ありがとうございます。
私たちが作成しようとしているソフトは下記のyanmaaさんのお礼に記した通りです。

判定のタイミングとしてはローマ字、1文字ずつ判定させるつもりでいます。
表示は1行をローマ字で表示させて、先頭から順にタイピングです。
一致していればその文字が消え、次の文字のタイプという感じです。
その際、1行終わるまでにタイプした数と誤った入力をカウントさせたいのです。

とりあえず、教えていただいたURLでDLしてみて研究してみます。
また、よろしくお願いします。
投稿日時 - 2001-11-05 12:14:59
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ