刘金玉的零基础VB教程078期:小龙游戏开发介绍 刘金玉原创代码开源

简介: 刘金玉的零基础VB教程078期:小龙游戏开发介绍 刘金玉原创代码开源

通过前76期的学习,我们其实自己已经可以拥有开发一款游戏的能力。因此,这里我仿照谷歌浏览器中的恐龙像素游戏,自己开发了一块有特色的小龙游戏,这块VB小游戏具有一定的可玩性。


以下开始大致以文字形式讲述一下开发思路。


游戏开始后的效果

小窗后的效果

游戏的第一个界面form1

游戏的第二个界面form2

先要建立几个整体的类型,类似一个对象:

颜色类型:

Private Type Color

   R As Integer

   G As Integer

   B As Integer

End Type


恐龙类型:

Private Type Dragon

   x1 As Single

   Y1 As Single

   X2 As Single

   Y2 As Single

   C As Color

End Type


树的类型

Private Type Tree

   x1 As Single

   Y1 As Single

   X2 As Single

   Y2 As Single

   H As Single

   C As Color

End Type


云的类型

Private Type Cloud

   x1 As Single

   Y1 As Single

   X2 As Single

   Y2 As Single

End Type


整体再建立几个带事件的控件

Private WithEvents timer1 As Timer '全程控制

Private WithEvents timer2 As Timer '跳跃动画

Private WithEvents timer3 As Timer '监控碰撞情况

Private WithEvents timer4 As Timer '控制消息显示时间

Private WithEvents lblscore As Label '记录分数

Private WithEvents lbldesc As Label '描述

Private WithEvents lblmsg As Label '消息



画龙的第一个状态,直接用一个函数来处理:

Function dragon1()


Line (startX, startY - 1)-(startX + 20, startY + 1), vbBlack, BF

Line (startX - 3, startY + 1)-(startX + 23, startY + 15), vbBlack, BF

'眼睛

DrawWidth = 3

PSet (startX + 5, startY + 5), vbWhite

DrawWidth = 1

Line (startX - 3, startY + 15)-(startX + 10, startY + 19), vbBlack, BF

'嘴巴

Line (startX - 3, startY + 19)-(startX + 20, startY + 20), vbBlack, BF

'身体

Line (startX - 6, startY + 21)-(startX + 10, startY + 22), vbBlack, BF

Line (startX - 9, startY + 23)-(startX + 10, startY + 24), vbBlack, BF

Line (startX - 11, startY + 25)-(startX + 10, startY + 26), vbBlack, BF

'手

Line (startX + 10, startY + 25)-(startX + 16, startY + 26), vbBlack, BF

Line (startX + 16, startY + 26)-(startX + 17, startY + 28), vbBlack, BF

'身体

Line (startX - 14, startY + 26)-(startX + 10, startY + 28), vbBlack, BF

Line (startX - 20, startY + 29)-(startX + 10, startY + 35), vbBlack, BF

'尾巴

Line (startX - 22, startY + 25)-(startX - 20, startY + 34), vbBlack, BF

Line (startX - 24, startY + 23)-(startX - 23, startY + 32), vbBlack, BF

Line (startX - 25, startY + 21)-(startX - 24, startY + 30), vbBlack, BF

Line (startX - 26, startY + 15)-(startX - 25, startY + 28), vbBlack, BF

'身体

Line (startX - 18, startY + 35)-(startX + 8, startY + 37), vbBlack, BF

Line (startX - 16, startY + 38)-(startX + 6, startY + 40), vbBlack, BF

Line (startX - 14, startY + 41)-(startX + 4, startY + 43), vbBlack, BF

Line (startX - 12, startY + 44)-(startX - 4, startY + 45), vbBlack, BF

'脚1

Line (startX - 12, startY + 44)-(startX - 2, startY + 45), vbBlack, BF

Line (startX - 12, startY + 46)-(startX - 4, startY + 47), vbBlack, BF

Line (startX - 12, startY + 48)-(startX - 6, startY + 49), vbBlack, BF

Line (startX - 12, startY + 50)-(startX - 10, startY + 52), vbBlack, BF

Line (startX - 12, startY + 53)-(startX - 6, startY + 54), vbBlack, BF

'脚2

Line (startX, startY + 43)-(startX + 1, startY + 46), vbBlack, BF

