日期:2014-05-20  浏览次数:20683 次

小小代码,揭露游戏的消费。
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;
    }