VB.NETじゃんけんゲーム
【画面作成】
このように配置して(グーチョキパーの絵を準備する) プロパティをこんな感じに設定する。(下を隠す)


【じゃんけん判定の考え方】
グー=0,チョキ=1,パー=2の時,判定を考えると9通りある。表にすると規則性が見える。
|
相手 |
自分 |
判定 |
相手−自分 |
相手−自分+3 |
←3で割った余りは |
|
0グー |
0グー |
あいこ |
0 |
|
|
|
1チョキ |
勝ち |
1 |
|
|
|
|
2パー |
負け |
2 |
|
|
|
|
1 |
1チョキ |
あいこ |
0 |
|
|
|
2 |
勝ち |
1 |
|
|
|
|
0 |
負け |
―1 |
|
|
|
|
2 |
2パー |
あいこ |
0 |
|
|
|
0 |
勝ち |
―2 |
|
|
|
|
1 |
負け |
―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 |