Line (startX, startY + 46)-(startX + 5, startY + 46), vbBlack, BF



End Function


龙的第二个状态也用一个函数来处理:

'龙绘画

Function dragon2()


Line (startX, startY - 1)-(startX + 20, startY + 1), vbBlack, BF

Line (startX - 3, startY + 1)-(startX + 23, startY + 15), vbBlack, BF

'眼睛

DrawWidth = 3

PSet (startX + 5, startY + 5), vbWhite

DrawWidth = 1

Line (startX - 3, startY + 15)-(startX + 10, startY + 19), vbBlack, BF

'嘴巴

Line (startX - 3, startY + 19)-(startX + 20, startY + 20), vbBlack, BF

'身体

Line (startX - 6, startY + 21)-(startX + 10, startY + 22), vbBlack, BF

Line (startX - 9, startY + 23)-(startX + 10, startY + 24), vbBlack, BF

Line (startX - 11, startY + 25)-(startX + 10, startY + 26), vbBlack, BF

'手

Line (startX + 10, startY + 25)-(startX + 16, startY + 26), vbBlack, BF

Line (startX + 16, startY + 26)-(startX + 17, startY + 28), vbBlack, BF

'身体

Line (startX - 14, startY + 26)-(startX + 10, startY + 28), vbBlack, BF

Line (startX - 20, startY + 29)-(startX + 10, startY + 35), vbBlack, BF

'尾巴

Line (startX - 22, startY + 25)-(startX - 20, startY + 34), vbBlack, BF

Line (startX - 24, startY + 23)-(startX - 23, startY + 32), vbBlack, BF

Line (startX - 25, startY + 21)-(startX - 24, startY + 30), vbBlack, BF

Line (startX - 26, startY + 15)-(startX - 25, startY + 28), vbBlack, BF

'身体

Line (startX - 18, startY + 35)-(startX + 8, startY + 37), vbBlack, BF

Line (startX - 16, startY + 38)-(startX + 6, startY + 40), vbBlack, BF

Line (startX - 14, startY + 41)-(startX + 4, startY + 43), vbBlack, BF

Line (startX - 12, startY + 44)-(startX - 4, startY + 45), vbBlack, BF

'脚1

Line (startX - 12, startY + 44)-(startX - 2, startY + 45), vbBlack, BF

Line (startX - 10, startY + 46)-(startX - 7, startY + 47), vbBlack, BF

Line (startX - 8, startY + 48)-(startX - 4, startY + 49), vbBlack, BF

'脚2

Line (startX, startY + 43)-(startX + 1, startY + 44), vbBlack, BF

Line (startX, startY + 44)-(startX + 1, startY + 50), vbBlack, BF

Line (startX + 1, startY + 51)-(startX + 5, startY + 52), vbBlack, BF



End Function



开发这个程序必须先理解以上的基础源代码,然后再理解整个程序的逻辑处理。窗体form1的整体源代码如下:

Private Type Color
    R As Integer
    G As Integer
    B As Integer
End Type
Private Type Dragon
    x1 As Single
    Y1 As Single
    X2 As Single
    Y2 As Single
    C As Color
End Type
Private Type Tree
    x1 As Single
    Y1 As Single
    X2 As Single
    Y2 As Single
    H As Single
    C As Color
End Type
Private Type Cloud
    x1 As Single
    Y1 As Single
    X2 As Single
    Y2 As Single
End Type
Private WithEvents timer1 As Timer '全程控制
Private WithEvents timer2 As Timer '跳跃动画
Private WithEvents timer3 As Timer '监控碰撞情况
Private WithEvents timer4 As Timer '控制消息显示时间
Private WithEvents lblscore As Label '记录分数
Private WithEvents lbldesc As Label '描述
Private WithEvents lblmsg As Label '消息
Dim startX!, startY!
Dim status%
Dim jumpflag%, ft&
Dim lrflag% '方向向右为0,方向向左为1
Public score&
Dim scorelast&
Public currentName$
Dim dg As Dragon
Dim trs() As Tree
Dim cld() As Cloud
Dim msgflag As Boolean '消息是否显示标记
Dim n As Long  '表示树的数量
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyLeft Then
    startX = startX - 10
