1.首先他们问了我简历上的项目。 我做了一个小游戏DEMO,面试官重点关注这个。
2.询问我的手术情况。 如果我大一的时候被问到这部分,我应该能够回答。 我大三就已经降级了。 。
我先写一段代码来计算一个 int 二进制中有多少个 1。 我写了一个最简单的,一点一点计数的。
然后他问我是否可以直接去掉每个循环中最低的1。 他还表示,这个方法非常巧妙,如果他以前没有做过,很难想象。 我很困惑。 当我被提示减去一时,我恍然大悟。
问完这个问题,面试官说还有一种暴力查表的方法,显然要占用2^32,4G内存。 他问我有没有办法改变时间和空间,大大缩小桌子的大小。 一听这话,我的思绪立刻就飘到了树形结构上程序开发,想了半天也想不出什么来。 面试官提醒了我int在内存中是如何存储的,然后我才知道int是4个字节。 面试官大概是觉得我太擅长了,所以面试官安慰我说4个字节就已经不错了。 有些人甚至不知道这一点。 。
3、最后我来分析一个网络游戏,玩家A给玩家B一个物品。 该过程大致分为几个步骤。 顺序应该是A向服务器发送请求、服务器验证、服务器执行、服务器向两个客户端发送同步信息。 然后我被要求详细分析每一步,包括消息应该包含哪些信息。 因为我没有网络游戏开发的实际经验,所以只能凭感觉胡说八道。 。
最烦人的是服务器执行阶段阿里游戏开发,因为A减项、B加项无法原子化,执行过程中服务器可能挂掉。 我问我这两个操作哪个顺序更好。 面试官引导我思考玩家和游戏之间的关系。 我以为如果A先被扣了,然后服务器挂了阿里游戏开发,B就拿不到了,玩家就输了。 这样玩家肯定会很受欢迎,所以最好先加B,让玩家赚钱。 如果出了问题,对公关来说会更好。 结果面试官告诉我,赔钱的玩家肯定会抱怨游戏策划,这样赔偿和问题就能立刻解决,但赚钱的玩家不一定会抱怨。 等到BUG大规模出现的时候,游戏中就已经出现了大量的副本,经济就会崩溃。 。 。
总结一下,一方面是我太擅长了,另一方面也许他们想要的是有一定具体开发经验并且可以立即工作的人。 像我这样一个没有经验的学生还需要提高。 。 。
文章来源:https://www.nowcoder.com/discuss/353155027483172864?urlSource=sitemap