当前位置: 代码迷 >> J2ME >> 小小代码,揭露游戏的消费。该怎么处理
  详细解决方案

小小代码,揭露游戏的消费。该怎么处理

热度:5916   发布时间:2013-02-25 21:38:11.0
小小代码,揭露游戏的消费。
Java code
package src.com.refine;public class Refine {    /**     * @param args     */    public static void main(String[] args) {        // TODO 自动生成方法存根        getTimesByLever(12);    }    /**     * 获取炼器成功几率 *     */    public static double getSuccess(int    level){        double successPercent=0.00;        if(level==0){successPercent=0.90;}        if(level==1){successPercent=0.80;}        if(level==2){successPercent=0.70;}        if(level==3){successPercent=0.60;}        if(level==4){successPercent=0.55;}        if(level==5){successPercent=0.50;}        if(level==6){successPercent=0.45;}        if(level==7){successPercent=0.40;}        if(level==8){successPercent=0.35;}        if(level==9){successPercent=0.30;}        if(level==10){successPercent=0.25;}        if(level==11){successPercent=0.20;}            if(level==12){successPercent=0.18;}            if(level==13){successPercent=0.15;}            if(level==14){successPercent=0.12;}            if(level==15){successPercent=0.10;}                return successPercent;    }        /**     * 根据精炼等级炼器是否成功     * 返回boolean     */    public static boolean successOrNot(int level){        boolean isOrNot=true;        double successPercent=0.00;        double mathRandom=0.00;        //通过等级获取成功率        successPercent=getSuccess(level);        //随机获取几率        mathRandom=Math.random();        //输出成功几率        System.out.println("成功几率:"+successPercent);        System.out.println("随机数:"+mathRandom);        if(mathRandom<successPercent){            isOrNot=true;        //成功        }else{            isOrNot=false;        }        return isOrNot;    }        /**     * 通过精炼等级获取炼器要达到的次数     * @param lever     */    public static void getTimesByLever(int level){        int times=0;        for (int i = 0; i <= level; i++) {            times=times+1;            System.out.println("当前精炼等级:"+"+"+(i-1));            boolean isOrNot=successOrNot(i);            System.out.println("是否成功:"+isOrNot+"\n");            if(isOrNot==false){                i-=2;                if(i<0){                    i=0;                }            }        }        System.out.println("一共消费: "+times+"   个完毕");        System.out.println("当前精炼等级:"+"+"+level);    }}


修改main中的精炼等级就可以看出到底要话多少钱!
这个直接在控制台输出详细信息。
看看你们都是多少话多少?
不过上边的几率是我自己人为规定了的。
在游戏中可能有很多因素影响这个几率。
(这是诛仙模式。)

------解决方案--------------------------------------------------------
散分贴?
欢迎欢迎
------解决方案--------------------------------------------------------
呵呵,lz好样的。祝你好运
------解决方案--------------------------------------------------------
这不是很正常么?说穿了,游戏最终不就是一堆虚拟数据而已么?
------解决方案--------------------------------------------------------
接。。。。。。
不玩游戏已经很久了
------解决方案--------------------------------------------------------
楼主要优化。。。
if(level==0){successPercent=0.90;return;}

------解决方案--------------------------------------------------------
为什么不switch case或者用公式解决问题,根据等级有个算概率的公式。

游戏主要靠随机,说穿了就是“赌”
------解决方案--------------------------------------------------------
游戏就是这样的 不然你要全部都是百分百 还怎么促进大家消费啊
------解决方案--------------------------------------------------------
优化下
------解决方案--------------------------------------------------------
Java code
    public static double getSuccess(int level)    {        double[] successPercent= new double[]        {            0.90,   /*  0 */            0.80,   /*  1 */            0.70,   /*  2 */            0.60,   /*  3 */            0.55,   /*  4 */            0.50,   /*  5 */            0.45,   /*  6 */            0.40,   /*  7 */            0.35,   /*  8 */            0.30,   /*  9 */            0.25,   /* 10 */            0.20,   /* 11 */            0.18,   /* 12 */            0.15,   /* 13 */            0.12,   /* 14 */            0.10    /* 15 */        };                return (level>=0 && level<successPercent.length) ? successPercent[level] : 0.00;    }
  相关解决方案