ElseIf KeyCode = vbKeyRight Then
    startX = startX + 10
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeySpace Then
    scorelast = score
    timer2.Enabled = True
End If
End Sub
Private Sub Form_Load()
Call init
End Sub
Public Function init()
WindowState = 2
'初始化龙颜色
dg.C.R = 0
dg.C.G = 0
dg.C.B = 0
Call dragonBorder
ScaleMode = vbPixels
AutoRedraw = True
If timer1 Is Nothing Then
    '总体动画
    Set timer1 = Controls.Add("vb.timer", "timer1")
    '龙跳动动画
    Set timer2 = Controls.Add("vb.timer", "timer2")
    '监控碰撞情况
    Set timer3 = Controls.Add("vb.timer", "timer3")
    '消息显示时间
    Set timer4 = Controls.Add("vb.timer", "timer4")
    '分数
    Set lblscore = Controls.Add("vb.label", "lblscore")
    '说明
    Set lbldesc = Controls.Add("vb.label", "lbldesc")
    '消息
    Set lblmsg = Controls.Add("vb.label", "lblmsg")
End If
lblmsg.Caption = "开始!"
timer1.Interval = 50
timer1.Enabled = False
timer2.Interval = 1
timer2.Enabled = False
timer3.Interval = 1
timer3.Enabled = True
timer4.Interval = 2000
timer4.Enabled = True
'初始坐标点
startY = ScaleHeight / 2  '初始坐标点
startX = 30   '
'初始化六颗树数据
n = 1500
ReDim trs(n) As Tree
Randomize
Dim i&, j&, t!
t = ScaleWidth + 100
For i = 0 To n Step 1
    t = t + Rnd * 500 + 600
    trs(i).x1 = t
    trs(i).Y1 = startY - Rnd * 50 + 10
    trs(i).X2 = trs(i).x1 + 10
    trs(i).Y2 = ScaleHeight / 2 + 50
    trs(i).H = trs(i).Y2 - trs(i).Y1
    If (i > 10 And i < 30) Or i > 50 Then
        trs(i).C.R = Rnd * 256
        trs(i).C.G = Rnd * 256
        trs(i).C.B = Rnd * 256
    Else
        trs(i).C.R = 0
        trs(i).C.G = 0
        trs(i).C.B = 0
    End If
Next i
timer1.Enabled = True
'画树
Call drawTree
'画龙
Call dragon1
'画地面
Call drawGround
'初始化云
ReDim cld(n) As Cloud
t = 0
For i = 0 To UBound(cld) Step 1
    t = t + Rnd * 400
    cld(i).x1 = t
    Dim t2%
    t2 = Int(Rnd * 20) + 1
    cld(i).Y1 = ScaleHeight / t2
    cld(i).X2 = t + Rnd * 200
    cld(i).Y2 = ScaleHeight / t2
Next i
Call drawCloud
End Function
Private Sub Form_Resize()
lblscore.Visible = True
lblscore.Caption = "得分 0"
lblscore.FontSize = 16
lblscore.Left = 10
lblscore.Top = 10
lbldesc.Visible = True
lbldesc.AutoSize = True
lbldesc.Caption = "空格键 跳跃;方向键 控制前后"
lbldesc.FontSize = 20
lbldesc.Top = ScaleHeight - lbldesc.Height - 100
lbldesc.Left = ScaleWidth / 2 - lbldesc.Width / 2
With lblmsg
    .Visible = True
    .Caption = "开始!"
    .AutoSize = True
    .Top = ScaleHeight / 2 - .Height - 100
    .Left = ScaleWidth / 2 - .Width / 2
    .ForeColor = vbRed
    .ZOrder 0
    .FontSize = 20
End With
'消息提示
timer4.Enabled = True
startY = ScaleHeight / 2
startX = 30
Dim i&, j&
For i = 0 To n Step 1
    trs(i).Y2 = ScaleHeight / 2 + 50
    trs(i).Y1 = trs(i).Y2 - trs(i).H
Next i
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
'控制消息显示
Private Sub timer4_Timer()
If msgflag = False Then
    lblmsg.Visible = True
    msgflag = True
Else
    timer4.Enabled = False
    msgflag = False
    lblmsg.Visible = False
