⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fspell.frm

📁 一个用VB编的小游戏
💻 FRM
📖 第 1 页 / 共 3 页
字号:
      Index           =   1
      Left            =   5520
      TabIndex        =   8
      Top             =   3840
      Width           =   360
   End
   Begin VB.Label lbl 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "Lv"
      ForeColor       =   &H00800000&
      Height          =   180
      Index           =   2
      Left            =   600
      TabIndex        =   7
      Top             =   3840
      Width           =   360
   End
   Begin VB.Label lbl 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "得分"
      ForeColor       =   &H00800000&
      Height          =   180
      Index           =   3
      Left            =   1560
      TabIndex        =   6
      Top             =   3840
      Width           =   360
   End
   Begin VB.Label lblNO 
      Alignment       =   1  'Right Justify
      BackColor       =   &H00000000&
      Caption         =   "1"
      BeginProperty Font 
         Name            =   "System"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H000000FF&
      Height          =   255
      Index           =   0
      Left            =   960
      TabIndex        =   5
      Top             =   3840
      Width           =   375
   End
   Begin VB.Label lblNO 
      Alignment       =   1  'Right Justify
      BackColor       =   &H00000000&
      Caption         =   "0"
      BeginProperty Font 
         Name            =   "System"
         Size            =   9.75
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H0000FFFF&
      Height          =   255
      Index           =   1
      Left            =   1920
      TabIndex        =   4
      Top             =   3840
      Width           =   3495
   End
   Begin VB.Label lblFun 
      Alignment       =   2  'Center
      BackColor       =   &H00000000&
      Caption         =   "Now, spell some words."
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00FFFFFF&
      Height          =   255
      Left            =   0
      TabIndex        =   3
      Top             =   4560
      Width           =   6015
   End
End
Attribute VB_Name = "fSpell"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim LBN(0 To 35) As Integer
Dim LBC(0 To 35) As String
Dim LBS(0 To 35) As Boolean
Dim LWID(0 To 35) As Integer
Dim LastShow As Integer
Dim TimeRemain, ClickRemain As Integer
Dim gameMark As Long
Dim LevelNO As Integer

Private Sub cmd_Click(Index As Integer)
Select Case Index
Case 0
  cmd(0).Visible = False
  cmdHlp.Visible = False
  cmd(1).Visible = True
  Call NewLevel
Case 1
  tmr.Enabled = False
  Real = MsgBox("如此一来,您此局的努力便白费了呀!" & RL & "您考虑清楚了吗?", vbYesNo + vbDefaultButton2 + vbQuestion, "RoE")
  If Real = 6 Then Call DoSummary Else tmr.Enabled = True
End Select
End Sub
Private Sub cmdHlp_Click()
Me.Enabled = False
fHelp.Show
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2 - 200
tmr.Interval = gOption.gmSpeed
picTemp.Picture = LoadPicture(App.Path & "\pic\spellb.bmp")
cmdHlp.Picture = picTemp.Picture
LevelNO = 0
End Sub
Public Sub DoSummary()
GetMark = gameMark
CourseMark = LevelNO * 2 + Int(gameMark / 10000)
CourseLevel = LevelNO
MsgBox "您辛苦了!", vbOKOnly, ":P"
Unload Me
End Sub
Public Sub NewLevel()
Dim ok As Boolean
For i = 0 To 35
  lWord(i).Caption = "◇"
Next
If LevelNO < 20 Then
  LevelNO = LevelNO + 1
Else
  MsgBox "“全部都默写出了!”" & RL & "您可以继续游戏以得到高分,或退出游戏。", vbOKOnly, "恭喜"
