○For文と絵の例題

・丁半さいころゲーム(さいころコロコロ版)

丁半さいころゲームを作っていたが、よりバージョンアップしてみよう。

最低限の丁半さいころゲームのプログラムについては、ここを参照のこと。
更に、さいころの目を絵で表示させようとしたのは、ここを参照

For文とを使って、サイコロの絵がころころと表示されるようにしてみよう。

要はさいころの目を次々と表示させればころころと表示されるようになるはずである。ちょっと無理があるけど。

1,2,3,...とさいころの目を順に表示させるのも手だが(スロットはこの形式ですよね)、ここでは何が表示されるのかをランダムにしてみよう。

なお、色々な方法が考えられるが、ここではちょっとズルしてしまう。

例えば、さいころの目(の絵)がころころと表示されるのを20回と決めてしまう。最初の19回はダミーのサイコロ振りで、絵のみ表示して判定は行なわない。最後の20回目を実際に判定に使うさいころの目としてしまおう。

絵を次々と切り替え表示させると、実は早すぎて全くわからない。
ここで二つのちょっとしたテクニックを紹介。

1) 絵をきちんと表示するためのおまじない

各PictureBoxに絵を代入したら、リフレッシュさせてあげましょう。プログラムの仕方は次の通り。
PictureBox1.refresh

2) 絵を切り替え表示させたら、ちょっとお休みさせてみよう。

パラパラと表示させる速さを調整しないとあっという間に次々と絵が表示されるので、少しゆっくりとパラパラ切り替える。
このために、絵を切り替え表示したら、ちょっと休むようにさせる。プログラムの仕方は次の「空のFor文」を参照。

プログラムで何もしない(お休み)というのを表現するのはちょっと難しい。ここでは次のように「空のFor文」を利用してみよう。

For i = 0 to 500000
Next i

このプログラムは繰り返す処理部分(ブロック)が全くないが、コンピュータが実際にこれを実行する場合、実はちょっと時間がかかる。

実質何もしなくても、カウンタ変数iが増えながら何もしないことを50万回も繰り返して処理するためである。

よって、

PictureBox1.Image = PictureBox2.Image
For i = 0 To 500000
Next i
PictureBox1.Image = PictureBox3.Image
というプログラムは、Picture1にPicture2の絵を表示した後、ちょっと(本当にホンのわずか)待って、PictureBox3の絵を表示することになる。

マシンの性能によっては、これだと早く切り替わり過ぎたり、遅かったりするので、50万回の繰り返し数を適当に変更してみましょう。
なお、この「空のFor文」は必ずしも良いプログラムではなく、本来はTimerなどを利用したもっとよい(スマート)な方法がある。

これはFor-Next文を使えば同じようなことを何回でもできる。絵の表示はIf文 もしくは Select文によるサイコロ表示をすればよい。プログラム例はこちら


[「C班」プログラミング基礎のTopに戻る]