End If
End Sub
'监控碰撞情况
Private Sub timer3_Timer()
If isCrash Then
    timer1.Enabled = False
    timer2.Enabled = False
    timer3.Enabled = False
    Do
        currentName = InputBox("请问英雄大名?", "记录")
    Loop While currentName = ""
    Form2.Show (vbModal)
    Form2.mysort
End If
End Sub
'跳跃动画
Private Sub timer2_Timer()
    '判断得分
    Dim i&
    score = 0
    For i = 0 To UBound(trs) Step 1
        If trs(i).X2 < dg.X2 Then score = score + 1
    Next i
    lblscore.Caption = "得分 " & score
    '判断得分是否改变
    If score <> scorelast Then
    End If
    lrflag = 0
    '跳跃方向向上0, 方向向下为1
   If jumpflag = 0 And startY <= ScaleHeight / 2 - 200 Then '100为跳跃方向向上时候的跳跃高度
        jumpflag = 1
   ElseIf jumpflag = 1 And startY >= ScaleHeight / 2 Then
        jumpflag = 0
        '中间位置才会向左移动
        If dg.X2 > ScaleWidth / 2 Then
            lrflag = 1
        End If
        timer2.Enabled = False
   End If
   If jumpflag = 1 Then
        startY = startY + 10
   ElseIf jumpflag = 0 Then
        startY = startY - 10
   End If
End Sub
Private Sub timer1_Timer()
Cls
'画地面
Call drawGround
'画龙
If status = 0 Then
    Call dragon1
    status = 1
Else
    Call dragon2
    status = 0
End If
'判断左右前进方向
If lrflag = 0 And dg.X2 > ScaleWidth / 2 Then
    lrflag = 1
ElseIf lrflag = 1 And dg.x1 < 100 Then
    lrflag = 0
End If
If lrflag = 0 Then
    startX = startX + 5
ElseIf lrflag = 1 Then
    startX = startX - 10
End If
'加边框
Call dragonBorder
'树的移动
Dim i&
Dim d&
d = 20
For i = 0 To n Step 1
    trs(i).x1 = trs(i).x1 - d
    trs(i).X2 = trs(i).X2 - d
Next i
'画树
Call drawTree
'云的移动
Dim d2&
d2 = 20
For i = 0 To n Step 1
    cld(i).x1 = cld(i).x1 - d2
    cld(i).X2 = cld(i).X2 - d2
Next i
'画云
Call drawCloud
'根据分数判断是否输出消息
If scorelast > 0 And scorelast Mod 10 = 0 Then
    lblmsg.Caption = "真棒!得到高分!最近已得" & score & "分"
    lblmsg.Left = ScaleWidth / 2 - lblmsg.Width / 2
    timer4.Enabled = True
End If
End Sub
'定位龙边框
Sub dragonBorder()
dg.x1 = startX - 20
dg.Y1 = startY - 2
dg.X2 = dg.x1 + 30
dg.Y2 = dg.Y1 + 55
'Line (dg.X1, dg.Y1)-(dg.X2, dg.Y2), vbRed, B
End Sub
'画云
Sub drawCloud()
Dim i&
For i = 0 To n - 2 Step 1
    Line (cld(i).x1, cld(i).Y1)-(cld(i).X2, cld(i).Y2)
    Line (cld(i + 1).x1, cld(i + 1).Y1)-(cld(i + 1).X2, cld(i + 1).Y2)
    Line (cld(i + 2).x1, cld(i + 2).Y1)-(cld(i + 2).X2, cld(i + 2).Y2)
Next i
End Sub
'画树
Sub drawTree()
    Dim i&
    For i = 0 To n Step 1
        Line (trs(i).x1, trs(i).Y1)-(trs(i).X2, trs(i).Y2), RGB(trs(i).C.R, trs(i).C.G, trs(i).C.B), BF
        '根据分数判断难度
        If scorelast > 10 And scorelast < 30 Then
            Line (trs(i).x1, trs(i).Y1)-(trs(i).X2 + scorelast, trs(i).Y2), RGB(trs(i).C.R, trs(i).C.G, trs(i).C.B), BF
        End If
    Next i
End Sub
'画地面
Sub drawGround()
Line (0, (ScaleHeight / 2) + 30)-(ScaleWidth, (ScaleHeight / 2) + 30)
Dim i&
For i = 0 To 1000 Step 1
    PSet (Int(Rnd * ScaleWidth), (ScaleHeight / 2) + 30 + Int(Rnd * 30))
