📄 formmain.vb
字号:
Dim InitNum(4), Times As Integer
Private Sub BTExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTExit.Click
subExit()
'调用退出应用程序的函数
End Sub
Private Sub subReset()
Dim i, j, flag As Integer
Randomize()
'生成随机种子
For i = 1 To 4
Do
flag = 0
'标志变量清零()
InitNum(i) = Rnd(1) * 10
If InitNum(i) = 10 Then
flag = 1
'如果生成数字为10,设标志变量为1
End If
'随机生成一个一位整数
For j = 1 To i - 1
If InitNum(i) = InitNum(j) Then
flag = 1
'如果出现重复数字,设标志变量为1
End If
Next
Loop Until flag = 0
'循环至生成的4个数字在0到9之间且互不重复为止
Next
'这段代码的作用是生成互不重复的4个一位整数,注意标志变量的作用
TBNum1.Clear()
TBNum2.Clear()
TBNum3.Clear()
TBNum4.Clear()
'将各TextBox控件清空
ListResult.Items.Clear()
'将ListResult清空
Times = 8
LBChance.Text = "您一共有8次机会"
'将游戏次数初始化为8
BTOK.Enabled = True
'将BTOK按钮设置为有效
End Sub
Private Sub formMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
subReset()
'调用初始化函数
End Sub
Private Sub subOK()
Dim InputNum(4) As Integer
Dim i As Integer, j As Integer
Dim a As Integer, b As Integer
Dim flag As Integer
Dim s As String
If TBNum1.Text = "" Or TBNum2.Text = "" Or TBNum3.Text = "" Or TBNum4.Text = "" Then
MessageBox.Show("必须输入4个数字", "输入不正确", MessageBoxButtons.OK)
'判断用户是否已经输入了4个数字
Else
InputNum(1) = TBNum1.Text
InputNum(2) = TBNum2.Text
InputNum(3) = TBNum3.Text
InputNum(4) = TBNum4.Text
'将游戏者的输入存入数组,以方便通过循环语句对其进行判断
flag = 0
For i = 1 To 4
If InputNum(i) > 9 Or InputNum(i) < 0 Then
MessageBox.Show("输入数字超出范围", "输入不正确", MessageBoxButtons.OK)
flag = 1
End If
'判断游戏者的输入是否在0到9之间
For j = 1 To 4
If InputNum(i) = InputNum(j) And i <> j Then
MessageBox.Show("输入的四个数字不能重复", "输入不正确", MessageBoxButtons.OK)
flag = 1
End If
Next
'判断游戏者输入的四个数字是否重复
Next
If flag = 0 Then
For i = 1 To 4
For j = 1 To 4
If InputNum(i) = InitNum(j) Then
If i = j Then a = a + 1 Else b = b + 1
End If
Next
Next
'判断游戏者输入的数字的数值及位置是否正确,如果数值及位置都正确,则a的值加1;如果只是数值正确而位置不对,则b的值加1
s = TBNum1.Text & TBNum2.Text & TBNum3.Text & TBNum4.Text & ":" & a & "A" & b & "B"
ListResult.Items.Add(s)
'显示中间结果
Times = Times - 1
LBChance.Text = "您还有" & Times & "次机会"
'对游戏者的剩余次数进行递减
If a = 4 Or Times = 0 Then
If a = 4 Then
MessageBox.Show("恭喜过关!", "游戏结束", MessageBoxButtons.OK)
Else : MessageBox.Show("正确答案应为" & InitNum(1) & InitNum(2) & InitNum(3) & InitNum(4), "游戏结束", MessageBoxButtons.OK)
End If
'判断游戏的结束和游戏者的胜负
BTOK.Enabled = False
'游戏结束,将BTOK按钮设为无效
End If
End If
End If
End Sub
Private Sub BTOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTOK.Click
subOK()
'开始判断
End Sub
Private Sub mOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mOK.Click
subOK()
'开始判断
End Sub
Private Sub subExit()
Application.Exit()
'退出应用程序
End Sub
Private Sub mExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mExit.Click
subExit()
'调用退出应用程序的函数
End Sub
Private Sub mAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mAbout.Click
Dim fAbout As New formAbout()
fAbout.Show()
'显示“关于”窗体
End Sub
Private Sub TBNum1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TBNum1.KeyPress
If Asc(e.KeyChar) > 57 Or Asc(e.KeyChar) < 48 Then
'判断输入是否为数字
MessageBox.Show("请输入数字", "输入不正确", MessageBoxButtons.OK)
TBNum1.Clear()
'显示提示信息并清空文本框
Else
TBNum2.Focus()
TBNum2.SelectAll()
'当TBNum1有输入的时候,自动将焦点转移到TBNum2上
End If
End Sub
Private Sub TBNum2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TBNum2.KeyPress
If Asc(e.KeyChar) > 57 Or Asc(e.KeyChar) < 48 Then
'判断输入是否为数字
MessageBox.Show("请输入数字", "输入不正确", MessageBoxButtons.OK)
TBNum2.Clear()
'显示提示信息并清空文本框
Else
TBNum3.Focus()
TBNum3.SelectAll()
'当TBNum2有输入的时候,自动将焦点转移到TBNum3上
End If
End Sub
Private Sub TBNum3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TBNum3.KeyPress
If Asc(e.KeyChar) > 57 Or Asc(e.KeyChar) < 48 Then
'判断输入是否为数字
MessageBox.Show("请输入数字", "输入不正确", MessageBoxButtons.OK)
TBNum3.Clear()
'显示提示信息并清空文本框
Else
TBNum4.Focus()
TBNum4.SelectAll()
'当TBNum3有输入的时候,自动将焦点转移到TBNum4上
End If
End Sub
Private Sub TBNum4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TBNum4.KeyPress
If Asc(e.KeyChar) > 57 Or Asc(e.KeyChar) < 48 Then
'判断输入是否为数字
MessageBox.Show("请输入数字", "输入不正确", MessageBoxButtons.OK)
TBNum4.Clear()
'显示提示信息并清空文本框
Else
BTOK.Focus()
'当TBNum4有输入的时候,自动将焦点转移到按钮BTOK上
End If
End Sub
Private Sub btReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btReset.Click
subReset()
'调用初始化函数
End Sub
Private Sub mReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mReset.Click
subReset()
'调用初始化函数
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -