📄 fcatch.frm
字号:
End If
Next
Next
End Sub
Public Sub JustStart()
Randomize
For i = 1 To 8
For j = 1 To 6
gmSquare(i, j) = 0
Next
Next
For i = 1 To 3
X = Int(Rnd * 8) + 1
Y = Int(Rnd * 6) + 1
gmSquare(X, Y) = Int(Rnd * (i + 2)) + 1
Next
Call NewLevel
gameLevel = 1
End Sub
Private Sub Form_Unload(Cancel As Integer)
tmr.Enabled = False
fResult.Show
End Sub
Private Sub picSquare_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If tmr.Enabled = False Then Exit Sub
m = Int(X / 40) + 1
n = Int(Y / 40) + 1
If m < 1 Or m > 8 Then Exit Sub
If n < 1 Or n > 6 Then Exit Sub
hs = picTemp.hdc
hd = picSquare.hdc
If gmSquare(m, n) < 0 Then
Call MarkCount(gameLevel * Abs(gmSquare(m, n)) + gameLevel, 22, True)
gmSquare(m, n) = 0
p = BitBlt(hd, m * 40 - 40, n * 40 - 40, 40, 40, hs, 0, 0, SRCCOPY)
s = sndPlaySound(App.Path & "\snd\Pain" & Int(Rnd * 4 + 1) & ".wav", 1)
Call FunTalk(1)
NOToWin = NOToWin - 1
If NOToWin <= 0 Then
tmr.Enabled = False
s = sndPlaySound(App.Path & "\snd\CSigh.wav", 0)
MsgBox "这次抓到这么多呀!准备下一次考试。", vbOKOnly, "抓作弊"
Call NewLevel
tmr.Enabled = True
End If
Else
Call FunTalk(2)
NOToWin = NOToWin + 1
WrgNO = WrgNO + 1
If WrgNO >= 10 Then
WrgNO = WrgNO - 10
s = sndPlaySound(App.Path & "\snd\CAngry.wav", 1)
Else
s = sndPlaySound(App.Path & "\snd\CMiss.wav", 1)
End If
If NOToWin > gameLevel * 10 Then NOToWin = gameLevel * 10
Call MarkCount(5 * gameLevel, 22, False)
End If
Call ShowMark
End Sub
Private Sub tmr_Timer()
Call AboutToCheat
For i = 1 To 8
For j = 1 To 6
Select Case gmSquare(i, j)
Case Is > 0
gmSquare(i, j) = gmSquare(i, j) - 1
If gmSquare(i, j) = 0 Then
Randomize
's = sndPlaySound(App.Path & "\snd\CCheat.wav", 1)
gmSquare(i, j) = -Abs(Int(Rnd * (7 - gameLevel / 3))) - 3
End If
Case 0
Case Is < 0
gmSquare(i, j) = gmSquare(i, j) + 1
If gmSquare(i, j) = 0 Then
Call FunTalk(3)
Call MarkCount(2 * gameLevel, 22, False)
EscNO = EscNO + 1
If EscNO >= 10 Then
EscNO = EscNO - 10
s = sndPlaySound(App.Path & "\snd\CLaugh.wav", 1)
Else
s = sndPlaySound(App.Path & "\snd\CEscape.wav", 1)
End If
End If
End Select
Next
Next
Call MarkCount(1, 23, True)
Call ShowMark
Call RoomDraw
Call GameOverQuest
Randomize
k = Int(Rnd * 5)
If k = 0 Then Call FunTalk(0)
End Sub
Public Sub AboutToCheat()
CDT = CDT + 1
If CDT >= 3 - gameLevel / 10 Then
Randomize
Do
X = Int(Rnd * 8) + 1
Y = Int(Rnd * 6) + 1
Loop Until gmSquare(X, Y) = 0
gmSquare(X, Y) = Int(Rnd * (9 - gameLevel / 3)) + 2
CDT = CDT - 3 + gameLevel / 10
End If
End Sub
Public Sub MarkCount(ByVal mkNumber As Integer, Location As Integer, Addition As Boolean)
If Addition Then
gmMark(Location) = gmMark(Location) + (mkNumber Mod 10)
mkNumber = Int(mkNumber / 10)
If gmMark(Location) >= 10 Then
mkNumber = mkNumber + 1
gmMark(Location) = gmMark(Location) - 10
End If
If mkNumber > 0 Then
If Location = 16 Then
For i = 16 To 23
gmMark(i) = 9
Next
Else
Call MarkCount(mkNumber, Location - 1, True)
End If
End If
Else
gmMark(Location) = gmMark(Location) - (mkNumber Mod 10)
mkNumber = Int(mkNumber / 10)
If gmMark(Location) < 0 Then
mkNumber = mkNumber + 1
gmMark(Location) = gmMark(Location) + 10
End If
If mkNumber > 0 Then
If Location = 16 Then
For i = 16 To 23
gmMark(i) = 0
Next
Else
Call MarkCount(mkNumber, Location - 1, False)
End If
End If
End If
End Sub
Public Sub ShowMark()
i = 16
Do While gmMark(i) = 0 And i < 23
i = i + 1
Loop
lblNO(1).Caption = ""
For j = i To 23
If (j / 3 = Int(j / 3)) And j <> i Then lblNO(1).Caption = lblNO(1).Caption & ","
lblNO(1).Caption = lblNO(1).Caption & Str(gmMark(j))
Next
lblNO(0).Caption = gameLevel
End Sub
Public Sub NewLevel()
Call MarkCount(LeftTime * gameLevel, 23, True)
If gameLevel < 20 Then
gameLevel = gameLevel + 1
Else
MsgBox "您已经取得胜利!" & RL & "您可以继续游戏以得到高分,或者按下方按钮退出。", vbOKOnly, "……"
End If
LeftTime = 400 - gameLevel * 5
NOToWin = gameLevel * 10
End Sub
Public Sub GameOverQuest()
LeftTime = LeftTime - 1
shpTime.Height = Int(LeftTime / (400 - gameLevel * 5) * 244)
shpTime.Top = 252 - shpTime.Height
If gameLevel * 10 >= NOToWin Then shpClick.Height = Int((gameLevel * 10 - NOToWin) / (gameLevel * 10) * 244)
shpClick.Top = 252 - shpClick.Height
If shpTime.Height + shpClick.Height <= 244 Then
shpTime.BackColor = vbRed
shpClick.BackColor = vbRed
Else
shpTime.BackColor = vbGreen
shpClick.BackColor = vbGreen
End If
If LeftTime <= 0 Then
tmr.Enabled = False
MsgBox "考试时间到!", vbOKOnly, "抓作弊"
Call DoSummary
End If
End Sub
Public Sub FunTalk(ByVal TheType As Integer)
Randomize
Select Case TheType
Case 0
k = Int(Rnd * 6)
Select Case k
Case 0
lblFun.Caption = "努力!"
Case 1
lblFun.Caption = "怎么这么难呀!"
Case 2
lblFun.Caption = "扔个硬币吧?"
Case 3
lblFun.Caption = "哎,怎么都看不懂。"
Case 4
lblFun.Caption = "管他呢!"
Case 5
lblFun.Caption = "上帝保佑!"
End Select
Case 1
k = Int(Rnd * 6)
Select Case k
Case 0
lblFun.Caption = "对不起,我不是故意的。"
Case 1
lblFun.Caption = "那个……我只是想……"
Case 2
lblFun.Caption = "其实我没有……"
Case 3
lblFun.Caption = "饶了我吧,以后再也不敢了。"
Case 4
lblFun.Caption = "下次得小心了!"
Case 5
lblFun.Caption = "真倒霉,居然被发现。"
End Select
Case 2
k = Int(Rnd * 6)
Select Case k
Case 0
lblFun.Caption = "不要冤枉好人!"
Case 1
lblFun.Caption = "拿出证据来!你有吗?"
Case 2
lblFun.Caption = "老师!你错怪我了!"
Case 3
lblFun.Caption = "作弊的不知道,不作弊的倒被抓!"
Case 4
lblFun.Caption = "天地也!只合把清浊分辨!"
Case 5
lblFun.Caption = "怎么可以这样乱说呢!"
End Select
Case 3
k = Int(Rnd * 6)
Select Case k
Case 0
lblFun.Caption = "哈哈!原来选这个答案。"
Case 1
lblFun.Caption = "傻狗数学好,语文可不行。"
Case 2
lblFun.Caption = "嘻嘻,没发现!"
Case 3
lblFun.Caption = "这家伙的字好潦草!"
Case 4
lblFun.Caption = "这样写上就可以了吧!"
Case 5
lblFun.Caption = "老师的眼睛真大。"
End Select
End Select
End Sub
Public Sub DoSummary()
GetMark = 0
temp = 1
For i = 23 To 16 Step -1
GetMark = GetMark + gmMark(i) * temp
temp = temp * 10
Next
CourseMark = gameLevel * 2 + Int(GetMark / 10000)
CourseLevel = gameLevel
MsgBox "您辛苦了!", vbOKOnly, ":P"
Unload Me
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -