川崎北高校 情報科 専門教科「アルゴリズム」
VisualBasicの基礎
〜スロットマシーンを作ろう〜
 
 
■要点
モジュール

複数のプロシージャで共通の変数を宣言

プロシージャ1
プロシージャ内だけで有効な変数を宣言する

プロシージャ2



Dim文 これから使用する変数を宣言し、データ型を指定する
If〜Then〜Else文 もし〜ならば〜、そうでなければ〜
Select〜Case文 〜がこういう値の場合は〜


課題 フォーム コード(ソース) プロパティ&注釈


1
3つの乱数を表示させ
スタート、ストップボタン
で操作する。

(General) 
Dim x, y, z As Integer
Private Sub Command1_Click()
 Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
 Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
 x= Int(Rnd(1) * 7 + 1)
 y= Int(Rnd(1) * 7 + 1)
 z= Int(Rnd(1) * 7 + 1)
 Text1.Text = x
 Text2.Text = y
 Text3.Text = z
End Sub
・複数のプロシージャで共通の変数を使う場合、Generalプロシージャに変数を宣言する。

・Timer1のintervalを10くらいに
(10ミリ秒に1回実行する)

Timer1のEnabledをFalseに
(いきなり動くことを防ぐため)


乱数の値が
7ならば赤、
6ならば橙、
5ならば黄、
4ならば緑、
3ならば水色、
2ならば青、
1ならば紫に表示する。
各TextBoxのプロシージャーに
以下のコードを追加する。
Private Sub Text1_Change()
Select Case Val(Text1.Text)
 Case 1
 Text1.ForeColor = &HFF00FF
 Case 2
 Text1.ForeColor = &HFF0000
 Case 3
 Text1.ForeColor = &HFFFF00
 Case 4
 Text1.ForeColor = &HFF00&
 Case 5
 Text1.ForeColor = &HFFFF&
 Case 6
 Text1.ForeColor = &H80FF&
 Case 7
 Text1.ForeColor = &HFF&
End Select
End Sub
TextBox2、3も同様に。どこを修正するかわかるかな? 


3つの乱数が揃ったら
Fever!
と表示する。
Dim x, y, z As Integer
Private Sub Command1_Click() 
Label1に何も表示させないようにする。
  Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
 Timer1.Enabled = False 
3つの乱数が揃ったらLabel1にFever!!と表示、それ以外はBoo!!と表示させる。
 End If
End Sub
Private Sub Timer1_Timer()
 x= Int(Rnd(1) * 7 + 1)
 y= Int(Rnd(1) * 7 + 1)
 z= Int(Rnd(1) * 7 + 1)
 Text1.Text = x
 Text2.Text = y
 Text3.Text = z
End Sub
Label1のFontをご自由に。


所持金を1000円、1ゲーム10円とする。
同じ数字が3つ揃うと掛け金の何倍かが戻ってくるようにする。
Dim x, y, z, m As Integer

Private Sub Form_Load()
 m = 1000
End Sub

Private Sub Command1_Click()  
ゲームをスタートさせると10点減少
 Label1.Caption = ""
 Timer1.Enabled = True
 Text4.Text = m
End Sub
Private Sub Command2_Click()
 Timer1.Enabled = False
 If x = y And y= z Then
  Label1.Caption = "fever!"
  
掛け金の何倍かが戻る
  Text4.Text = m
 Else
  Label1.Caption = "Boo!"

 End If
End Sub
Private Sub Timer1_Timer()
 x= Int(Rnd(1) * 7 + 1)
 y= Int(Rnd(1) * 7 + 1)
 z= Int(Rnd(1) * 7 + 1)
 Text1.Text = x
 Text2.Text = y
 Text3.Text = z
End Sub
・Form_Load()では、アプリケーションを起動したときに実行するないようを記述する。

・TextBox4を追加。Captionを1000とする。


ストップボタンを3つ用意し乱数を1つひとつ止めるにはどうしたらよいか。   タイマーが3つ、コマンドボタンが4つになります。 

3つのテキストボックスを3つのピクチャボックスに替えて、画像によるスロットを作る。

index