Next i
End Sub
'碰撞模型,判断龙树是否碰撞
Function isCrash() As Boolean
    isCrash = False
    Dim i&
    For i = 0 To UBound(trs) Step 1
        If dg.X2 >= trs(i).x1 And dg.x1 <= trs(i).X2 _
           And dg.Y2 >= trs(i).Y1 And dg.Y1 <= trs(i).Y2 Then
            isCrash = True
            Exit For
        End If
    Next i
End Function
'龙绘画
Function dragon2()
Line (startX, startY - 1)-(startX + 20, startY + 1), vbBlack, BF
Line (startX - 3, startY + 1)-(startX + 23, startY + 15), vbBlack, BF
'眼睛
DrawWidth = 3
PSet (startX + 5, startY + 5), vbWhite
DrawWidth = 1
Line (startX - 3, startY + 15)-(startX + 10, startY + 19), vbBlack, BF
'嘴巴
Line (startX - 3, startY + 19)-(startX + 20, startY + 20), vbBlack, BF
'身体
Line (startX - 6, startY + 21)-(startX + 10, startY + 22), vbBlack, BF
Line (startX - 9, startY + 23)-(startX + 10, startY + 24), vbBlack, BF
Line (startX - 11, startY + 25)-(startX + 10, startY + 26), vbBlack, BF
'手
Line (startX + 10, startY + 25)-(startX + 16, startY + 26), vbBlack, BF
Line (startX + 16, startY + 26)-(startX + 17, startY + 28), vbBlack, BF
'身体
Line (startX - 14, startY + 26)-(startX + 10, startY + 28), vbBlack, BF
Line (startX - 20, startY + 29)-(startX + 10, startY + 35), vbBlack, BF
'尾巴
Line (startX - 22, startY + 25)-(startX - 20, startY + 34), vbBlack, BF
Line (startX - 24, startY + 23)-(startX - 23, startY + 32), vbBlack, BF
Line (startX - 25, startY + 21)-(startX - 24, startY + 30), vbBlack, BF
Line (startX - 26, startY + 15)-(startX - 25, startY + 28), vbBlack, BF
'身体
Line (startX - 18, startY + 35)-(startX + 8, startY + 37), vbBlack, BF
Line (startX - 16, startY + 38)-(startX + 6, startY + 40), vbBlack, BF
Line (startX - 14, startY + 41)-(startX + 4, startY + 43), vbBlack, BF
Line (startX - 12, startY + 44)-(startX - 4, startY + 45), vbBlack, BF
'脚1
Line (startX - 12, startY + 44)-(startX - 2, startY + 45), vbBlack, BF
Line (startX - 10, startY + 46)-(startX - 7, startY + 47), vbBlack, BF
Line (startX - 8, startY + 48)-(startX - 4, startY + 49), vbBlack, BF
'脚2
Line (startX, startY + 43)-(startX + 1, startY + 44), vbBlack, BF
Line (startX, startY + 44)-(startX + 1, startY + 50), vbBlack, BF
Line (startX + 1, startY + 51)-(startX + 5, startY + 52), vbBlack, BF
End Function
Function dragon1()
Line (startX, startY - 1)-(startX + 20, startY + 1), vbBlack, BF
Line (startX - 3, startY + 1)-(startX + 23, startY + 15), vbBlack, BF
'眼睛
DrawWidth = 3
PSet (startX + 5, startY + 5), vbWhite
DrawWidth = 1
Line (startX - 3, startY + 15)-(startX + 10, startY + 19), vbBlack, BF
'嘴巴
Line (startX - 3, startY + 19)-(startX + 20, startY + 20), vbBlack, BF
'身体
Line (startX - 6, startY + 21)-(startX + 10, startY + 22), vbBlack, BF
Line (startX - 9, startY + 23)-(startX + 10, startY + 24), vbBlack, BF
Line (startX - 11, startY + 25)-(startX + 10, startY + 26), vbBlack, BF
'手
Line (startX + 10, startY + 25)-(startX + 16, startY + 26), vbBlack, BF
Line (startX + 16, startY + 26)-(startX + 17, startY + 28), vbBlack, BF
'身体
Line (startX - 14, startY + 26)-(startX + 10, startY + 28), vbBlack, BF
Line (startX - 20, startY + 29)-(startX + 10, startY + 35), vbBlack, BF
'尾巴
Line (startX - 22, startY + 25)-(startX - 20, startY + 34), vbBlack, BF
Line (startX - 24, startY + 23)-(startX - 23, startY + 32), vbBlack, BF
Line (startX - 25, startY + 21)-(startX - 24, startY + 30), vbBlack, BF
Line (startX - 26, startY + 15)-(startX - 25, startY + 28), vbBlack, BF
'身体
Line (startX - 18, startY + 35)-(startX + 8, startY + 37), vbBlack, BF
Line (startX - 16, startY + 38)-(startX + 6, startY + 40), vbBlack, BF
Line (startX - 14, startY + 41)-(startX + 4, startY + 43), vbBlack, BF
Line (startX - 12, startY + 44)-(startX - 4, startY + 45), vbBlack, BF
'脚1
Line (startX - 12, startY + 44)-(startX - 2, startY + 45), vbBlack, BF
Line (startX - 12, startY + 46)-(startX - 4, startY + 47), vbBlack, BF
Line (startX - 12, startY + 48)-(startX - 6, startY + 49), vbBlack, BF
Line (startX - 12, startY + 50)-(startX - 10, startY + 52), vbBlack, BF
Line (startX - 12, startY + 53)-(startX - 6, startY + 54), vbBlack, BF
'脚2
Line (startX, startY + 43)-(startX + 1, startY + 46), vbBlack, BF
Line (startX, startY + 46)-(startX + 5, startY + 46), vbBlack, BF
End Function

