admin 管理员组文章数量: 1087139
2024年3月27日发(作者:安卓应用session)
猜数字游戏的VB代码
本猜数字游戏的方法及规则:
系统自动生成一个四位数(四个数字没有重复),玩者需要猜中这个数字。玩者在四个
文本框内输入四个数字,按“ENTER”后,如果猜对,则文本框变绿,本轮结束,按“CLEAR”
进入下一轮。如果不对,则会在下面显示“xAxB”,其中“xA”表示有四个数字中有多少
个数字是数字和所在位置都猜对的,“xB”表示有多少个数字猜对但是所在位置不对。比如,
答案是“1234”,玩者猜“5432”,则显示“1A2B”,因为“3”猜对且位置也对,“4”猜
对但位置不对,“2”猜对但位置不对。如果玩者猜“1324”,则显示“2A2B”;如果玩者
猜“4567”,则显示“0A1B”;如果玩者猜“4256”,则显示“1A1B”,原因自己推。(四
位数也可能是零开头。)最多猜错十次,如十次没有猜对,则游戏失败,本轮结束,按“CLEAR”
进入下一轮。按“QUIT”可查看答案,同时本轮结束。各控件在界面上的布局如下:
Option Explicit
Private Sub Command1_Click() '此为“确认”按钮。
If lor <> vbMagenta Then
If d = False Then
Dim keydig(1 To 4) As Integer, ansdig(1 To 4) As Integer
Dim n, m, cnt_A, cnt_B As Integer, isappliable As Boolean
Static count, keynum As Integer 'command按钮事件执行终,必须使变量count
仍然残留。
Do
If count = 0 Then '“count”变量计算Command1_Click执行的次数,每执行一次
增加1。
Randomize
keynum = Int(Rnd * (9876 - 123 + 1)) + 123 '生成一个四位随机整数。
End If '3rd
For n = 1 To 4 Step 1
keydig(n) = keynum 10 ^ (4 - n) Mod 10 '“keydig(n)”数组有四个元素,存放
四位随机数的四个数字。
Next
isappliable = True
For m = 1 To 3 Step 1 '生成的四位整数不能有任何两位相同,否则重新生成。
For n = m + 1 To 4 Step 1
If keydig(m) = keydig(n) Then isappliable = False
Next
Next
Loop Until isappliable = True '如果有相同数字就返回去重算。
ansdig(1) = Val(): ansdig(2) = Val(): ansdig(3)
Val(): ansdig(4) = Val()
For m = 1 To 4 Step 1
For n = 1 To 4 Step 1
=
If keydig(m) = ansdig(n) Then
If m = n Then cnt_A = cnt_A + 1 Else cnt_B = cnt_B + 1
End If
Next
Next
If cnt_A = 4 Or count = 9 Then
= Str(keynum): ze = "15"
d = True: d = False
If cnt_A = 4 Then '5th
lor = vbGreen: lor = vbGreen: lor =
vbGreen: lor = vbGreen: lor = vbGreen: n
= "BINGO!": lor = vbBlue: lor = vbBlack
Else
With Form1
.ForeColor = vbRed: .Font = "Times New Roman": .FontSize = "20"
End With
lor = vbRed: = "": = "": = "":
= ""
Print Tab(65); "YOU LOSE!"
End If '5th
Else
ze = "13": = "": = "": = "":
= ""
Print Tab(41); Str(count + 1)
Print Tab(47); Str(ansdig(1)) + Str(ansdig(2)) + Str(ansdig(3)) + Str(ansdig(4)) +
" " + Str(cnt_A) + "A" + Str(cnt_B) + "B"
End If '4th
count = count + 1
Else
count = 0
End If '2nd
Else
= Str(keynum)
End If '1st
End Sub
Private Sub Command2_Click()
Dim n As Integer
If lor = vbRed
lor = vbMagenta Then
Cls
Call FormInitialization
For n = 1 To 15 Step 1
Print ""
Or n "BINGO!" Or =
Next
Call Command1_Click
Else
d = True: d = True: n
= "QUIT": d = False
End If
End Sub
Private Sub Command3_Click()
If lor <> vbMagenta Then
d = True: d = False
lor = vbMagenta: = "Times New Roman":
ze = "40"
n = "See the key"
Print Tab(40); "QUIT"
= "": = "": = "": = ""
Else
Call Command1_Click
lor = vbRed: ze = "15"
d = False
End If
End Sub
Private Sub Form_Load()
Dim n As Integer
Call FormInitialization
For n = 1 To 15 Step 1
Print ""
Next
d = False
End Sub
Private Function FormInitialization() As Integer
With Form1
.ForeColor = vbBlack: .Font = "宋体": .FontSize = "9"
End With
With Command1
.Font = "Times New Roman": .FontSize = "15": .Caption = "ENTER"
End With
With Command2
.Caption = "CLEAR": .Font = "Times New Roman": .FontSize = "12"
End With
With Label2
.Font = "Times New Roman": .FontSize = "20": .Caption = "'Bingo'
Game": .ForeColor = vbBlack
End With
With Text1
.Text = "": .FontSize = "35": .BackColor = vbWhite
End With
With Text2
.Text = "": .FontSize = "35": .BackColor = vbWhite
End With
With Text3
.Text = "": .FontSize = "35": .BackColor = vbWhite
End With
With Text4
.Text = "": .FontSize = "35": .BackColor = vbWhite
End With
With Text5
.ForeColor = vbBlack: .Text = "": .BackColor = vbWhite
End With
n = "正确答案:"
n = "QUIT": n = "系统生成一个四位随机整数(四
个数字没有重复),玩者要想方设法猜中这个四位数。玩者在四个框中分别输入四位数的四
个数字,确认后在下方会显示“x A x B”。“A”表示玩者有几个数字猜对了而且位置也正
确;“B”表示有几个数字猜对但位置不正确。如:标准数字是“3524”,玩者猜“1234”,
则显示“1A2B”。猜错十次则输。 点击“QUIT”可查看答案。":
n = "游戏方法及规则:": ze = "18"
FormInitialization = 0
End Function
Private Sub Text1_Change()
If IsNumeric() And Len() = 1 Then us
End Sub
Private Sub Text2_Change()
If IsNumeric() And Len() = 1 Then us
End Sub
Private Sub Text3_Change()
If IsNumeric() And Len() = 1 Then us
End Sub
Private Sub Text4_Change()
If IsNumeric() And Len() = 1 Then us
End Sub
版权声明:本文标题:猜数字游戏的VB代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1711534608a598763.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论