当今社会,智能手机的飞速发展。使得可以做到人手一部智能手机。而各种应用层出不穷。

手游(手机游戏)的出现,满足了人们对打发碎片时间的需求。

而在游戏中,宝物升级是最常见的剧情元素之一。而优秀的游戏设计师,在设计宝物升级系统时,要难易适中,要能把用户黏合在自己的游戏中,既不能太难,也不能太简单。那么如何设计宝物升级中的各项参数就是重中之重。

本文重点介绍,给定宝物的设计系统的各项参数,计算宝物升级所需的资源数。

问题:

某宝物初始是0级,现在要升级

从0级升到1级,所需的资源数为1,成功概率为90%,成功升1级,失败还是0级;

从1级升到2级,所需的资源数为2,成功概率为80%,成功升1级,失败降1级,降为0级;

从2级升到3级,所需的资源数为3,成功概率为70%,成功升1级,失败降1级,降为1级;

从3级升到4级,所需的资源数为4,成功概率为60%,成功升1级,失败降1级,降为2级;

从4级升到5级,所需的资源数为5,成功概率为50%,成功升1级,失败降1级,降为3级;

问:某宝物从0级升级到5级,所需要的资源数平均是多少?

定义一个函数F(N,M),M≥N。表示该宝物从N级升级到M级所需的平均资源数。本题中就是计算F(0,5)

很明显

F(N,N)=0;即F(0,0)=0,F(1,1)=0

F(N,M)=F(N,K)+F(K,M),N≤K≤M,F(0,4)=F(0,2)+F(2,4),即F(2,4)=F(0,4)-F(0,2)

用简便表示函数F(N),即F(N)=F(0,N),那么本题就是计算F(5)

定义PN,为从N-1级升到N级的成功的概率

本题中,P1=0.9,P2=0.8,P3=0.7,P4=0.6,P5=0.5

定义LN,为从N-1级升到N级所需的资源数

本题中,N1=1,N2=2,N3=3,N4=4,N5=5

言归正传,下面分析如何计算F(N)

先分析F(1)

从0级升到1级,所需的资源数为L1。其中(1-P1)的会失败,还是停留在0级,这些还是需要从0级升到1级。那么,就有个分析公式

F(1)=L1+(1-P1)×F(1)

F(1)=L1÷P1=1÷0.9=1.111

再分析F(2)

从1级升到2级,所需的资源数为L2。其中(1-P2)的会失败,降级到0级,这些还是需要从0级升到2级。那么,就有个分析公式

F(2)=F(1)+L2+(1-P2)×F(2)

F(2)=(F(1)+L2)÷P2=(1.111+2)÷0.8=3.889

再分析F(3)

从2级升到3级,所需的资源数为L3。其中(1-P3)的会失败,降级到1级,这些还是需要从1级升到3级。那么,就有个分析公式

F(3)=F(2)+L3+(1-P3)×F(1,3)

F(3)=F(2)+L3+(1-P3)×(F(3)-F(1))

F(3)=(F(2)+L3-(1-P3)×F(1))÷P3

F(3)=(3.889+3-(1-0.7)×1.111)÷0.7=9.365

再分析F(4)

从3级升到4级,所需的资源数为L4。其中(1-P4)的会失败,降级到2级,这些还是需要从2级升到4级。那么,就有个分析公式

F(4)=F(3)+L4+(1-P4)×F(2,4)

F(4)=F(3)+L4+(1-P4)×(F(4)-F(2))

F(4)=(F(3)+L4-(1-P4)×F(2))÷P4

F(4)=(9.365+4-(1-0.6)×3.889)÷0.6=19.682

再分析F(5)

从4级升到5级,所需的资源数为L5。其中(1-P5)的会失败,降级到3级,这些还是需要从3级升到5级。那么,就有个分析公式

F(5)=F(4)+L5+(1-P5)×F(3,5)

F(5)=F(4)+L5+(1-P5)×(F(5)-F(3))

F(5)=(F(4)+L5-(1-P5)×F(3))÷P5

F(5)=(19.682+5-(1-0.5)×9.365)÷0.5=39.999

结论是

从0级升到1级,平均所需的资源数为P(1)=1.111

从0级升到2级,平均所需的资源数为P(2)=3.889

从0级升到3级,平均所需的资源数为P(3)=9.365

从0级升到4级,平均所需的资源数为P(4)=19.682

从0级升到5级,平均所需的资源数为P(5)=39.999

下面是通过计算机模拟宝物升级的过程,并做了统计,再求平均数。一共做了五组,每组1000000次。

  理论值 第1组 第2组 第3组 第4组 第5组
P(1) 1.111 1.111 1.111 1.111 1.111 1.111
P(2) 3.889 3.889 3.890 3.890 3.889 3.889
P(3) 9.365 9.367 9.365 9.368 9.363 9.364
P(4) 19.682 19.685 19.690 19.692 19.681 19.682
P(5) 39.999 40.000 40.002 40.001 39.996 39.988

从上表的数据来看,理论值和实际统计值差别不大了。说明我们分析的理论值是合理的。

综述:

F(1)=L1÷P1

F(N)=(F(N-1)+LN-(1-PN)×F(N-2))÷PN,当N≥2时。

再给一题:

某宝物初始是0级,现在要升级

从0级升到1级,所需的资源数为1,成功概率为100%,成功升1级;

从1级升到2级,所需的资源数为2,成功概率为85%,成功升1级,失败不降级;

从2级升到3级,所需的资源数为3,成功概率为75%,成功升1级,失败不降级;

