vb小游戏代码.doc_第1页
vb小游戏代码.doc_第2页
vb小游戏代码.doc_第3页
vb小游戏代码.doc_第4页
vb小游戏代码.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字排序小游戏Option Explicit Dim Label2X As Integer 记录标签控件数组中要移动的标签控件左上角X的位置 Dim Label2Y As Integer 记录标签控件数组中要移动的标签控件左上角Y的位置让标签数组中的每个标签控件上显示的数字是随机的,无重复的Private Sub Init() Randomize Dim a(7) As Integer Dim i As Integer, k As Integer Label1.Caption = For i = 0 To 7 a(i) = i Next For i = 0 To 7 k = Int(Rnd * 8) Do While a(k) = -1 a(k)=-1表示该数组元素对应的数字已经被使用过了 k = Int(Rnd * 8) 重新生成k的值,直到a(k)的值不等于-1 Loop Label2(i).Caption = Trim(Str(a(k) a(k) = -1 a(k)的值已经使用了,不能再用,重新赋值为-1与其他的元素值相区别 Next iEnd SubPrivate Sub Command1_Click() Dim x As Integer, y As Integer Dim z As Integer Init Picture1.Enabled = True 让空白标签Label1出现的位置随机 Randomize 记录下空白标签Label1的位置 x = Label1.Left y = Label1.Top z = Int(Rnd * 8) 将空白标签Label1和标签控件数组任一控件交换位置 Label1.Move Label2(z).Left, Label2(z).Top Label2(z).Move x, y Command1.Enabled = False End SubPrivate Sub Command2_Click() EndEnd SubPrivate Sub Form_Load() Dim i As Integer Picture1.Enabled = False 在标签中显示游戏说明信息 Label3.Caption = 如左图所示,将数字按0-7顺 & vbCrLf & vbCrLf & 序依次排列,即取得胜利。 在标签中显示排列规则后的数字顺序 Label1.Caption = 0 For i = 0 To 6 Label2(i).Caption = i + 1 NextEnd SubPrivate Sub Label1_DragDrop(Source As Control, x As Single, y As Single) Dim Label1X As Integer 记录空白控件Label1左上角X的位置 Dim Label1Y As Integer 记录空白控件Label1左上角Y的位置 Dim flag(3) As Boolean 获取空白控件Label1的位置 Label1X = Label1.Left Label1Y = Label1.Top 要移动的控件位于空白控件Label1的正左侧 flag(0) = (Label2X = Label1X - Source.Width) And (Label2Y = Label1Y) 要移动的控件位于空白控件Label1的正右侧 flag(1) = (Label2X = Label1X + Source.Width) And (Label2Y = Label1Y) 要移动的控件位于空白控件Label1的正上方 flag(2) = (Label2X = Label1X) And (Label2Y = Label1Y - Source.Height) 要移动的控件位于空白控件Label1的正下方 flag(3) = (Label2X = Label1X) And (Label2Y = Label1Y + Source.Height) If flag(0) Or flag(1) Or flag(2) Or flag(3) Then Label1.Move Label2X, Label2Y Source.Move Label1X, Label1Y End If WinEnd SubPrivate Sub Label2_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) If Button = vbLeftButton Then 如果按下鼠标左键 记录下要拖动控件的位置 Label2X = Label2(Index).Left Label2Y = Label2(Index).Top Label2(Index).Drag 1 启动拖动操作 End IfEnd SubPrivate Sub Label2_MouseUp(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) Label2(Index).Drag 2 结束拖动操作End SubPrivate Sub Win() Dim winner As Integer Dim i As Integer Dim answer As Integer 对于给定的标签控件数组中的任一标签控件,可以落在符合要求(对应位置应显示对应数字) 的八个位置中的任一位置 利用循环语句对标签控件数组中的每个标签控件进行检查,如果其落在某一符号要求的位置, 则变量winner的值加1,如果所有标签控件都落在符号要求的位置,则变量winner的值应为8 For i = 0 To 7 If Label2(i).Left = 0 And Label2(i).Top = 0 And _ Label2(i).Caption = 0 Then winner = winner + 1 ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = 0 And _ Label2(i).Caption = 1 Then winner = winner + 1 ElseIf Label2(i).Left = 2 * Label2(i).Width And Label2(i).Top = 0 And _ Label2(i).Caption = 2 Then winner = winner + 1 ElseIf Label2(i).Left = 0 And Label2(i).Top = Label2(i).Height And _ Label2(i).Caption = 3 Then winner = winner + 1 ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = Label2(i).Height And _ Label2(i).Caption = 4 Then winner = winner + 1 ElseIf Label2(i).Left = 2 * Label2(i).Width And Label2(i).Top = Label2(i).Height And _ Label2(i).Caption = 5 Then winner = winner + 1 ElseIf Label2(i).Left = 0 And Label2(i).Top = 2 * Label2(i).Height And _ Label2(i).Caption = 6 Then winner = winner + 1 ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = 2 * Label2(i).Height And _ Label2(i).Caption = 7 Then winner = winner + 1 End If Next i If winner = 8 Then MsgBox 恭喜您,胜利了!, 0 + 64 + 0, 提示 Picture1.Enabled = False answer = MsgBox(还继续吗?, 4 + 32 + 0, 提示) If answer = vbYes Then Command1.Enabled = True Else End End If End IfEnd Sub弹球游戏Dim x_step As IntegerDim y_step As IntegerPrivate Sub command1_Click() If Timer1.Enabled = True Then Timer1.Enabled = FalseElse Timer1.Enabled = TrueEnd If If command1.Caption = 暂停 Then command1.Caption = 继续 Else command1.Caption = 暂停 End IfEnd SubPrivate Sub Form_Load()x_step = 200y_step = 200End SubPrivate Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 37 Then If Line1.X1 Picture1.Width Then Line1.X1 = Picture1.Width - 2000: line2.X2 = Picture.Width Else Line1.X1 = Line1.X1 + 100: Line1.X2 = Line1.X2 + 100 End If End If End SubPrivate Sub Timer1_Timer() If Shape1.Top 0 Then Shape1.Top = 0: y_step = -y_step End If If Shape1.Left Picture1.Width - Shape1.Width Then Shape1.Left = Picture1.Width - Shape1.Width x_step = -x_step End If If Shape1.Left = Line1.X1 And Shape1.Left = Line1.Y1 - Shape1.Height Then Shape1.Top = Line1.Y1 - Shape1.Height y_step = -y_step * 1.01 x_step = x_step * 1.01 Label2.Caption = Label2.Caption + 1 End If Shape1.Top = Shape1.Top + y_step Shape1.Left = Shape1.Left + x_step If Shape1.Top = Picture1.Height - Shape1.Height Then MsgBox 游戏结束 command1.Caption = 开始 Timer1.Enabled = False Shape1.Top = 1000 Label2.Caption = 0 End If End Sub打字游戏Dim score As IntegerDim speed As IntegerDim typetime As IntegerPrivate Sub init()Randomizelblletter1.Caption = Chr(Int(Rnd * 42) + 48)lblletter1.Left = Int(Rnd * 2800) + 1lblletter1.Top = 0End SubPrivate Sub init1()Randomizelblletter2.Caption = Chr(Int(Rnd * 25) + 97)lblletter2.Left = Int(Rnd * 2800) + 1lblletter2.Top = 0End SubPrivate Sub Command1_Click()score = Int(lblscore.Text)initinit1Timer1 = TrueTimer2 = TrueHScroll1.Enabled = FalseCommand1.Enabled = FalseCommand2.Enabled = FalseHScroll1.Enabled = FalseIf lbltime.Text = 0 Then Timer1 = False Timer2 = False lblletter1.Caption = lblletter2.Caption = End IfEnd SubPrivate Sub Command2_Click()typetime = InputBox(请输入打字时间。, 时间设置)If typetime = 4335 Then Call initEnd Iflblletter2.Top = lblletter2.Top + lblspeed.CaptionIf lblletter2.Top = 4335 Then Call init1End IfEnd SubPrivate Sub Timer2_Timer()If lbltime.Text 0 Then lbltime.Text = lbltime.Text - 1 Else: Select Case score / (typetime / 60) Case Is 120 MsgBox (祝贺你!你已经是一个打字高手!) End Select Timer1 = False Timer2 = False HScroll1.Enabled = True Command1.Enabled = True Command2.Enabled = True HScroll1.Enabled = True init init1End IfEnd Sub点灯游戏Private Sub Form_Load()Form1.Scale (0, 12)-(12, 0)For i = 1 To 11 Line (1, i)-(11, i) Line (i, 1)-(i, 11)Next i End SubSub fill_color(X, Y)If Point(X, Y) = vbWhite Then Line (Int(X), Int(Y)-(Int(X + 1), Int(Y + 1), vbBlack, BFElse Line (Int(X), Int(Y)-(Int(X + 1), Int(Y + 1), vbWhite, BFEnd IfEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If X = 1 And X = 1 And Y = 1 And X = 1 And Y + 1 = 1 And X = 1 And Y - 1 = 1 And X + 1 = 1 And Y = 1 And X - 1 = 1 And Y = 11 Then Call fill_color(X - 1, Y) End IfEnd IfCall Form_LoadEnd Sub猜数字Dim number As IntegerPrivate Sub Command1_Click()Dim guess As Integer, diff As Integerguess = Val(Text1.Text)If guess = -1 Then MsgBox (要猜的数是 & number) Text1.Text = Text1.SetFocus Exit SubEnd Ifdiff = Abs(number - guess)Select Case diff Case 0 MsgBox (恭喜你猜对了!) Case 2, Is 2 MsgBox (接近了,再努力!) Case 10, Is 12 MsgBox (有些远,再努力!) Case Else MsgBox (太远了,继续努力!)End SelectSelect Case

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论