vba类与对象——石头剪刀布

大家好,今天要和大家来做一个小游戏的示例。

我们先来看一下运行效果

 

 

 

没错,今天我们要做一个猜拳小游戏

 

那下去我们来看一下怎么来制作这个小游戏

01、创建窗体

 

参照下面的表格与图表,在窗体上添加对的控件,可以适当的调整一下

控件

控件名称

属性

标签

 

标题改成“你出:”

标签

 

标题改成“电脑出:”

标签

lblUser

 

标签

lblComputer

 

标签

lblResult

标题改成“结果”

按钮

btnST

标题改成“石头”

按钮

btnJD

标题改成“剪刀”

按钮

btnB

标题改成“布”

02、添加代码

这次我换个另类的方法,我们来写几个类,通过调用类来实现我们需要的功能。

第一个类,用户类,用于用户出拳

Option Compare Database
Option Explicit

Private strFistName As String
Public Property Get FistName() As String
    FistName = strFistName
End Property

Public Function ShowFist(fist As StringAs String
    strFistName = fist
    Select Case fist
    Case "石头"
        ShowFist = 1
    Case "剪刀"
        ShowFist = 2
    Case "布"
        ShowFist = 3
    End Select
End Function

第二个类,电脑类,用于电脑出拳

Option Compare Database
Option Explicit
Private strFistName As String

Public Property Get FistName() As String
    FistName = strFistName
End Property

Public Function ShowFist() As Integer
    Dim r As Integer
    Randomize
    r = Int((3 * Rnd) + 1)
    Select Case r
    Case 1
        strFistName = "石头"
    Case 2
        strFistName = "剪刀"
    Case 3
        strFistName = "布"

    End Select

    ShowFist = r
End Function

第三个类,裁判类,用于对出拳的结果进行判断

Option Compare Database
Option Explicit

Public Function IsUserWin(user As Integer, computer As IntegerAs String
    If user - computer = 0 Then
        IsUserWin = "平局~~~"
    ElseIf user - computer = -1 Or user - computer = 2 Then
         IsUserWin = "你居然赢了…"
    Else
        IsUserWin = "你真菜,你输了!!!"
    End If
End Function

窗体中的代码

Private Sub btnB_Click()
btn Me.btnB.Caption
End Sub

Private Sub btnJD_Click()
btn Me.btnJD.Caption
End Sub

Private Sub btnST_Click()

btn Me.btnST.Caption

End Sub

Private Function btn(strCaption As String)

    Dim ul As New UserPlay
    Dim userFist As Integer
    Dim pc As New ComputerUser
    Dim computerFist As Integer


    userFist = ul.ShowFist(strCaption)
    Me.lblUser.Caption = ul.FistName

    computerFist = pc.ShowFist()
    Me.lblComputer.Caption = pc.FistName

    Dim cp As New CaiPan
    Me.lblResult.Caption = cp.IsUserWin(userFist, computerFist)
End Function

Private Sub Form_Load()
    Me.lblUser.Caption = ""
    Me.lblComputer.Caption = ""
    Me.lblResult.Caption = ""
End Sub

03、运行测试

最后一步就是来运行测试一下

知识点

这里主要的知识点是关于类操作,在面向对象的开发中,自定义类是很常规的操作,关于类的一些特点,像封装、继承、多态大家可以去了解一下,这里我们就不太深入的讲解了。

另外,大家可以关注我的B站,Access开发视频首发都在我的B站:易登Edon,UID10580232

posted @   edonsoft  阅读(23)  评论(0编辑  收藏  举报  
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示