从3级升到4级,所需的资源数为4,成功概率为65%,成功升1级,失败不降级;

从4级升到5级,所需的资源数为5,成功概率为55%,成功升1级,失败降1级,降为3级;

从5级升到6级,所需的资源数为6,成功概率为45%,成功升1级,失败降1级,降为4级;

从6级升到7级,所需的资源数为7,成功概率为35%,成功升1级,失败降1级,降为5级;

从7级升到8级,所需的资源数为8,成功概率为25%,成功升1级,失败降1级,降为6级;

从8级升到9级,所需的资源数为9,成功概率为20%,成功升1级,失败降1级,降为7级;

从9级升到10级,所需的资源数为10,成功概率为15%,成功升1级,失败降1级,降为8级;

问:某宝物从0级升级到10级,所需要的资源数平均是多少?

你的答案是多少?我的答案是7763.564285

转载于:https://www.cnblogs.com/grenet/p/4303266.html

游戏设计中的算法题——计算宝物升级所需的资源数相关推荐

  1. 手把手教你架构3d游戏引擎pdf_游戏开发中的算法

    游戏技术这条路,可深可浅.你可以满足于完成GamePlay玩法层面的东西,你也可以满足于架构和框架设计层面的东西,你也可以醉心于了解某一游戏引擎带来的掌控感.但是,我们不该止步于此,止步与目前所见或所 ...

  2. 人工智能在游戏设计中的应用

    人工智能游戏的快速发展,为计算机游戏产业提供了新的机遇,目前人工智能技术已经成为优秀计算机游戏开发中不可缺少的部分. 这里首先介绍人工智能游戏的概念以及基本的游戏人工智能技术,然后介绍游戏角色的指导与 ...

  3. 斗牛怎么玩法算法_游戏开发中的算法

    游戏技术这条路,可深可浅.你可以满足于完成GamePlay玩法层面的东西,你也可以满足于架构和框架设计层面的东西,你也可以醉心于了解某一游戏引擎带来的掌控感.但是,我们不该止步于此,止步与目前所见或所 ...

  4. Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(

    2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...

  5. vista下载_Vista和视图在游戏设计中的功能

    vista下载 Views in video games are observation points used to highlight a lot of objects into one fram ...

  6. 游戏脚本在移动游戏设计中的作用_游戏设计中道具设计分步解说

    首先 小编姐姐先跪谢我们原画老师 "您辛苦了" 这次给大家带来了 游戏设计中的 道具设计分步解说图 ▼▼▼ 先来看看动态过程图 ▼▼▼ 再看看详细过程图 一 草图构思,参考一些相关 ...

  7. vue列表长度限定_游戏设计中的中英文名称可输入/显示长度规范探究

    大家好,我是游戏交互设计师懒蚂蚁GM~ 我们刚接触一款新游戏时,一般都会创建一个让自己满意的游戏角色,然后将自己的情感和行为映射到这个角色身上,以这个角色的身份去和虚拟的游戏世界进行互动.那么,我们在 ...

  8. 手机社交游戏设计中交互理念的渗透

    文/郑金条 延长玩家与游戏的生命周期 我从游戏设计中了解最多的除了游戏本身的机制效能,就是游戏化概念对其他产品价值及其衍生属性的影响.从本质上讲,游戏所提供的就是虚拟性的服务,而这层服务从用户获得体验 ...

  9. 算法—2,记一个自己的算法题 计算数字k在0到n中的出现的次数,k可能是0~9的一个值

    3 计算数字k在0到n中的出现的次数,k可能是0~9的一个值 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1 ...

最新文章

  1. Array.prototype.map() 、 Array.prototype.reduce()、Array.prototype.filter()
  2. 公司--As Imp的写法
  3. android ImageButton显示本地图片
  4. 【安全漏洞】Resin解析漏洞分析
  5. 斑马Zebra驱动下载
  6. python 数据库查询系统_python查询数据库操作系统
  7. linux学习查看日志命令
  8. el表达式 多条件判断
  9. Java如何将Ftp文件解压_ftp解压工具,ftp解压工具在java环境下配置其连接
  10. 应用内广告帮助乐易实现收入+玩家时长双丰收
  11. 接口测试要测试什么?
  12. 端口 0-65536 TCP和UDP端口的区别
  13. percona mysql 编译参数_Linux 下编译安装 MySQL(Percona Server) 5.6
  14. android webview 跳转到浏览器,Android WebView或手机浏览器打开连接问题解决办法总结...
  15. 小刘同学的第一百五十五篇日记
  16. 单纤双向(Bidi)是如何实现的?会在5G前传中占一席之地吗?
  17. 用批处理文件把.txt后缀的文件全部换成其他后缀文件
  18. Linux信号:SIGCHLD信号和僵尸进程
  19. c语言扫雷游戏计时功能_做游戏,学编程(C语言) 20 扫雷
  20. win10磁盘分区解决方案

热门文章

  1. 使用CXF 2.7.5出现的java.lang.RuntimeException: Cannot create a secure XMLInputFactory错误解决...
  2. CSS基础---日记4
  3. jquery常见获取高度
  4. 网页动画结束判断事件
  5. 《软件架构师的12项修炼》读书笔记-技术之天花板
  6. Lesson_7 上课笔记_1 ----static关键字和导包
  7. ostu进行遥感图像的分割
  8. html5跨域通讯之postMessage的用法
  9. 挺水的一门课,发现全系都过了,就自己挂了,这是一种什么样的感觉呢?
  10. 使用date命令,进行时间戳和日期时间的互转