隨手做了個(gè)打地鼠,代碼拿去吧。
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)桐城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
下圖是10x10超大窗體“打地鼠”
直接新建個(gè)窗體,覆蓋全部代碼,不需要拖控件,全部動(dòng)態(tài)創(chuàng)建了。
參數(shù)都在前面幾行,可以隨便改。
格子寬和高是70,間距20,因此橫格子和豎格子不要超過(guò)10,不然窗體會(huì)擴(kuò)張到非常大的程度。
調(diào)整時(shí)鐘的Interval可決定地鼠的出現(xiàn)頻率,你可以修改變化概率?=?15這句話改變出現(xiàn)幾率。
Public?Class?Form1
Dim?橫格子?=?4
Dim?豎格子?=?4
Dim?背景色?=?Color.Bisque
Dim?打中色?=?Color.LawnGreen
Dim?失誤色?=?Color.Red
Dim?按鈕(橫格子,?豎格子)?As?Button
Public?WithEvents?時(shí)鐘?As?New?Timer?With?{.Interval?=?400}
Public?WithEvents?分?jǐn)?shù)板?As?New?Label?With?{.AutoSize?=?False,?.Width?=?120,?
.Height?=?26}
Dim?字體?=?New?Font("黑體",?14)
Dim?隨機(jī)數(shù)?As?New?Random
Dim?打中數(shù)?As?Integer?=?0
Dim?分?jǐn)?shù)?As?Integer?=?0
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load
Me.Font?=?字體
For?x?=?1?To?橫格子
For?y?=?1?To?豎格子
按鈕(x,?y)?=?New?Button()
Me.Controls.Add(按鈕(x,?y))
按鈕(x,?y).Width?=?70
按鈕(x,?y).Height?=?70
按鈕(x,?y).Text?=?""
按鈕(x,?y).Location?=?New?Point((x?-?1)?*?(按鈕(x,?y).Width?+?20)?+?
20,?(y?-?1)?*?(按鈕(x,?y).Height?+?20)?+?20)
按鈕(x,?y).Name?=?String.Format("Button_{0}_{1}",?x,?y)
按鈕(x,?y).BackColor?=?背景色
按鈕(x,?y).FlatStyle?=?FlatStyle.Flat
按鈕(x,?y).Tag?=?0
AddHandler?按鈕(x,?y).Click,?AddressOf?按鈕點(diǎn)擊
Next
Next
Me.Text?=?"打地鼠"??"??[空格鍵暫停]"
Me.KeyPreview?=?True
Dim?k?=?按鈕(橫格子,?豎格子)
Me.Width?=?k.Left?+?k.Width?+?40
Me.Height?=?k.Top?+?k.Height?+?65
Me.Controls.Add(分?jǐn)?shù)板)
分?jǐn)?shù)板.Location?=?New?Point(Me.Width?/?2?-?25,?0)
分?jǐn)?shù)板.Text?=?"分?jǐn)?shù)牌"
時(shí)鐘.Enabled?=?True
End?Sub
Private?Sub?按鈕點(diǎn)擊(sender?As?Object,?e?As?EventArgs)
If?時(shí)鐘.Enabled?=?False?Then?Exit?Sub
Dim?控件名?=?CType(sender,?Button).Name.Split("_")
Dim?x?=?CInt(控件名(1))?'截取_分割的第二部分Button_{0}_{1}
Dim?y?=?CInt(控件名(2))?'截取_分割的第三部分Button_{0}_{1}
If?按鈕(x,?y)?IsNot?Nothing?Then
If?按鈕(x,?y).Text?=?"地鼠"?Then
打中數(shù)?=?打中數(shù)?+?1
分?jǐn)?shù)?=?分?jǐn)?shù)?+?20
按鈕(x,?y).Text?=?打中數(shù)??"!"
分?jǐn)?shù)板.Text?=?"得分:"??分?jǐn)?shù)
按鈕(x,?y).BackColor?=?打中色
按鈕(x,?y).Tag?=?1
ElseIf?按鈕(x,?y).Text?=?""?Then
分?jǐn)?shù)?=?分?jǐn)?shù)?-?20
If?分?jǐn)?shù)??0?Then?分?jǐn)?shù)?=?0
分?jǐn)?shù)板.Text?=?"得分:"??分?jǐn)?shù)
按鈕(x,?y).Text?=?"亂打!"
按鈕(x,?y).BackColor?=?失誤色
按鈕(x,?y).Tag?=?2
End?If
End?If
End?Sub
Private?Sub?時(shí)鐘_Tick(sender?As?Object,?e?As?EventArgs)?Handles?時(shí)鐘.Tick
For?x?=?1?To?橫格子
For?y?=?1?To?豎格子
Dim?變化概率?=?隨機(jī)數(shù).Next(1,?100)
If?變化概率?=?40?Then
If?按鈕(x,?y).Tag?=?1?Or?按鈕(x,?y).Tag?=?2?Then
按鈕(x,?y).Text?=?""
按鈕(x,?y).BackColor?=?背景色
按鈕(x,?y).Tag?=?0
End?If
End?If
If?變化概率?=?15?Then
If?按鈕(x,?y).Text?=?"地鼠"?Then
按鈕(x,?y).Text?=?""
ElseIf?按鈕(x,?y).Text?=?""?Then
按鈕(x,?y).Text?=?"地鼠"
End?If
End?If
Next
Next
End?Sub
Private?Sub?Form1_KeyUp(sender?As?Object,?e?As?KeyEventArgs)?Handles?
MyBase.KeyUp
If?e.KeyCode?=?Keys.Space?Then?時(shí)鐘.Enabled?=?Not?時(shí)鐘.Enabled
End?Sub
End?Class
如滿意,請(qǐng)采納,謝謝。
1、控件:
picture1(0~8)
排三列三排
timer1
interval設(shè)為1000
text1
text
設(shè)為0
command1
caption
設(shè)為“開(kāi)始”
2、代碼:
private
declare
sub
sleep
lib
"kernel32"
(byval
dwmilliseconds
as
long)
dim
m,
i,
n
as
integer
private
sub
form_load()
timer1.enabled
=
false
for
l
=
to
8
picture1(l).visible
=
false
next
l
end
sub
private
sub
command1_click()
timer1.enabled
=
true
end
sub
private
sub
timer1_timer()
if
i
9
then
picture1(i).visible
=
false
end
if
randomize
i
=
(rnd()
*
8)
mod
10
picture1(i).visible
=
true
picture1(i).zorder
if
n
=
10
then
picture1(i).visible
=
false
if
text1
=
80
then
m
=
m
+
1
c
=
msgbox("恭喜你過(guò)關(guān)了。你的得分為"
text1
vbcrlf
"是否進(jìn)入"
m
+
1
"關(guān)",
4)
if
c
=
vbyes
then
timer1.interval
=
timer1.interval
-
100
*
(11
-
m)
/
10
else
timer1.enabled
=
false
end
if
else
msgbox
"請(qǐng)重新開(kāi)始!"
end
if
n
=
text1
=
end
if
n
=
n
+
1
end
sub
private
sub
picture1_click(index
as
integer)
select
case
index
case
index
if
index
=
i
then
timer1.enabled
=
false
text1
=
text1
+
10
msgbox
"恭喜你!"
timer1.enabled
=
true
end
if
end
select
end
sub
下面是源代碼:
Form1:
Private Sub Form_Load() Dim temp As Integer Randomize
temp = Int(Rnd * 3) + 1
Form1.Picture = LoadPicture("C:\Users\Administrator\Desktop\打地鼠\picture" temp ".jpg") WindowsMediaPlayer1.URL = "C:\Users\Administrator\Desktop\打地鼠\Heaven's Devils.wma" End Sub
Private Sub Label1_Click() Form2.Show Form2.num = -1 Form1.Hide
WindowsMediaPlayer1.URL = ""
Open "C:\Users\Administrator\Desktop\打地鼠\primary.dat" For Append As #1 '寫(xiě)操作 Close #1
Open "C:\Users\Administrator\Desktop\打地鼠\intermediate.dat" For Append As #2 Close #2
Open "C:\Users\Administrator\Desktop\打地鼠\advanced.dat" For Append As #3 Close #3 End Sub
Private Sub Label2_Click() End End Sub
Form2:
Dim allnum As Integer, oknum As Integer '定義變化次數(shù) 打中次數(shù) Public num As Integer '判別是否第一次開(kāi)始游戲 Dim flags1 As Boolean '判別文件是否保存 Public flags As Boolean '判別是否播放聲音 Private Sub countine_Click() pause.Enabled = True Timer1.Enabled = True countine.Enabled = False WLXZ.Enabled = True End Sub
Private Sub exit_Click() Dim X As Integer Dim tt As Integer
X = MsgBox("是否真的退出?", vbYesNo, "退出游戲框")
If X = 6 Then
tt = MsgBox("退出游戲之前,是否保存", vbYesNo, "保存提示") If tt = 6 Then
If flags1 = True Then End Else
If Timer1.Interval = 1000 Then
Open "C:\Users\Administrator\Desktop\打地鼠\primary.dat" For Append As #1 '寫(xiě)操作
Print #1, Text1.Text + " " + Format(Date, "M/d/yy") Close #1
ElseIf Timer1.Interval = 500 Then
Open "C:\Users\Administrator\Desktop\打地鼠\intermediate.dat" For Append As #2
Print #2, Text1.Text + " " + Format(Date, "M/d/yy") Close #2 Else
Open "C:\Users\Administrator\Desktop\打地鼠\advanced.dat" For Append As #3
Print #3, Text1.Text + " " + Format(Date, "M/d/yy") Close #3 End If End If End If End End If End Sub
Private Sub Form_Load() Form4.Check1.Value = 1
WindowsMediaPlayer1.Controls.stop countine.Enabled = False pause.Enabled = False WLXZ.Enabled = False
Form5.Top = Form2.Top + 700 Form5.Left = Form2.Left flags1 = False flags = True End Sub
Private Sub help_Click() Form3.Show End Sub
Private Sub new_game_Click() num = num + 1 Dim t As Integer
If (num 0) Then
t = MsgBox("新游戲開(kāi)始之前,是否保存", vbYesNo, "保存提示") If t = 6 Then
flags1 = True
If Timer1.Interval = 1000 Then
Open "C:\Users\Administrator\Desktop\打地鼠\primary.dat" For Append As #1 '寫(xiě)操作
Print #1, Text1.Text + " " + Format(Date, "M/d/yy") Close #1
ElseIf Timer1.Interval = 500 Then
Open "C:\Users\Administrator\Desktop\打地鼠\intermediate.dat" For Append As #2
Print #2, Text1.Text + " " + Format(Date, "M/d/yy") Close #2 Else
Open "C:\Users\Administrator\Desktop\打地鼠\advanced.dat" For Append As #3
Print #3, Text1.Text + " " + Format(Date, "M/d/yy") Close #3 End If End If End If
Call Form_Load
allnum = 0 '變化次數(shù)初始為0 oknum = 0 '打中次數(shù)初始為0 Timer1.Enabled = True pause.Enabled = True WLXZ.Enabled = True End Sub
Private Sub options_Click() Timer1.Enabled = False Form4.Show
WLXZ.Enabled = False countine.Enabled = True End Sub
Private Sub pause_Click() Dim r, g, b As Integer Timer1.Enabled = False countine.Enabled = True pause.Enabled = False WLXZ.Enabled = False
Form5.Top = Form2.Top + 700 Form5.Left = Form2.Left Form5.Show
分享標(biāo)題:vb.net打地鼠 c#打地鼠代碼
當(dāng)前網(wǎng)址:http://www.rwnh.cn/article12/dosipdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、域名注冊(cè)、企業(yè)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站排名、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)