论坛首页 入门技术论坛

网易的积分规则的算法

浏览 1873 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-10   最后修改:2009-07-11

网站要实现实现QQ那样的升级,即一级一颗星星,四级一个月亮,4个月亮(16级)一个太阳。若是单纯固定的每一级对应多少积分,则很容易就会达到4个太阳。发现网易的积分制度很有趣,不是单纯的固定多少分升级,而是级别愈高,升级愈难,用Excel分析后,得到了一些公式:每一级别都比上一级多7X,X初始值是4,每高一级,自增2,如图:

网易的积分规则

 

public class CountUserGrade {
	final static int INCREMENT = 2;
	final static int PARAMETER = 4;
	
	final static String CLASS_Z = "<img border='0' src='/common/style/images/class0.png' width='16' height='16'>";
	final static String CLASS_A = "<img border='0' src='/common/style/images/class1.png' width='16' height='16'>";
	final static String CLASS_B = "<img border='0' src='/common/style/images/class2.png' width='16' height='16'>";
	final static String CLASS_C = "<img border='0' src='/common/style/images/class3.png' width='16' height='16'>";
	final static String CLASS_D = "<img border='0' src='/common/style/images/class4.png' width='16' height='16'>";

	/**
	 * 根据用户的参考积分(荣誉值)计算用户等级
	 * */
	public static int countgrade(int glory) {
		int grade = 0;
		int k = 0;
		int j = INCREMENT;
		for(grade = 0; grade < 65; grade++){
			j += INCREMENT;
			k = k + PARAMETER * j;
			if(k > glory)
				break;
		}
		return grade;
	}

	/**
	 * 根据用户的等级显示图片
	 * */
	public static String setpic(String grade) {
		String pic = "";
		int g = Integer.parseInt(grade);
		
		if(g >= 64){
			pic = CLASS_D;
			return pic;
		}
		
		if(g <= 0){
			pic = CLASS_Z;
			return pic;
		}
		
		int c = g / 16;
		if(c > 0) {
			for(int i = 0; i < c; i++) {
				pic = pic + CLASS_C;
			}
		}
		
		int bg = g % 16;
		int b = bg / 4;
		if(b > 0) {
			for(int i = 0; i < b; i++) {
				pic = pic + CLASS_B;
			}
		}	

		int a = g % 4;
		if(a > 0) {
			for(int i = 0; i < a; i++) {
				pic = pic + CLASS_A;
			}
		}
		
		return pic;
	}

}

 

说明:1.这里的积分是参考积分(荣誉值),参考积分与积分一块儿增加,当发生扣积分的情况时,参考积分并不扣除,它将作为级别的计算参照。

2.我这里的步进(INCREMENT)为2,倍数(PARAMETER)为4,一个太阳等于4个月亮,一个月亮等于4个星星;0级为灰色的星星,最大级别为64,超过64级用另一种图标标识,类似JE的“资深会员”。

3.附件的excel里面有推算公式,关于“步进”、“倍数”表格里有解释。

  • 163.zip (19.9 KB)
  • 下载次数: 15
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics