如何用Excel做一个战斗模拟器(三)战斗过程模拟

战斗过程模拟的思路与代码编写
摘要由CSDN通过智能技术生成

如何用Excel做一个战斗模拟器(一)升级经验表
如何用Excel做一个战斗模拟器(二)属性表

定义战斗子过程

在VBE中定义一个战斗子过程,每次战斗开始就调用这个子过程。战斗子过程应包含以下内容:

  • 接收战斗双方的各类属性,如等级、血量、攻击、防御、暴击、闪避;
  • 模拟并输出战斗过程,如人物攻击对怪物造成N点伤害;怪物攻击未命中等;
  • 输出战斗结果,如怪物当前血量0,玩家胜利

明确了需求后,我们就可以开始代码的编写,首先定义子过程,这个子过程是需要参数的。rl代表玩家等级,ml代表怪物等级。因为我们还希望这个模拟器能模拟1V多的战斗以验算我们设定的战斗强度是否成立,所以我们还需要一个num参数传递怪物的数量。具体代码如下

//定义一个战斗的子过程
Sub Fight(rl As Integer, ml As Integer, num As Integer)
……
……
End Sub

接下来战斗过程的代码均书写在这个战斗子过程里

定位战斗双方基础属性

根据rl、ml两个参数,在“人物属性表”与“怪物属性表”中查找战斗双方的属性并定义相关变量用于接收。

'定义一个战斗的子过程
Sub Fight(rl As Integer, ml As Integer, num As Integer)
'定义变量接收人物属性
Dim rolesheet As Worksheet, rhp As Long, ratt As Long, rdef As Long, rblock As Long, rmiss As Long

'定位到人物属性表
Set rolesheet = Worksheets("人物属性表")

'用for循环找到人物属性表中对应等级的人物属性
Dim i As Integer
i = 1

Do While rolesheet.Cells(i, 1) <> ""
    
    '找到玩家等级,开始赋值
    If rolesheet.Cells(i, 1) = rl Then
    
        rhp = rolesheet.Cells(i, 2)
        ratt = rolesheet.Cells(i, 3)
        rdef = rolesheet.Cells(i, 4)
        '暴击属性
        rblock = rolesheet.Cells(i, 5)
        '闪避属性
        rmiss = rolesheet.Cells(i, 6)
        '找到了就立刻跳出循环              
        Exit Do
        
    Else
        
        '若不是玩家等级,继续向下查找
        i = i + 1
        
    End If
    
Loop

'重置变量i以供下一次循环
i = 1

'定义变量接收怪物属性
Dim msheet As Worksheet, mhp As Long, matt As Long, mdef As Long, mblock As Long, mmiss As Long, mallhp As Long

'定位到怪物属性表
Set msheet = Worksheets("怪物属性表")

'用For循环找到怪物属性表中对应等级的怪物属性
Do While msheet.Cells(i, 1) <> ""
    
    '找到怪物等级,开始赋值
    If msheet.Cells(i, 1) = ml Then
    
        mhp = msheet.Cells(i, 2)
        matt = msheet.Cells(i, 3)
        mdef = msheet.Cells(i, 4)
        '暴击属性
        mblock = msheet.Cells(i, 5)
        '闪避属性
        mmiss = msheet.Cells(i, 6)
        
        'MsgBox "怪物的HP为" & mhp
        
        Exit Do
        
    Else
        
        '若不是怪物家等级,继续向下查找
        i = i + 1
        
    End If
    
Loop
End Sub

利用基础属性与战斗公式进行计算

利用双方的基础属性我们可以得到玩家与怪物的伤害、暴击率、闪避率。而我们定义mallhp怪物总血量=单只怪物血量*怪物数量

'定义变量接收玩家与怪物的伤害,暴击率与闪避率
Dim rdam As Long, mdam As Long, rBlockRate As Double, rMissRate As Double, mBlockRate As Double, mMissRate As Double
'计算战斗相关数值
rdam = (ratt - mdef) * 1
mdam 
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel战斗模拟器是一种基于Microsoft Excel软件的应用程序,用于模拟战斗场景和策略。它可以模拟各种战斗场景,包括古代战争、现代冲突和未来科幻世界。 Excel战斗模拟器通过将数据输入到Excel的表格中来模拟战斗。用户可以设定不同的参数,如士兵数量、武器种类、战场地形等,然后通过设置公式和函数来计算战斗的结果。 通过使用Excel战斗模拟器,用户可以进行实时的战斗模拟,并根据不同的策略和变量进行分析和调整。它不仅可以帮助用户深入了解战斗的原理和规律,还可以帮助用户制定更有效的战略和战术。 Excel战斗模拟器的优势之一是它的简单易用性。由于大多数人都熟悉Excel的使用,所以很容易上手并开始模拟战斗。此外,Excel提供了丰富的数据处理和可视化功能,用户可以通过图表、图形和统计数据来更好地理解战斗的结果。 除了个人使用外,Excel战斗模拟器还可以应用于教育和研究领域。教师可以将其用于教学演示,帮助学生理解战斗原理和策略制定。研究人员可以使用它来研究不同战斗场景下的变量和结果,以提供有关战斗决策和战略的可靠数据。 总之,Excel战斗模拟器是一种实用的工具,它通过模拟战斗场景和策略,帮助用户更好地理解和分析战斗。无论是个人使用还是教育研究领域,Excel战斗模拟器都具有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值