游戏开发论坛

 找回密码
 立即注册
搜索
楼主: qzjojo

[原创] 策划如何用VBA调试游戏数值

  [复制链接]

0

主题

17

帖子

194

积分

注册会员

Rank: 2

积分
194
发表于 2016-2-25 10:34:01 | 显示全部楼层
VBA新手学到了不少,支持

0

主题

4

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2016-6-27 23:50:49 | 显示全部楼层
感谢分享,试了一下,代码中有几处错误,顺便优化了一点点
SumExp以及N的初始值设置不对,导致有时候明明命中了,但是并没有统计到。以及第一次必定命中的bug

下附优化后的代码,个人比较喜欢这种,留下位置加上列明后更加清晰:
Sub 按钮1_Click()
SumExp = 0 '总支出
SumInc = 0 '总收入

Per = 0.1  '击杀率

Gold = 10 '掉落金币

M = 14 '悲情值
N = 14

ap = 0 '实时调整概率
apUp = 0.05  '限制最高几率
apDown = -0.05  '限制最低几率

apt = 3 '概率调整步长

For i = 1 To 1000 '模拟次数
    If Rnd < (Per + ap) Then  '子弹击杀了怪物
    SumInc = SumInc + 1 '收入加起来
    Sheet1.Cells(i + 1, 5).Value = 1
    N = M '重置悲情值
    Else  '子弹未击杀怪物
    Sheet1.Cells(i + 1, 5).Value = 0
    N = N - 1
    Sheet1.Cells(i + 1, 6).Value = N '打印出悲情值
        If N <= 0 Then
        SumInc = SumInc + 1
        N = M '重置悲情值
        End If
    End If
   

SumExp = SumExp + 1 '支出加起来
Sheet1.Cells(i + 1, 2).Value = SumExp '打印支出数值
Sheet1.Cells(i + 1, 3).Value = SumInc * Gold '打印收入数值
Sheet1.Cells(i + 1, 4).Value = SumInc * Gold - SumExp '打印纯收益数值

    If i Mod apt = 0 Then   '每隔apt炮调整一次概率
        Select Case (SumInc * Gold - SumExp) / SumExp   '根据收益调整几率
        
            Case Is <= 0
                                ap = ap + 0.01 '收入过低,提高概率
            Case Is > 0
                                ap = ap - 0.01 '收入过高,降低概率
        End Select
        Select Case ap      '调整概率不超过上下限
            Case Is >= apUp
                                ap = apUp
            Case Is < apDown
                                ap = apDown
        End Select
    End If

Sheet1.Cells(i + 1, 7).Value = ap + Per '打印概率的变化情况

Next
End Sub
Sub Sheet1_按钮1_Click()

End Sub

22

主题

105

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
发表于 2016-6-28 07:47:58 | 显示全部楼层
要论vba的话,我相信没几个人能够超过我吧~
【但是,我能坚持说VBA没用么?】

0

主题

20

帖子

1179

积分

金牌会员

Rank: 6Rank: 6

积分
1179
发表于 2016-6-30 11:45:09 | 显示全部楼层
做了2年多数值,用不上VBA。。。

0

主题

3

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2016-7-1 16:33:03 | 显示全部楼层
谢谢分享

0

主题

1

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2016-7-4 00:26:42 | 显示全部楼层
谢谢作者,很有用~!

1

主题

11

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2016-7-5 16:37:43 | 显示全部楼层
感谢楼主。干货!

11

主题

27

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
 楼主| 发表于 2016-7-7 15:24:01 | 显示全部楼层
VictorCqs 发表于 2016-6-27 23:50
感谢分享,试了一下,代码中有几处错误,顺便优化了一点点
SumExp以及N的初始值设置不对,导致有时候明明命 ...

赞一个

6

主题

22

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2016-7-8 13:20:17 | 显示全部楼层
感谢楼主分享,很不错的vba新手教学贴
有兴趣讨论数值和VBA的朋友可以加群:564663199


1

主题

18

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2016-7-11 22:51:34 | 显示全部楼层
简单易懂,比较适合我啊,谢谢楼主
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-26 11:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表