2015年12月

Gift:之前所有视频教程源码与授课笔记

以前,出了几套视频教程,虽然视频可以免费观看与下载,但是还是给下载课程源码和授课笔记设置了点门槛(付费30元开个我论坛的VIP),时间都过去这么久了,现在又新开了个博,那么我觉得还是有必要直接在这里免费开放下载。

张卫_JavaSE视频教程2012版课程源码.7z
张卫_JavaSE视频教程2012版所有笔记及图解.7z
张卫_JavaWeb视频教程2012版课程源码.7z
张卫_JavaWeb视频教程2012版所有笔记及图解.7z
张卫_Oracle10G视频教程2012第二版授课笔记.zip
张卫_Struts2.3.4_Hibernate4.1.4_Spring3.1.1视频教程所有笔记及图解.7z

特别说明:张卫_Struts2.3.4_Hibernate4.1.4_Spring3.1.1视频教程课程源码.7z,由于文件较大,65.6M,故不在此直接以附件方式上传,请需要者在评论处留下邮箱,我定期以邮件方式发送。

附视频教程在线观看地址:http://www.chuanke.com/s2747127.html

如何实现游戏中各种排行榜的“实时”更新问题

在做我真正意义上第一个游戏产品时,游戏中有个积分排行榜的功能,当然任何游戏里面都会有排行榜,而且这个排行榜肯定不可能是实时的。BOSS是美术出身,之前也没做过游戏产品,所以就强烈希望不管是有多少玩家,全部都实时更新排行榜,当时给解释了半天,也说了通用做法,但是还是不能完全理解。

在QQ群里面问下网友呢,说Redis的Sorted Set可以完美解决这个问题,但是我认为这个只是把这个排序计算压力转移了而已,没有实际意义,后来想了下,实现一个“伪实时”更新排名不就好了么?于是果断实现之。

关键思路:

  • 维护一个排行榜,定时更新
  • 在当前游戏玩家打破了自己的记录时,拿到自己当前在排行榜中的位置,往前进行二分查找法,找到自己的一个“新的排名”即可

这样一来,给玩家的假象不就是“实时”的了吗?其实大家平常在玩游戏的时候,要是注意仔细观察和思考,这样的“伪实时”方案比比皆是。

印象深刻的笔试题:分解任意整数以质因子相乘的形式

刚毕业时,第一次参加招聘面试的笔试,一道编程题:分解一个整数以质因子相乘的形式,如24=2x2x2x3,100=2x2x5x5。(在纸上手写代码)
我的核心代码:Java Code

public static String resolve(int value) {
    String str = "";
    int temp = value;
    for (int i = 2; i <= Math.sqrt(value);) {
        if (temp % i == 0) {
            temp /= i;
            str += i + "x";
            continue;
        }
        i++;
    }
    return str.substring(0, str.length() - 1);
}

记得当时面试官提了好多次疑问,这样真的可以实现吗?让我有点无语,我也给解释了半天,不过我走之前好像还是没想清楚,所以让我印象深刻。