/// 実習E5 コントロール(チェックボックス) プログラミング実習
 back next 

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

説明

 チェックをする組合せを当てるゲーム。

デザイン

実習E5 フォームのプロパティ
 Font.Size = 11
 Size = 300, 180

コード(プログラム)

Public Class Form1
  Dim seikai, nokori As Integer   '正解と残り回数の格納用
                               '(どのメソッドからも参照できる変数)
  Sub GameInit()
    Dim rr As New System.Random
    seikai = rr.Next(2 ^ 4)    '正解を乱数(0〜15)で生成する
    nokori = 8
    cbA. @  = False          'すべてのチェックを外す
    cbB. @  = False
    cbC. @  = False
    cbD. @  = False
    btnHantei.Enabled = True   '判定ボタンを有効にする
    btnRetry.Enabled = False   'もう一度ボタンを無効にする
    MessageBox.Show(seikai)
  End Sub

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    GameInit()
  End Sub

  Private Sub btnHantei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHantei.Click
    Dim atari As Integer
    If cbA.Checked = True And (seikai And 1) = 1 Then       ←If1
      atari = atari + 1
    ElseIf cbA.Checked = False And (seikai And 1) = 0 Then
      atari = atari + 1
    End If
    If cbB.Checked =  A   And (seikai And 2) = 2 Then      ←If2
      atari = atari + 1
    ElseIf cbB.Checked =  B   And (seikai And 2) = 0 Then
      atari = atari + 1
    End If
    If cbC.Checked = True And (seikai And 4) =  C   Then   ←If3
      atari = atari + 1
    ElseIf cbC.Checked = False And (seikai And 4) =  D  Then
      atari = atari + 1
    End If
    If cbD.Checked = True And (seikai And 8) = 8 Then       ←If4
      atari =  E 
    ElseIf cbD.Checked = False And (seikai And 8) = 0 Then
      atari =  E 
    End If
    lblHint.Text = atari.ToString & "ヵ所正解です"
    If atari = 4 Then
      MessageBox.Show("当たりです。", "実習E5")
      btnHantei.Enabled =  F       '判定ボタンを無効にする
      btnRetry.Enabled =  G        'もう一度ボタンを有効にする
    End If
    nokori = nokori - 1
    If nokori = -1 Then
      btnHantei.Enabled = False
      btnRetry.Enabled = True
      Exit Sub
    End If
    lblNokori.Text = "残り" & nokori & "回です"
  End Sub

  Private Sub btnRetry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRetry.Click
    GameInit()
  End Sub
End Class

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

解説

 乱数で生成しる正解は0〜15の整数である。チェックボックスを4ケタの2進数と見なして、正解と比較している。
 例えば、正解が3のとき、2進数で表すと0011となるので、seikai And 1の計算結果は、If1では1、If2では2、If3If4では0となる。そのとき、If1If2はCheckedがTrueであればatariに1を加算する。また、If3If4はCheckedがFalseであればatariに1を加算する。
 atariが4になれば組合せを当てたことになる。

テスト

 遊んでみて。目標8回。


 back next 
/// 実習E5 コントロール(チェックボックス) Copyright©2014 Hiroshi Masuda 

 

 

inserted by FC2 system