猜数字游戏的VB代码
期中考试试卷分析-北京英文导游词
猜数字游戏的VB代码
本猜数字游戏的方法及规则:
系统自动生成一个四位
数(四个数字没有重复),玩者需要猜中这个
数字。玩者在四个文本框内输入四个数字,按“ENTER
”后,如果猜
对,则文本框变绿,本轮结束,按“CLEAR”进入下一轮。如果不对,
则会在
下面显示“xAxB”,其中“xA”表示有四个数字中有多少个数
字是数字和所在位置都猜对的,“x
B”表示有多少个数字猜对但是所
在位置不对。比如,答案是“1234”,玩者猜“5432”,则显
示“1A2B”,
因为“3”猜对且位置也对,“4”猜对但位置不对,“2”猜对但位置
不对
。如果玩者猜“1324”,则显示“2A2B”;如果玩者猜“4567”,
则显示“0A1B”;如
果玩者猜“4256”,则显示“1A1B”,原因自己推。
(四位数也可能是零开头。)最多猜错十次
,如十次没有猜对,则游
戏失败,本轮结束,按“CLEAR”进入下一轮。按“QUIT”可查看答<
br>案,同时本轮结束。各控件在界面上的布局如下:
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 =
d = True: d = False
If cnt_A
= 4 Then '5th
lor = vbGreen: lor =
vbGreen:
lor = vbGreen: lor = vbGreen: lor
= vbGreen: n = lor = vbBlue:
lor = vbBlack
Else
With Form1
.ForeColor = vbRed: .Font =
End With
lor = vbRed: =
= =
Print Tab(65);
End If '5th
Else
ze =
=
Print Tab(41); Str(count + 1)
Print Tab(47); Str(ansdig(1)) + Str(ansdig(2)) +
Str(ansdig(3)) +
Str(ansdig(4)) +
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 Or n = Or
lor =
vbMagenta Then
Cls
Call
FormInitialization
For n = 1 To 15 Step 1
Print
Next
Call Command1_Click
Else
d = True: d = True:
n =
End If
End Sub
Private Sub Command3_Click()
If lor <>
vbMagenta Then
d = True: d = False
lor
= vbMagenta: = New Roman
ze =
n =
Print Tab(40);
=
Else
Call
Command1_Click
lor = vbRed: ze =
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 = 宋体
End With
With
Command1
.Font =
End With
With
Command2
.Caption =
End With
With
Label2
.Font = New ze = .Caption =
Game
End With
With Text1
.Text =
End With
With Text2
.Text
=
End With
With Text3
.Text =
End With
With Text4
.Text =
End
With
With Text5
.ForeColor = vbBlack:
.Text =
End With
n = 正确答案:
n = 系统生成一
个四位随机
整数(四个数字没有重复),玩者要想方设法猜中这个四位数。玩者在四个框中
分别
输入四位数的四个数字,确认后在下方会显示“x A x B”。“A”表示玩者有
几个数字猜对了而
且位置也正确;“B”表示有几个数字猜对但位置不正确。如:
标准数字是“3524”,玩者猜“12
34”,则显示“1A2B”。猜错十次则输。
点击“QUIT”可查看答案。n = 游戏方法及规则:
ze =
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