VB.NETじゃんけんゲーム

【画面作成】

このように配置して(グーチョキパーの絵を準備する)  プロパティをこんな感じに設定する。(下を隠す)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


【じゃんけん判定の考え方】

グー=0,チョキ=1,パー=2の時,判定を考えると9通りある。表にすると規則性が見える。

相手

自分

判定

相手−自分

相手−自分+3

3で割った余りは

0グー

0グー

あいこ

 

 

1チョキ

勝ち

 

 

2パー

負け

 

 

1チョキ

あいこ

 

 

勝ち

 

 

負け

1

 

 

2パー

あいこ

 

 

勝ち

2

 

 

負け

―1

 

 

 

【コード】<<ダウンロード>>

Public Class Form1

    Inherits System.Windows.Forms.Form

Windows フォーム デザイナで生成されたコード

     Dim TE, AITE, KACHI, MAKE As Integer

    Dim r As New Random

 

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

        ' 初期値の設定 te,aite=0グー,1チョキ,2パー 勝ち負け数=0

        TE = 0 : AITE = 0 : KACHI = 0 : MAKE = 0

        'タイマーの設定

        Timer1.Interval = 500

        Timer1.Enabled = True

 

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        '自分はグー

        PictureBox1.Image = PictureBox3.Image

        TE = 0

        Hantei(TE)

    End Sub

 

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        '自分はチョキ

        PictureBox1.Image = PictureBox4.Image

        TE = 1

        Hantei(TE)

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        '自分はパー

        PictureBox1.Image = PictureBox5.Image

        TE = 2

        Hantei(TE)

    End Sub

    Private Sub Hantei(ByVal te As Integer)

        'タイマーを止め,相手の手を決めて表示する

        Timer1.Enabled = False

        AitenoTe()

        '自分の手と相手の手の勝敗判定

        Select Case (AITE - te + 3) Mod 3 'テキスト表を参照

            Case 0

                MessageBox.Show("あいこ", "判定")

            Case 1

                MessageBox.Show("あなたの勝ち", "判定")

                KACHI += 1

                Label4.Text = "成績" & KACHI & "勝" & MAKE & "敗"

            Case 2

                MessageBox.Show("あなたの負け", "判定")

                MAKE += 1

                Label4.Text = "成績" & KACHI & "勝" & MAKE & "敗"

            Case Else

                MessageBox.Show("判定", "???")

        End Select

        'タイマーをうごかす

        Timer1.Enabled = True

 

    End Sub

 

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        '終了

        Application.Exit()

    End Sub

 

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        AitenoTe()

    End Sub

    Private Sub AitenoTe()

        '相手の手を決めて表示する

        AITE = r.Next(0, 3)

        Select Case AITE

            Case 0 'グー

                PictureBox2.Image = PictureBox3.Image

            Case 1 'チョキ

                PictureBox2.Image = PictureBox4.Image

            Case 2 'パー

                PictureBox2.Image = PictureBox5.Image

        End Select

    End Sub

End Class