tm_ShowNo.Checked False: mmfastm_ShowTo.Checked False mmfastm_ShowNum.Checked False: mmfastm_ShowWen.Checked False mmfastIndex.Checked True Case m_ShowRect mmfastIndex.Checked Not mmfastIndex.Checked For I 0 To Labsnake.Count - 1 If mmfastIndex.Checked Then LabsnakeI.BorderStyle 1 Else LabsnakeI.BorderStyle 0 Next End Select If Timer1.Enabled Then If ctAuto Then Labtai1.Caption 游戏中自动 Else Labtai1.Caption 游戏中 ctAutoFen 0: ctFen 0 Else Labtai1.Caption 游戏已停止 End If Call ShowFen End Sub Private Sub Timer1_Timer Dim nHead As Long nEnd As Long X As Long Y As Long I As Long Dim H As Long L As Long H1 As Long L1 As Long If ctSize 0 Then Exit Sub nHead ctHead: nEnd KjIndexctHead 1 当前蛇头、蛇尾序号 MoveHL: Call GetHLLabsnakenHead.Left LabsnakenHead.Top H L 获得当前蛇头 行列号 Select Case ctTo Case to_Up: H H - 1 Case to_Down: H H 1 Case to_Left: L L - 1 Case to_Right: L L 1 End Select If L ctL Or L 1 Then If H ctH 0.5 Then ctTo to_Down Else ctTo to_Up GoTo MoveHL End If If H ctH Or H 1 Then If L ctL 0.5 Then ctTo to_Right Else ctTo to_Left GoTo MoveHL End If nHead nEnd 新蛇头 Call MoveToLabsnakenHead H L 蛇尾 移到 蛇头 前 If ctAuto Then Call AutoPlaynHead H L 自动避免碰到身体会修改 H L If InBodynHead H L -1 Then LabsnakenHead.ZOrder Timer1.Enabled False Labtai1.Caption 游戏结束 Call ShowStrGame Over 36 GoTo SetNewHead End If 是否吃到食物 For I 0 To ctFoot - 1 Call GetHLShafootI.Left ShafootI.Top H1 L1 获得食物 行列号 If H H1 And L L1 Then ctZong ctZong 1 蛇身增加一节 Load LabsnakectZong: LabsnakectZong.Visible True If mmfastm_ShowNum.Checked Then LabsnakectZong.Caption ctZong Else LabsnakeI.Caption LabsnakectZong.Move Labsnake0.Left Labsnake0.Top 新控件与序号0重叠 LabSnakectZong.ZOrder 0 Call ShowFenTrue Call RndFootI 重新设置食物的位置 Exit For End If Next SetNewHead: 新蛇头 LabsnakenHead.BackColor 255 If mmfastm_ShowWen.Checked Then If LabsnakectHead.Caption ● Then LabsnakenHead.Caption ◎ Else LabsnakenHead.Caption ● End If 原蛇头变蛇身 LabsnakectHead.BackColor RGB0 0 255 If mmfastm_ShowNo.Checked Then LabsnakectHead.Caption If mmfastm_ShowTo.Checked Then LabsnakectHead.Caption ToStrctTo If mmfastm_ShowNum.Checked Then LabsnakectHead.Caption ctHead ctHead nHead If ctAuto Then FindFoot LabsnakectHead.Left LabsnakectHead.Top 自动查找食物修改运动方向。
End Sub Private Sub ShowFenOptional AddFen As Boolean Dim Adds As Long If mmfastm_Fast.Checked Then Adds 20 Else Adds 10 If ctAuto Then If AddFen Then ctAutoFen ctAutoFen Adds Labtai2.Caption 最高分 ctAutoMax Labtai3.Caption 得 分 ctAutoFen Else If AddFen Then ctFen ctFen Adds Labtai2.Caption 最高分 ctMaxFen Labtai3.Caption 得 分 ctFen End If End Sub Private Function ToStrnTo As enTo As String Select Case nTo Case to_Up: ToStr ↑ Case to_Down: ToStr ↓ Case to_Left: ToStr ← Case to_Right: ToStr → End Select End Function Private Sub MoveToKj H As Long L As Long Kj.Move ctB ctSize L - 1 ctB ctSize H - 1 End Sub Private Sub GetHLX As Long Y As Long H As Long L As Long 将坐标转变为行列位置 If ctSize 0 Then Exit Sub L 1 IntX - ctB / ctSize: H 1 IntY - ctB / ctSize End Sub Private Sub ShowStrnStr As String Optional FontSize As Long 9 Me.DrawMode 14 Me.Font.Size FontSize Me.CurrentX ctB ctRight - ctB - Me.TextWidthnStr 0.5 Me.CurrentY ctB ctDown - ctB - Me.TextHeightnStr 0.5 Me.Print nStr Me.DrawMode 13 End Sub Private Sub AutoPlayHead As Long H As Long L As Long Dim BodyS As Long H2 As Long L2 As Long Dim Head1 As Long H1 As Long L1 As Long ToH As Long ToL As Long BodyS InBodyHead H L 碰到处的序号 If BodyS 0 Then Exit Sub BodyS KjIndexBodyS 1 GetHL LabsnakeBodyS.Left LabsnakeBodyS.Top H2 L2 H2 L2BodyS 的行列位置 Head1 KjIndexHead -1 GetHL LabsnakeHead1.Left LabsnakeHead1.Top H1 L1 H1 L1Head1 的行列位置 ToH H1: ToL L1 If ctTo to_Down Or ctTo to_Up Then ---垂直运动 If L - L2 0 Then ctTo to_Right Else ctTo to_Left If ctTo to_Right Then ToL ToL 1 Else ToL ToL - 1 If ToL 1 Then ToL 1 If ToL ctL Then ToL ctL If InBody-1 ToH ToL -1 Then ToHToL 处不是空白 ToL L1 If L - L2 0 Then ToH H1 - 1: ctTo to_Down Else ToH H1 1: ctTo to_Up End If Else If H - H2 0 Then ctTo to_Down Else ctTo to_UpBodyS If ctTo to_Down Then ToH ToH 1 Else ToH ToH - 1 If ToH 1 Then ToH 1 If ToH ctH Then ToH ctH If InBody-1 ToH ToL -1 Then ToHToL ToH H1 If H - H2 0 Then ToL L1 - 1: ctTo to_Left Else ToL L1 1: ctTo to_Right End If End If If ToH 1 Or ToH ctH Then Exit Sub If ToL 1 Or ToL ctL Then Exit Sub If InBody-1 ToH ToL -1 Then Exit Sub Call MoveToLabsnakeHead ToH ToL H ToH: L ToL End Sub Private Function InBodyNoNum As Long H As Long L As Long As Long 返回行列处HL的 LabSnake 序号NoNum 除外-1 表示没有 LabSnake Dim I As Long H1 As Long L1 As Long For I 0 To ctZong If I NoNum Then Call GetHLLabsnakeI.Left LabsnakeI.Top H1 L1 If H1 H And L1 L Then InBody I: Exit Function End If Next InBody -1 End Function Private Sub FindFootX As Long Y As Long Dim X1 As Long Y1 As Long I As Long S As Long S1 As Long F As Long F 0 S AbsX - ShafootF.Left AbsY - ShafootF.Top For I 1 To ctFoot - 1 S1 AbsX - ShafootI.Left AbsY - ShafootI.Top If S S1 Then S S1: F I Next X1 X - ShafootF.Left: Y1 Y - ShafootF.Top If X1 0 Then If Y1 0 Then If ctTo to_Down Then ctTo to_Up Else If ctTo to_Up Then ctTo to_Down End If Else If X1 0 Then If ctTo to_Right Then ctTo to_Left Else If ctTo to_Left Then ctTo to_Right End If End If End Sub Private Sub RndFootI As Long Randomize MoveTo ShafootI 1 IntRnd ctH 1 IntRnd ctL End Sub
上一篇:
曲线坐标正反算VB源代码 PDF
下一篇:
法律专业开题报告范文