• ベストアンサー

スロットのプログラミング

初めて質問します 今授業でプログラムをしてるんですが… 私はスロットにしようと思っていて command buttonをクリックするとimage1にjpgで保存した画像(6枚)をランダムに表示したいのですがそのプログラムが分かりません。 なにかDimで宣言なども必要ですか?? 分かりにくいかもしれませんがご回答お願いします

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

  • ベストアンサー
回答No.2

1です。 Randomizeは、乱数ジェネレータに新しいシード値を渡すステートメントで、その都度、違う乱数系列を得るための準備として使います。なので、それだけで乱数は得られません。 randmizeの後、Rndで乱数を取得します。ただし、Rndという関数は、0以上1未満の乱数を返すので、これを使い易くするには、いくらかの数を掛けて、整数化する必要があります。今回は6択なので、Int(Rnd()*6)、さらにいえば、0から始まる数よりも1から始まるほうが使い勝手が良いので、1を足して、INT(RND()*6)+1としても良いです。 VisibleをFalseにしたりTrueにしたりするには、ユーザーフォーム上に配置したimageのプロパティの中に、選べる欄があるので、そこで設定するのと、プログラム内では、例えば、使いたい画像がユーザーフォーム1にimage1として配置してあるなら、UserForm1.Image1.Visible=Falseと記述します。 ところで、ご質問の際には、お使いのVBのバージョンを書いて頂けるとよろしいかと思います。バージョンによって、仕様が違う部分があるかも知れませんので。

Messiah0306
質問者

お礼

ご丁寧な回答ありがとうございました 先生の助けも借りてなんとか表示させることができました! ちなみにVBはマクロだったと思います

その他の回答 (1)

回答No.1

バージョンが書かれていないので、細部わかりませんが、概要だけで良ければ。 仮に、横に3つ並んだドラムにランダムに画像を表示し、絵が揃ったら当たり、という内容で考えてみます。 ユーザーフォーム上に6枚の画像を読み出し、visibleプロパティをfalseにします。 (visible=目に見える、という設定、これをfalseにすると、目に見えない、つまり、透明になる) 乱数で1~6の値を取得し、その数に応じた画像をドラムの位置に表示し、その1枚のvisibleをTrueにします。 これで、6枚の中から1枚を選ぶことができます。ホントは6枚あるんですが、選ばれた1枚だけを「見せる」わけです。 あとは同じ仕組みを3つ作り、横に並べて、3つドラムのスロットのようにデザインします。 スロットなら、スタートとストップのボタンが必要かも知れません。これらのボタンはコマンドボタンなどで作り、クリックイベントで、ボタンが押されたらメインのプログラムが走る仕組みにします。3つの画像が確定したら、絵が揃ったかで当たりを判定して終了します。 なお上記は一例です。他にも有効な考え方はたくさんあるはずです。ご自分が納得できるやり方が正解だと思います。

Messiah0306
質問者

補足

一応、今やったのは RandmizeでSelect Caceを使ってみました FalseとTureのプログラムはどのようにしたらいいのでしょうか…

関連するQ&A