Visual Basic 中学校 投稿プログラム
VB.NET2003対応 VB2005対応

 

Visual Basic 中学校 > 投稿プログラム >

大人のVBトレーニング 

投稿者:兎堂伽藍さん - Pastel Kingdom (パステル王国)

大人のVBトレーニングはシンプルなゲームです。ミニゲームとして楽しむことができ、最後にはあなたの正確さや反応速度をもとに評価が点数とコメントで表示されます。ソースコードもついていますから実際に動作するプログラムを勉強する上で役に立ちます。

兎堂伽藍さん投稿ありがとうございます。

なお、知的所有権は投稿者である兎堂伽藍さんに帰属しますが、個人としてプログラムを修正したり改造する分には問題ありません。

ダウンロード    VBTraining.lzh(55.8KB)         

VB.NET2003で作成されたソースコード。VB2005で編集・実行することも可能です。

ファイルはLha形式(拡張子 lzh)で圧縮されています。

 

V太:博士!やりました!ゲームの投稿です!

博士:ふぉふぉふぉ。「大人のVBトレーニング」じゃな。どこかで聞いたことあるような名前じゃが、まぁええじゃろう。

後だしジャンケンするだけの簡単なゲームなんですけど、なかなか面白いですよ。

■画像1:ゲーム中の画面

B子:で、あなた何点だったの?

315点。もう少しで幼稚園レベルだとか…。

あなたは素早くボタンを押しすぎるのよ。このゲームは速さだけじゃなくて正確さも重要なのよ。ちなみに私は685点よ。天才級らしいわ。

 

ぐぬぬ。この点数ってどうやって決まってるんだろう?

採点方法も興味あるけど、画像の表示や、ランダムな出題、タイマーの使用なんかが盛り込まれていて、V太にはプログラムもかなり参考になるんじゃないの?

うむ。このゲームはルールもシンプルじゃがプログラムもなかなか短くまとまっていてよいぞ。ちょっとのぞいてみようかの?

どれどれ…

わー。本当短いですね。自動生成されたコードを除くと、実質200行以下ですよ。

コメントもちゃんとついているみたいね。私たちみたいにプログラムに興味のある人には助かるわ。

ふむふむ。画像は先に変数に読み込んでおくのか。これで表示するときはすばやく表示できるんだね。

でも、博士。画像のパスの指定がなんか変じゃありませんか?Image.FromFile(".\gu.jpg")ってなっていますけど、フォルダ名が「.」ですよ。これって…?

ふぉふぉふぉ。B子ちゃんは知らんかったか。無理もないかの。フォルダを指定するときに「.」を指定すると現在のフォルダと言う意味になるんじゃよ。だから、「.\」ということは結局exeのあるフォルダと同じフォルダという意味じゃな。昔MS-DOSが主流だった頃にはよく使われていたのじゃよ。

ヘー。知りませんでした。

ふむふむ。どのボタンが正解になるかはTagプロパティを使って記録しているのか…。ランダムに問題を出す仕組みは…、あれあれ?

どうかしたの?

makeQuestionメソッドの中でmakeQuestionメソッドを呼び出しているところがある…。これじゃ無限に自分自身を呼び出し続けるんじゃないかな?

はっは。そうやってランダムに生成した問題が前回の問題と異なるようにしているんじゃな。新しい問題が前回の問題と一緒ならばもう一度makeQuestionを実行し、そうじゃならいならそのまま抜けると言う感じじゃ。このように自分で自分を呼び出してループすることを「再帰」とか「再帰処理」と言う。

そうか。これで必ず同じ問題が続けて出題されることがなくなるわけね。

うーーん。わかりません…。DoLoopじゃ駄目だったんですか?

もちろんDoLoopを使って同じ処理を書くこともできる。確かに再帰処理はプログラムがわかりにくくなるのでDoLoopを使うべきかもしれんの。当たり前のことじゃがこのプログラムは最高品質の完璧なプログラムと言うわけではない。細かい点ではもっと良い方法があったりもする。それでも、ひとつのまとまった機能として動作するシンプルで軽量なプログラムとして大いに参考にする点はあると思うぞ。

なるほどー。よーし!いよいよ採点基準を読み解いていくぞ!

動作もシンプル。プログラムもシンプルじゃ。みんなも一度は目を通してどういう処理になっているか確認してみるといいじゃろう。教材としてなかなかのものじゃ。

 

今回投稿していただいた兎堂伽藍さん、ありがとうございます!今後もみなさんからのプログラムの投稿をお待ちしています。