End If
tmr.Enabled = False
lblNO(0).Caption = LevelNO
Randomize
'共1799
For i = 0 To 35 Step 2
  Do
    LBN(i) = Int(Rnd * DictLen) + 1
    LBN(i + 1) = LBN(i)
    ok = True
    If i > 0 Then
      For j = 0 To i - 1 Step 2
        If LBN(i) = LBN(j) Then ok = False
      Next
    End If
  Loop Until ok
  t = GetWordNo(LBN(i))
  a = InStr(1, t, "\")
  b = InStr(a + 1, t, "\")
  LBC(i) = Mid(t, a + 1, b - a - 1)
  LBC(i + 1) = Mid(t, b + 1)
  LBS(i) = False
  LBS(i + 1) = False
  'Debug.Print LBN(i), LBC(i), LBC(i + 1)
  lWord(i).Caption = "◎"
  lWord(i + 1).Caption = "◎"
  lWord(i).BackColor = vbYellow
  lWord(i + 1).BackColor = vbYellow
  lblProgress.Caption = Int(i * 2.5) & "%"
  shp.Width = Int((i * 2 + 4) * lblProgress.Width / 100)
Next
Call MaskIn
  lblProgress.Caption = "80%"
  shp.Width = Int(80 * lblProgress.Width / 100)
Call IDFix
  lblProgress.Caption = "90%"
  shp.Width = Int(90 * lblProgress.Width / 100)
TimeRemain = 600 - LevelNO * 10
ClickRemain = 200 - LevelNO * 2
LastShow = -1
lblProgress.Caption = "完成"
shp.Width = Int(lblProgress.Width)
tmr.Enabled = True
End Sub
Public Function GetWordNo(ByVal ID As Integer) As String
Dim temp As String
Open App.Path & "\word.ini" For Input As #1
For i = 1 To ID
  Line Input #1, temp
Next
Close #1
GetWordNo = temp
End Function
Public Sub MaskIn()
Dim a, b, c As Integer
Dim s As String
Randomize
For i = 0 To LevelNO * 3 Step 2
a = i Mod 36
c = Len(LBC(a))
b = Int(Rnd * c + 1)
If b = 1 Then s = "?" & Mid(LBC(a), 2)
If b = c Then s = Left(LBC(a), b - 1) & "?"
If b > 1 And b < c Then s = Left(LBC(a), b - 1) & "?" & Mid(LBC(a), b + 1)
LBC(a) = s
Next
End Sub
Public Sub IDFix()
Dim a, b, t As Integer
For i = 0 To 35
  LWID(i) = i
Next
Randomize
For i = 1 To 100
a = Int(Rnd * 36)
b = Int(Rnd * 36)
t = LWID(a)
LWID(a) = LWID(b)
LWID(b) = t
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
tmr.Enabled = False
fResult.Show
End Sub

Private Sub lWord_Click(Index As Integer)
If Not tmr.Enabled Then Exit Sub
If Index = LastShow Then Exit Sub
If LBS(LWID(Index)) Then Exit Sub
ClickRemain = ClickRemain - 1
If LastShow = -1 Then
  lWord(Index).Caption = LBC(LWID(Index))
  LastShow = Index
Else
  lWord(Index).Caption = LBC(LWID(Index))
  If LBN(LWID(LastShow)) = LBN(LWID(Index)) Then
    LBS(LWID(LastShow)) = True
    LBS(LWID(Index)) = True
    lWord(LastShow).BackColor = vbBlue
    lWord(Index).BackColor = vbBlue
    LastShow = -1
    gameMark = gameMark + LevelNO * 100
    lblNO(1).Caption = gameMark
    Call FunTalk(0)
    Call Victory
  Else
    lWord(LastShow).Caption = "◎"
    LastShow = Index
    Call FunTalk(1)
    Call Defeat
  End If
End If
End Sub
Public Sub Victory()
Dim ok As Boolean
ok = True
For i = 0 To 35
  If LBS(i) = False Then ok = False
Next
If Not ok Then Exit Sub
gameMark = gameMark + TimeRemain * LevelNO * 2
gameMark = gameMark + ClickRemain * LevelNO * 5
lblNO(1).Caption = gameMark
s = sndPlaySound(App.Path & "\snd\cheer.wav", 1)
If LevelNO < 20 Then MsgBox "“怎么默写完了?再来一次。”", vbOKOnly, "过关"
Call NewLevel
End Sub

Private Sub tmr_Timer()
TimeRemain = TimeRemain - 1
shpTime.Height = Int(TimeRemain / (600 - LevelNO * 10) * 244)
shpTime.Top = 252 - shpTime.Height
shpClick.Height = Int(ClickRemain / (200 - LevelNO * 2) * 244)
shpClick.Top = 252 - shpClick.Height
Call Defeat
End Sub
Public Sub Defeat()
If TimeRemain = 0 Then
  s = sndPlaySound(App.Path & "\snd\hang.wav", 1)
  MsgBox "都已经下课了,看来是没指望了。", vbOKOnly, "失败"
  Call DoSummary
End If
If ClickRemain = 0 Then
  s = sndPlaySound(App.Path & "\snd\hang.wav", 1)
  MsgBox "根本就是在乱猜,看来是没指望了。", vbOKOnly, "失败"
  Call DoSummary
End If
End Sub
Public Sub FunTalk(ByVal kind As Integer)
Randomize
With lblFun
Select Case Int(Rnd * 6 + 1) + kind * 6
Case 1
  .Caption = "Good match!"
Case 2
  .Caption = "Excellent work!"
Case 3
  .Caption = "Oh! Splendid!"
Case 4
  .Caption = "Always..."
Case 5
  .Caption = "That would be fine."
Case 6
  .Caption = "About to win!"
Case 7
  .Caption = "Bad luck!"
Case 8
  .Caption = "Why!"
Case 9
  .Caption = "May god bless me!"
Case 10
  .Caption = "What's the matter?"
Case 11
  .Caption = "And then?"
Case 12
  .Caption = "Need some help?"
End Select
End With
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -