/// 実習E3 コントロール(ラジオボタン) | プログラミング実習 |
プロジェクト名 実習E3組合せ当てゲーム
説明
グループA,B,Cから1つずつ選択して、組合せを当てるゲーム。
デザイン
フォームのプロパティ
Font.Size = 11
Size = 310, 250
コード(プログラム)
Public Class Form1
Dim seikai(3), nokori As Integer '正解と残り回数の格納用
'(どのメソッドからも参照できる変数)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
GameInit() 'ゲーム初期化処理の呼び出し
End Sub
Private Sub btnRetry_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRetry.Click
@ 'ゲーム初期化処理の呼び出し
End Sub
Sub GameInit() 'ゲーム初期化処理(ここから)
Dim rr As New System.Random
seikai(1) = rr.Next(1, 4)
A = rr.Next(1, 4) '正解を乱数で生成
B = rr.Next(1, 4)
rbA1.Checked = False
rbA2.Checked = False
rbA3.Checked = False
rbB1.Checked = False
rbB2.Checked = False 'チェックボックスのチェックを外す
rbB3.Checked = False
rbC1.Checked = False
rbC2.Checked = False
rbC3.Checked = False
nokori = 5 '残り回数
lblNokori.Text = "あと" & nokori.ToString & "回" '残り回数表示
lblHint.Text = "5回以内に組合せを当ててください。" 'ヒント表示
End Sub 'ゲーム初期化処理(ここまで)
Private Sub btnHantei_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnHantei.Click
Dim hantei As Integer
nokori = C '残り回数を減じる
hantei = 0
'グループA の判定
If seikai(1) = 1 And D = True Then
hantei = hantei + 1
ElseIf seikai(1) = 2 And rbA2.Checked = True Then
hantei = E
ElseIf seikai(1) = F And rbA3.Checked = True Then
hantei = hantei + 1
End If
'グループB の判定
If seikai(2) = 1 And rbB1.Checked = True Then
hantei = hantei + 1
ElseIf seikai(2) = 2 And rbB2.Checked = True Then
hantei = hantei + 1
ElseIf seikai(2) = 3 And rbB3.Checked = True Then
hantei = hantei + 1
End If
'グループC の判定
If seikai(3) = 1 And rbC1.Checked = True Then
hantei = hantei + 1
ElseIf seikai(3) = 2 And rbC2.Checked = True Then
hantei = hantei + 1
ElseIf seikai(3) = 3 And rbC3.Checked = True Then
hantei = hantei + 1
End If
If nokori <= 0 Then
lblHint.Text = "終了です"
lblNokori.Text = "終了です"
ElseIf hantei = 3 Then
MessageBox.Show("おめでとう。正解です。")
Else
lblHint.Text = hantei.ToString & "グループ、正解です"
lblNokori.Text = "あと" & nokori.ToString & "回"
End If
End Sub
End Class
キーワード
Sub〜End Sub … サブプログラムの範囲を表す。サブプログラムの名前で呼びだすことができる。イベントに対応したサブプログラム以外にプログラマが自由に作成できる。プロシージャ、メソッドなどともいう。
解説
グループごとに正誤の判定をしている(破線の3ブロック)。グループAの正解は配列seikai(1)に格納されている。正解の番号と一致しており、かつ、該当のチェックボックスにチェックされていれば正解とし、変数Hanteiに1を加算している。
変数Hanteiに格納されている数が正解しているグループ数であり、3になれば、終了となる。
テスト
遊んでみて。目標5回。
[Memo] ラジオボタンを配列に格納すると正解判定等の処理を繰返しで書くことができる。
コード(プログラム)はこちらから
/// 実習E3 コントロール(ラジオボタン) | Copyright©2014 Hiroshi Masuda |