说说近期开发的一元夺宝新功能,和网易一元夺宝功能类似,大概规则是,每个玩家出一块钱买一个很贵的道具,然后系统会从这些出一块钱购买的玩家中中随机出来一个人获得道具,和网易不一样的是每一组商品次数没有购买完也能开奖。

服务器要做的事注意以下2点:

  • 页面显示的人次数据所有玩家共享,即服务器要保证不会出现购买次数超出上限

  • 活动定开奖或参与人次满立即开奖,这里服务器要考虑的是如何保证不可控因素(如服务器维护,无法定时开奖和刷新商品)不影响到整个活动流程.

一、购买

购买这块主要是保证多个玩家同时购买时不会出现购买次数超出上限的可能,所以每次玩家购买时,我都会先将商品上锁。然而使用锁会导致程序性能低下,这里我做了个简单的优化,把每一个商品作为锁,当某一个商品被锁住时,不影响其他玩家都买别的商品,并且只在同步代码块内处理少量逻辑。 如图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tYJcAa2l-1642242313777)(http://liulongling.github.io/img/in-post/2016-12/1.jpg)] 代码如下:

@Override  public void lock() throws BuyException {  synchronized (item) {  //活动正在开奖  if (item.isOpenLottery())  throw new BuyException(244011);  //宝物剩余人次已不足  if (count > item.remain)  throw new BuyException(244005);  //商品剩余数量减去购买数量  item.remain -= count;  }  }  

二、定时刷新商、开奖

定时的东西大都是是放在一个线程里执行,但线程有可能不会执行它,原因有可能是人为因素的影响、也有可能是系统本身的问题。总之定时执行的东西还是少用为好。假如一开始你的设计是这样:到了开奖时间线程准备执行开奖,但是不巧如果服务器恰好在这个时间内需要重启,重启后将会错过开奖时间导致开奖失败。所以这里这样设计是不行的,那怎么办?既然找到了问题出在定时这块,那么就做一个非定时的开奖逻辑。很简单,只要在刷新商品时,同时保存该商品的开奖时间,下次线程执行时只要当前系统时间大于上一次保存的开奖时间则开奖。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-syJlAps5-1642242313778)(http://liulongling.github.io/img/in-post/2016-12/4.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zf3r9ZUS-1642242313779)(http://liulongling.github.io/img/in-post/2016-12/2.jpg)]

三、说说网易的一元夺宝

我们先来看看网易的一元夺宝规则

  • 1、商品的最后一个号码分配完毕后,将公示截止该时间点本站全部商品的最后50个参与时间;

  • 2、将这50个时间的数值进行求和(得出数值A)(每个时间按时、分、秒、毫秒的顺序组合,如20:15:25.362则为201525362);

  • 3、为保证公平公正公开,系统还会等待一小段时间,取最近下一期中国福利彩票“老时时彩”的揭晓结果(一个五位数值B);

  • 4、(数值A+数值B)除以该商品总需人次得到的余数 + 原始数 10000001,得到最终幸运号码,拥有该幸运号码者,直接获得该商品。

以上规则看似能保证公平的一条是第三条引入第三方的数字参与开奖,但是第三方数字并不能保证庄家不能作弊。比如: 有一组商品提供100个号码,每个号码卖1RMB,假如每件商品的成本是80,利润20 如果庄家用机器人凑数买了20个号码,剩下都是玩家购买的,庄家中奖几率是20%

  • 1、如果是庄家中奖,那么庄家这一组的利润是玩家消费的80RMB

  • 2、如果是玩家中奖,那么庄家亏损20RMB

所以庄家是可以作弊的,但是有一定风险性,既然每组商品都有20RMB利润,商家完全没有作弊的必要!当然我们是没有引入第三方数据参与开奖,是完全可以零风险作弊的,不过我想说的是我们并没有作弊。然而怎么样让玩家相信我们没有作弊,这个策划应该考虑是否像网易那样引入第三方数据参与开奖来让玩家相信。。。

游戏开发笔记(一):一元夺宝相关推荐

  1. 一元夺宝--夺宝模块 开发笔记(一)

    本博客为个人开发笔记,未经本人同意不允许转载! 一.开发思想: 一元夺宝的数据结构中以夺宝实体为主在夺宝实体下挂有商品实体每期夺宝都有一个唯一的id号来进行标记,在所开的每期夺宝中包含有被夺宝的商品. ...

  2. 为什么那么多人想开发一元夺宝类app?

    别拿你的无知和愚蠢,来证明主观的判断! 国人对一切事物具有怀疑的本性是好的, 但是若不建立于科学的分析方法, 那就是愚昧! 身边有朋友玩夺宝投入较多,产出较少,于是向我求助.想从数据分析的角度知道到底 ...

  3. 国内一元夺宝行业兴起 需理性区别对待

    今年是中国接入国际互联网的第22个年头.20多年来,互联网服务的不断创新变革,以前所未有的深度和广度迅速融入社会方方面面,改变着大众的消费和生活方式. 这其中最典型的写照,莫过于电子商务的渗透发展,团 ...

  4. 夺宝观察:从一元夺宝用户的舆论看行业发展

    一个新事物的兴起,往往伴随着争议,无论是之前的P2P还是如今的一元夺宝.这两个都有很多相似之处,一者投资一者购物,并且都有希望获得较大的收益.两者都是新兴事物,在短时间内崛起,但是又因为缺乏法律法规的 ...

  5. 数字货币一元夺宝系统:赋予平台代币新价值

    区块链技术迅速走进了大众视野,其价值已经被越来越多的人所肯定,包括各大行业巨头和各国政府.在比特币之后,也已诞生了上千种以区块链为底层技术的数字货币. 在这一场极具革新性和颠覆力的浪潮中,各国政府在监 ...

  6. 【程序哥】分析 网易一元夺宝是否有作弊空间,真像媒体所说的吗?

    最近网易 一元购 报道了不好负面消息.有人去网易大楼维权,咱先不说一元购的道德法律是层面.就从技术方面分析一下,一元购真像媒体所说的吗?是否有作假的空间. 网易1元夺宝的中奖机制公平吗? 在网易一元夺 ...

  7. 一元夺宝的2种押注策略分析

    前言 京东和网易上都有一元夺宝的游戏,押注方式有两种:一种是单次多买几注:另一种是每次买一注,多参加几次,直到买中停止.那么哪一种方式的中奖概率更大一些呢?请看下面的分析: 场景:商品A需要1000人 ...

  8. 高并发秒杀系统架构设计 · 抢购、微信红包、一元夺宝

    秒杀业务与难点 秒杀业务在各业务中已然非常流行,这里我将互联网行业中的秒杀定义为:在非常短的时间内,将一件商品分成多份进行购买的行为.微信抢红包..双11大促等业务本质上都可视作秒杀业务.而最近大热的 ...

  9. 从零开始游戏开发笔记(0):前期准备

    从零开始游戏开发笔记(0):前期准备(持续更新中) 一.开发软件 1.1 游戏引擎 1.2 美工软件 1.3 音乐软件 1.4 插件 二.教程.素材 1.1 学习教程 1.2 素材网站 三.其他技能 ...

最新文章

  1. 计算机网络的性能指标和非性能特征
  2. pytorch 实现openpose
  3. matlab学习札记.20210122
  4. Matlab读取点云数据显示
  5. 被惊艳到了!适用 Win、Mac、Linux,酷炫的极客界面 eDEX-UI
  6. OPPO尝鲜android版本更新,安卓11迎来四大贴心升级,OPPO小米率先尝鲜
  7. LiveVideoStackCon讲师热身分享 ( 十三 ) —— Intel QSV技术在FFmpeg中的实现与使用
  8. red hat安装宝塔_只需几分钟即可安装Red Hat Container Development Kit(视频)
  9. css 隐藏元素 显示元素_使用CSS打印时如何隐藏元素?
  10. centos linux服务器优化之系统服务优化
  11. IOS开发之Post 方式获取服务器数据
  12. 负载均衡技术沙龙2期圆满结束(现场图文、PPT)
  13. 投资人教你怎么写能拿到钱的商业计划书
  14. c语言music算法,PROJECT:以music算法为基础的几种DOA算法的研究及性能分析
  15. 汇编语言——伪指令和汇编指令详解
  16. 如何做好手机APP测试?APP测试流程及解决方案
  17. 开天辟地第一人---盘古
  18. 什么是模式识别,对抗学习是什么?
  19. 如何将您的智能手机用作Amazon Fire TV遥控器
  20. 智能家居论文文献_智能家居控制系统界面设计结论与参考文献

热门文章

  1. 义乌中级职称还用计算机吗,2021浙江职称,杭州职称,义乌职称评审改了哪些方面?别走弯路!...
  2. URL 重写模块导致 IIS7 应用程序池自动关闭
  3. 众筹网站项目第七天之用户角色分配(1)
  4. 安卓 jni 开发错误 undefined reference to __android_log_print
  5. 2022-2027年中国车载移动电视行业发展监测及投资战略研究报告
  6. 【小程序项目分享】闲置车位共享小程序
  7. 今天发发牢骚,没有营养的文章
  8. python exercise string之一常规操作
  9. 程序员面对产品提出的不合理需求,你们会怎么办?
  10. 【Gym 102893 L】The Firm Knapsack Problem (贪心)