zoukankan      html  css  js  c++  java
  • 一个挑战塔游戏问题

      最近在玩某易的《阴阳师》。想到一个挑战塔的小问题。挑战塔有1到10层。战胜层数越高,越容易获取高级物品。那么代码大概怎么写呢?

      简单的举例:第一层有10%的概率获取到1个物品; 第二层概率20%,第三层30% 。。。。。

      最关键是一个公式:  random(1,100) <= level*10  

      下面是代码示例。代码想的还有不同类物品的事宜。看注释~

    package com.randomGame;
    
    import java.util.Random;
    
    /**
     * 从低到高,1-->10层挑战塔。战斗胜利后,有低中高三种战利品。 
     * 挑战塔层数越高,越容易获取高级物品。
     * 3层以上才有中级物品,6层以上才有高级物品
     * 最多的情况是2个低级,1个中级,1个高级,最少有且只有一个低级物品。
     * 
     * random(1,100) <= level*10  层数越大,越容易取得物品
     * @date   2016年9月21日
     *
     */
    public class Game {
    
        public static void main(String[] args) throws InterruptedException {
            for(int i=1; i<=10; i++){
                String logText = "";
                //低级,根据层数,最少1个低级物品。最多2个            
                int result = new Random(System.currentTimeMillis()).nextInt(100);
                int lowCount = 1;
                if(result<=11*i){
                    lowCount++;
                }
                logText += "低级 概率"+11*i+">="+result;
                //Thread.sleep(10);
                //3层以后才有中级
                result = new Random(System.currentTimeMillis()).nextInt(200);
                int middleCount = 0;
                if(i>=3 && result<=11*i){
                    middleCount++;
                }
                logText += "	中级 概率"+11*i+">="+result+"	";            
                //Thread.sleep(10);            
                //6层以后才有高级
                result = new Random(System.currentTimeMillis()).nextInt(300);
                int highCount = 0;
                if(i>=6 && result<=11*i){
                    highCount++;
                }
                logText += "高级 概率"+11*i+">="+result;            
                //System.out.println(logText);
                System.out.println(String.format("挑战第%s层, 低级物品获得%s个,中级物品获得%s个,高级物品获得%s个。
    ", 
                        i,lowCount, middleCount, highCount));
            }
        }
    
    }
  • 相关阅读:
    System.Web.Mvc.HttpPostAttribute vs System.Web.Http.HttpPostAttribute? [duplicate]
    Autofac Exception Summary Autofac异常汇总
    AppBox v1.0 发布了
    [原创]ExtAspNet秘密花园(十一) — 布局概述
    ExtAspNet v3.1.9
    ExtAspNet v3.1.8 发布了
    ExtAspNet 主题赏析 7款 超炫!
    ExtAspNet v3.1.7
    ExtAspNet v3.1.6
    [原创]采用Asp.Net的Forms身份验证时,持久Cookie的过期时间会自动扩展
  • 原文地址:https://www.cnblogs.com/ELMND/p/5892471.html
Copyright © 2011-2022 走看看