• ベストアンサー

Visual Basicでクイズを作成!!

Visual Basicでクイズを作成中なんですが、クイズが正解するとポイントが追加するようにしたいんですがどうすればできますか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

#3です。補足いただきありがとうございます。 補足要求した以上、少し加えます。 ただベストとか言うものでは全くありませんので、参考に。 >作成中なんですが 着手しているようだが、私案を書いてみます。 --------- メモ帳で、3択の例. 下記の文章を改行して入力のこと。 問題1 鎌倉幕府を開いたのは次の誰ですか (1)平 清盛 (2)源 頼朝 (3)北条 時宗 正解 2 ・・・ 以下問題の数だけ順次1問あたり5行をセットにして、下行へ追加して(5行で1問分)入力して作る。 ファイル保存。テキストで保存になります。 ーーーーー VBのフォームの上にラベル4個(問い1個+三択の3個、(他に正解・間違い表示1個、合計点数1個など必要と思うが)を貼り付ける。 このソフトを開始したら、上記テキストファイルの5レコードを順次読み、4つのラベルに問題をLabel1、3択をLabel2,3,4 の.Captionとしてセットする。 第5レコードは正解番号として、変数(下記ではseikai)に記憶する。 ラベル2-3のどれかをクリックすると Private Sub Label1_Click() If seikai = 1 Then Label4.Caption = "正解です" tensu = tensu + 1 Label5.Caption = "合計点数=" & tensu Else Label4.Caption = "間違いです" End If End Sub というようなのを、Label2,3,4に入れておく If seikai = 1 Then の1は2,3に変える。 「次へ」ボタンを設けておき、クリックすると 次から上記テキストファイルを5レコード読んで、上記の処理を する。以下繰り返し。「途中終了ボ」タンを作るのも良い。 正解番号を表示する「正解番号」ボタンも作るべきかも。

f_atsu
質問者

お礼

ありがとうございます。 頑張ってやってみます。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 >それは五択形式ってことですか?  そうです。選択式のアンケート形式です。数ヶ月前にも、ここで、Wordを使った同じような質問が出ていました。私は、回答はしたものの、フォームツールバーを使ったまったく違った機能を、逆に、教えられたようなものです。 >今はtextに回答を書いて、正解か不正解かを判定する形式なんですが、 まさか、テキストファイルで、判定を行いたいというわけではありませんよね。たぶん、VBScriptの「正規表現」検索で、全部、ピックアップして、それを集計するという、高度なテクニックが必要になります。それに、「正規表現」は、改行コードが不得意です。私なら、そういう場合は、VBScriptで、HTMLファイルに埋め込みますね。 まず、質問の媒体は、何にするかですね。テキストファイルやVisual Basic のフォーム上に作るとおっしゃるなら、私は、あまり自信がありませんね。それから、Visual Basic の場合は、オプションボタンなどは、コントロール配列にしますから、グループ化の必要はありませんでした。

f_atsu
質問者

お礼

参考になりました。

noname#27115
noname#27115
回答No.4

if 正当=回答 then textbox1=textbox1+1 end if をどこかにcommandボタンを配置して書いてやればいいと思いますが、 この質問をされている以上、どうやってフォーム上に問題や解答を読み込まれているのかそれが疑問となります。 たぶん、ここで文字だけの回答をみてもダメだと思います。 まずは、VBの基礎編の参考書を読んでみてください。 それが一番の近道です。VB.NET用よりVB6用の方がいいです。 もちろんネットで探してもいいです。

f_atsu
質問者

お礼

参考になりました。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

質問は簡潔でよいのですが (1)クイズに答える、システム側の仕組みはどう考えてるのか 毎回の問題画面が切り替わるとか一覧とか、どんなコントロールを使うのか(#2のご回答ではチェックボックス) (2)各問題は正解の場合の点数は同じですか (3)プレイヤー別に点数をそのソフトを終了した後もほぞんしますか ぐらい記述しないと、答えられないのではないですか。 質問だけなら >正解するとポイントが追加するようにしたいんですが 足せばいいじゃん。 となってしまうように思う。

f_atsu
質問者

補足

初心者で専門的なことを言われてもわかんないです。 Labelに得点が表示されて、正解するとどんどん得点が追加されるようにしたいのですが、ちなみに回答はtextに書くような形式です。 各問題は正解の場合の点数は同じです。 プレイヤー別に点数をそのソフトを終了した後も保存しません。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 チェックボックスか、オプションボタンで、チェックを入れたら、どこかで加算するようにすればよいと思います。なお、オプションボタンがふつうのようですね。そうすると、グループ名を例えば、問1なら、「Q1」とつけて、それぞれの問で分けてあげないと、全部で1つになってしまいます。 Visual Basic とは行っても、単純なものでよいはずです。私は、Wordで作りました。

f_atsu
質問者

補足

それは五択形式ってことですか? 今はtextに回答を書いて、正解か不正解かを判定する形式なんですが、できれば五択形式にしたいんですが、式が分かりません…。

noname#27115
noname#27115
回答No.1

画面上だけなら if 正解 then point=point+1 end if でいいのでは? その点数をどこかへ保存するならtextファイルや accessのmdbファイルを用意すればいいと思いますよ。 textファイルやmdbファイルへのデータの読み書き方法 のサンプルはwebにごろごろしています。

f_atsu
質問者

補足

if 正解 then point=point+1 end if をどこに入力すればいいんですか?

関連するQ&A