窗体form2的源代码如下:

Private Sub Command1_Click()
Call Form1.init
Form2.Hide
End Sub
Private Sub Form_Activate()
List1.AddItem Form1.currentName
List2.AddItem Form1.score
Command1.SetFocus
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call Form1.init
End Sub
Public Sub mysort()
'排序
Dim i&, j&
For i = 0 To List2.ListCount Step 1
    For j = 0 To List2.ListCount - 2 Step 1
        If Val(List2.List(j)) < Val(List2.List(j + 1)) Then
            Dim t&, s$
            t = List2.List(j)
            List2.List(j) = List2.List(j + 1)
            List2.List(j + 1) = t
            s = List1.List(j)
            List1.List(j) = List1.List(j + 1)
            List1.List(j + 1) = s
        End If
    Next j
Next i
End Sub

相关文章
|
2月前
|
C语言
王桂林C语言从放弃到入门课程
课程目标16天,每天6节课,每节40分钟课堂实录,带你征服C语言,让所有学过和没有学过C语言的人,或是正准备学习C语言的人,找到学习C语言的不二法门。适用人群所有学过和没有学过C语言的人,或是正准备学习C语言的人!
45 2
王桂林C语言从放弃到入门课程
|
21天前
|
存储 设计模式 算法
Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)
Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)
|
2月前
|
Python
Python 潮流周刊第一季完结(1~30)
Python 潮流周刊第一季完结(1~30)
27 2
|
机器学习/深度学习
刘金玉的零基础VB教程029期:累加与累乘案例分析
刘金玉的零基础VB教程029期:累加与累乘案例分析
153 0
刘金玉的零基础VB教程074期:如何使用doevents
刘金玉的零基础VB教程074期:如何使用doevents
刘金玉的零基础VB教程070期:贪吃蛇游戏开发第六节 记分与故障排除
刘金玉的零基础VB教程070期:贪吃蛇游戏开发第六节 记分与故障排除
刘金玉的零基础VB教程077期:回文数可以如此简单?StrReverse函数运用
刘金玉的零基础VB教程077期:回文数可以如此简单?StrReverse函数运用
刘金玉的零基础VB教程028期:文件读写
刘金玉的零基础VB教程028期:文件读写
高职考技能提升教程005期 字母菱形案例 VB语言 刘金玉编程 高考必备信息技术
高职考技能提升教程005期 字母菱形案例 VB语言 刘金玉编程 高考必备信息技术
高职考技能提升教程008期 掷骰子与冒泡排序 VB语言 刘金玉编程
高职考技能提升教程008期 掷骰子与冒泡排序 VB语言 刘金玉编程

热门文章

最新文章