?? 猜數字游戲.frm
字號:
VERSION 5.00
Begin VB.Form Form1
Caption = "猜數字"
ClientHeight = 3885
ClientLeft = 60
ClientTop = 450
ClientWidth = 5910
LinkTopic = "Form1"
ScaleHeight = 3885
ScaleWidth = 5910
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton 確定
Caption = "確定"
Enabled = 0 'False
Height = 495
Left = 4440
TabIndex = 6
Top = 2160
Width = 1215
End
Begin VB.CommandButton 開始
Caption = "開始"
Height = 495
Left = 4440
TabIndex = 5
Top = 1320
Width = 1215
End
Begin VB.ListBox list
Height = 2580
Left = 120
TabIndex = 4
Top = 1080
Width = 3975
End
Begin VB.TextBox Text4
Height = 495
Left = 3240
MaxLength = 1
TabIndex = 3
Top = 360
Width = 615
End
Begin VB.TextBox Text3
Height = 495
Left = 2160
MaxLength = 1
TabIndex = 2
Top = 360
Width = 615
End
Begin VB.TextBox Text2
Height = 495
Left = 1200
MaxLength = 1
TabIndex = 1
Top = 360
Width = 615
End
Begin VB.TextBox Text1
Height = 495
Left = 240
MaxLength = 1
TabIndex = 0
Top = 360
Width = 615
End
Begin VB.Label lbl
Height = 375
Left = 4200
TabIndex = 7
Top = 480
Width = 1575
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim r1%, r2%, r3%, r4% '隨機變量
Dim con1%, con2%, con3%, con4% '用戶輸入數據
Dim n% '只能猜10次的標識符
Dim n1% '位置不對數字對
Dim n2% '數字位置都對
Private Sub 開始_Click()
n = 0
lbl.Caption = "請輸數字"
list.Clear
開始.Enabled = False
確定.Enabled = True
Text1.Locked = 0
Text2.Locked = 0
Text3.Locked = 0
Text4.Locked = 0
Call Randomize
'產生0-9的隨機數
r1 = Int(10 * Rnd())
r2 = Int(10 * Rnd())
r3 = Int(10 * Rnd())
r4 = Int(10 * Rnd())
'使四個隨機數不相等
Do Until r1 <> r2 And r1 <> r3 And r1 <> r4
r1 = Int(10 * Rnd())
Loop
Do Until r2 <> r1 And r2 <> r3 And r2 <> r4
r2 = Int(10 * Rnd())
Loop
Do Until r3 <> r2 And r3 <> r1 And r3 <> r4
r3 = Int(10 * Rnd())
Loop
Do Until r4 <> r2 And r4 <> r3 And r4 <> r1
r4 = Int(10 * Rnd())
Loop
End Sub
Private Sub 確定_Click()
Dim k As Integer '四個方格不能有相同的數字
n1 = 0
n2 = 0
k = 0
If n >= 10 Then '如果超過10次還沒有猜對
Call nowin
Else
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Then
list.AddItem "請輸入數字"
Else
con1 = Text1.Text
con2 = Text2.Text
con3 = Text3.Text
con4 = Text4.Text
'四個方格不能有相同的數字
If con1 = con2 Or con1 = con3 Or con1 = con4 Then
k = k + 1
End If
If con2 = con3 Or con2 = con4 Then
k = k + 1
End If
If con3 = con4 Then
k = k + 1
End If
If k <> 0 Then
list.AddItem "四個方格不能有相同的數字"
Else
n = n + 1
lbl.Caption = "你還可以猜" & 10 - n & "次"
Call contr
End If
End If
End If
End Sub
Private Sub Form_Load()
'開始不能交互
Text1.Locked = 1
Text2.Locked = 1
Text3.Locked = 1
Text4.Locked = 1
list.AddItem Space$(16) & "猜數字"
list.AddItem " 每次完成猜數后,會顯示本次結果"
list.AddItem " 根據提示,在猜測!"
list.AddItem " 最多只能猜10次,是4個不同的數!"
End Sub
'只允許數字
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim Numbers As String
Numbers = "1234567890" + Chr(8) + Chr(46)
If InStr(Numbers, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
Dim Numbers As String
Numbers = "1234567890" + Chr(8) + Chr(46)
If InStr(Numbers, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
Dim Numbers As String
Numbers = "1234567890" + Chr(8) + Chr(46)
If InStr(Numbers, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
Private Sub Text4_KeyPress(KeyAscii As Integer)
Dim Numbers As String
Numbers = "1234567890" + Chr(8) + Chr(46)
If InStr(Numbers, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
Private Sub nowin() '輸了
開始.Enabled = 1 '非0數為真
確定.Enabled = 0
list.Clear
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text1.Locked = 1
Text2.Locked = 1
Text3.Locked = 1
Text4.Locked = 1
list.AddItem "你以超過10次你輸了"
list.AddItem "答案是:" & r1 & r2 & r3 & r4
lbl.Caption = ""
End Sub
Private Sub win() '贏了
開始.Enabled = 1
確定.Enabled = 0
list.Clear
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text1.Locked = 1
Text2.Locked = 1
Text3.Locked = 1
Text4.Locked = 1
list.AddItem "你贏了"
lbl.Caption = ""
End Sub
Private Sub contr() '是否猜對
Dim x1%, x2%, x3%, x4% '位置不對數字對
If con1 = r1 And con2 = r2 And con3 = r3 And con4 = r4 Then
Call win
Else
If con1 = r1 Or con1 = r2 Or con1 = r3 Or con1 = r4 Then
x1 = x1 + 1
If con1 = r1 Then
n2 = n2 + 1
x1 = 0
End If
End If
If con2 = r1 Or con2 = r2 Or con2 = r3 Or con2 = r4 Then
x2 = x2 + 1
If con2 = r2 Then
n2 = n2 + 1
x2 = 0
End If
End If
If con3 = r1 Or con3 = r2 Or con3 = r3 Or con3 = r4 Then
x3 = x3 + 1
If con3 = r3 Then
n2 = n2 + 1
x3 = 0
End If
End If
If con4 = r1 Or con4 = r2 Or con4 = r3 Or con4 = r4 Then
x4 = x4 + 1
If con4 = r4 Then
n2 = n2 + 1
x4 = 0
End If
End If
n1 = x1 + x2 + x3 + x4 '位置不對數字對有多少個
Call pr
End If
End Sub
Private Sub pr()
Dim s As String
s = con1 & con2 & con3 & con4
list.AddItem s & Space$(5) & _
"位置不對數字有" & n1 & Space$(2) & _
"位置數字都對" & n2
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -