/// 実習E3 コントロール(ラジオボタン) プログラミング実習
 back next 

プロジェクト名  実習E3組合せ当てゲーム

説明

 グループA,B,Cから1つずつ選択して、組合せを当てるゲーム。

デザイン

実習E3 フォームのプロパティ
 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

解答欄(英数字は半角で入力すること。余分な空白は入れないこと)
  @   A   B
  C   D   E   F
   解答を入力し、[解答チェック]ボタンをクリックする。正解は   、不正解は   で表示される。

キーワード

 Sub〜End Sub … サブプログラムの範囲を表す。サブプログラムの名前で呼びだすことができる。イベントに対応したサブプログラム以外にプログラマが自由に作成できる。プロシージャ、メソッドなどともいう。

解説

 グループごとに正誤の判定をしている(破線の3ブロック)。グループAの正解は配列seikai(1)に格納されている。正解の番号と一致しており、かつ、該当のチェックボックスにチェックされていれば正解とし、変数Hanteiに1を加算している。
 変数Hanteiに格納されている数が正解しているグループ数であり、3になれば、終了となる。

テスト

 遊んでみて。目標5回。


[Memo] ラジオボタンを配列に格納すると正解判定等の処理を繰返しで書くことができる。
  コード(プログラム)はこちらから


 back next 
/// 実習E3 コントロール(ラジオボタン) Copyright©2014 Hiroshi Masuda 

 

 

inserted by FC2 system