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


本文标签: 数字 玩者 执行 游戏 结束