`
Jerry_xin
  • 浏览: 6107 次
社区版块
存档分类
最新评论

基于java刮刮乐,概率和后台均实现

    博客分类:
  • Java
 
阅读更多

package com.sunmo.buz.games.action;

import java.util.Random;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;


public class ScratchAction extends DispatchAction
{

    public ActionForward loadaward(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
    {

        Object obj[] = lottery();
        // 这里自己连接数据
        request.setAttribute("award", obj[0]);
        return mapping.findForward("success");

        /*
         * 如果是JSON格式
*response.setCharacterEncoding("UTF-8");
         * response.getWriter().write(JsonUtils.object2json(obj));
         * response.getWriter().flush(); response.getWriter().close(); return
         * null
         */

    }

    // 抽奖并返回角度和奖项
    public Object[] lottery()
    {
        Object[][] lott = getLunckArray();
        // 概率数组
        Integer obj[] = new Integer[lott.length];
        for (int i = 0; i < lott.length; i++)
        {
            obj[i] = (Integer) lott[i][2];
        }
        Integer prizeId = getRand(obj); // 根据概率获取奖项id
        String msg = (String) lott[prizeId][1];// 提示信息
        return new Object[]
        { prizeId, msg };
    }

    protected static Object[][] getLunckArray()
    {

        Object luckArr[][] = new Object[][]
        {
        { 1, "一等奖", 1 },
        { 2, "二等奖", 2 },
        { 3, "三等奖", 5 },
        { 4, "四等奖", 7 },
        { 5, "五等奖", 10 },
        { 6, "六等奖", 25 },
        { 7, "谢谢惠顾", 50 } };

        return luckArr;
    }

    protected static Integer getRand(Integer obj[])
    {
        Integer result = null;
        int sum = 0;// 概率数组的总概率精度
        for (int i = 0; i < obj.length; i++)
        {
            sum += obj[i];
        }
        for (int i = 0; i < obj.length; i++)
        {
            int randomNum = new Random().nextInt(sum);// 随即生成1到sum的整数
            if (randomNum < obj[i])
            {// 中奖
                result = i;
                break;
            }
            else
            {
                sum -= obj[i];
            }
        }
        return result;
    }

}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java实现刮刮卡大转盘等中奖概率的简单实例

    以上就是使用Java实现刮刮卡和大转盘等中奖概率的基本思路和步骤。在实际项目中,还需要考虑用户体验、性能优化、安全性等方面,以提供稳定、可靠的抽奖系统。在提供的压缩包`test`中,可能包含示例代码或资源文件,...

    java抽奖-大转盘-刮刮乐.zip

    Html 大转盘,刮刮乐,前后台成套产品,值得新手入手。。。。

    大转盘+刮刮卡的实现(JAVA)

    实现了微信公众平台的抽奖、刮刮卡+大转盘(JAVA)

    开发一个刮刮乐的app

    开发一个刮刮乐应用涉及到多个技术领域,主要集中在Java编程语言和Android操作系统上。下面将详细阐述相关的知识点。 首先,我们需要了解的是Java的`Random`类。`Random`是Java提供的一个随机数生成器,它允许我们...

    HTML5后台控制抽奖程序 转盘+刮刮乐

    【HTML5后台控制抽奖程序 转盘+刮刮乐】是一个基于HTML5技术实现的互动抽奖应用,它允许管理员通过后台系统设置不同的中奖概率,以实现更加灵活的活动管理。这个程序集成了转盘和刮刮乐两种常见的抽奖形式,为用户...

    java实现刮刮卡大转盘中奖概率的简单实现

    在Java编程语言中,实现刮刮卡或大转盘这类具有随机中奖概率的功能,主要涉及到以下几个关键知识点: 1. **随机数生成**:在Java中,我们可以使用`java.util.Random`类来生成随机数。这个类提供了各种方法,如`...

    java 后台输出的 抽奖系统

    【标题】"Java后台输出的抽奖系统"是一个简单的程序,主要使用Java编程语言实现,它并不依赖数据库存储用户数据,而是采用静态变量来暂时保存用户的参与信息。这种设计方式适用于小型示例或临时性的抽奖活动,因为...

    利用粤嵌6818开发板实现电子相册,2048小游戏,刮刮乐

    在本项目中,我们将探讨如何利用粤嵌6818开发板进行电子相册、2048小游戏以及刮刮乐应用的实现。这是一份针对C语言初学者的资源,旨在通过实际操作来加深对C语言编程的理解,并且接触嵌入式系统的基本应用。 首先,...

    java 刮刮卡实现代码(包含刮开50%涂层面积才会显示奖品等级)

    在Java编程语言中,实现刮刮卡功能是一项有趣且实用的挑战。刮刮卡通常用于游戏、抽奖或者促销活动中,用户通过刮开一层覆盖物来揭示隐藏的信息,比如奖项等级。这里我们将深入探讨如何利用Java来创建这样一个刮刮卡...

    Unity插件 实现 刮刮卡/刮刮乐 效果

    Unity插件实现刮刮卡/刮刮乐效果是一种在游戏或互动应用中常见的交互功能,它通常用于模拟现实生活中刮开覆盖层以揭示隐藏信息的行为。这款插件因其功能强大和适用广泛而备受关注,尤其适合于开发各种类型的游戏和...

    java刮刮乐大转盘

    本代码是在网上下载后自行整理的,可不用框架,亲测. 适用于微信公众账号;如有问题 请留言!

    自定义view之刮刮乐实现

    在提供的压缩包`CustomGuaGuaLe`中,可能包含了实现刮刮乐效果的源代码,包括`GuaGuaLeView`类的实现、资源文件(如背景图片和颜色值)以及示例项目的布局文件。通过查看这些文件,可以更深入地理解并学习自定义View...

    刮刮乐带后台

    自己写的刮刮乐ASP功能齐全,带后台。绝对能用。自己用过的。

    带后台微信刮刮乐php源码

    带后台微信刮刮乐php源码

    Java 刮刮乐源码

    public class chuangkou { Image img; private String xian="___________________________________________________________________________"; private String jb1name ; private String jb2name ;...

    模拟刮刮乐

    总结来说,模拟刮刮乐是科技进步与彩票业相结合的产物,它利用先进的计算机技术和算法,实现了与实物刮刮乐相似甚至超越的真实体验。在未来,随着虚拟现实、增强现实等技术的发展,模拟刮刮乐可能会带来更加沉浸式的...

    手机移动端H5刮刮乐刮奖插件

    【手机移动端H5刮刮乐刮奖插件】是一种基于HTML5技术的互动抽奖应用,主要应用于手机浏览器或移动端应用程序中。H5技术是HTML5的简称,它是一种超文本标记语言,是网页制作的标准之一,尤其在移动互联网领域得到了...

    html5实现刮刮乐

    在本案例中,我们将探讨如何利用HTML5中的Canvas元素来实现一个刮刮乐效果,该效果既适用于桌面浏览器,也适用于Android和iOS等移动设备。 Canvas是HTML5中一个非常重要的组成部分,它是一个可编程的2D图形渲染区域...

    unity刮刮乐效果工程(包含进度判断)

    这个工程的核心是通过Unity的图形渲染和事件系统来实现刮刮乐的视觉效果,并结合进度判断来实时反馈用户的刮擦状态。 1. **图形渲染**:Unity中的`Mesh Renderer`组件负责将3D模型或者2D纹理显示在屏幕上。在这个...

Global site tag (gtag.js) - Google Analytics