吉比特秋招游戏开发复试 2023.10.19

1、询问之前的游戏demo,讲解具体逻辑,框架逻辑、查看代码量。

2、你的游戏逻辑所有小人是同步移动的,这样会显得很呆板,不能做成非同步移动吗?

答:可以做成,仅仅只需要把移动逻辑改到每个小人自己的tick上就行,现在这么做是因为本来想做的就是个自走棋还原,自走棋本身是同时移动的(云顶)

3、假如地图上有n个小人,地图大小m*m,每个小人需要寻找到周围最近的小人,设计一个算法。

答:第一瞬间想到了bfs,然后面试官询问这是最好的算法吗,我回答不是,又举了个可以遍历小人坐标,而不是点坐标,同时小人坐标还可以根据一定的规律进行聚类,实现小人坐标内的局部bfs(说的话有点狗屎,但其实意思也没太错,本质上可以对小人坐标按x、y轴进行排序,然后寻找离自己index最近的几个小人。

4、如果用bfs你的时间复杂度是多少?

答:n*mlogm(算的狗屎),标准答案应该是n*m*m(?)不过我自己感觉 由于仅仅只是搜到自己最近的节点,最坏情况下,节点均匀分布(总之就是节点没有全部在一个地方打堆堆),时间复杂度为n*(m/n)*(m/n) = m^2/n ?? (m/n是指每个点和另一个点的平均距离,按照一个圆来分布,近似成矩形(近似成矩形应该也只是常量级的减少,大概),所以每个点的搜索次数都应该是(m/n)*(m/n),所以n个就是m^2/n。(有大佬能回答不?)

4、询问之前的两个项目以及论文。

5、看你之前项目里有做雷达,问你一个雷达相关的问题吧(感觉这问题跟雷达毫不相关),一个物体在屏幕坐标中的深度为z,还原他的世界坐标。

答:用该点先乘以viewpoint矩阵的逆,再乘以vp矩阵的逆。(对吗?,感觉是那么回事,但是好像挺奇怪)

6、两个class互相依赖,那么该怎么解决?

答:把前向声明的概念说出来了,但是忘了这概念的名字,面试官问我:你说的是前向声明吗?

7、那按你来做你会这样做吗?

答:不会,因为这样做,万一后续没有实现class b,就会能通过编译 但无法执行。我会为这两个class实现互相访问的接口。面试官问:是指再class a中实现访问class b的接口,在class b中实现访问class a的接口吗?(我回答了是,我是傻逼)

8、手撕题:先有n个任务,这些任务互相存在依赖问题,比如4号任务可能依赖于1、2、3号,3依赖于1、2,现在你要按照依赖关系对其输出(把不被依赖的放前面)

时间用了很长,面试官都说我有点长,但最后幸好还是写出来了,首先把任务从一个任务对应它的依赖任务(即4:1、2、3,4依赖于1、2、3),转化成一个任务对应被依赖任务(转化为1:3、4,3依赖于1,4也依赖于1),然后直接按照被依赖任务的个数进行排列,最后输出排列结果的index就行。

9、好像还问了问网络相关的,但是具体忘了。

结果:进hr面了

全部评论
楼主深圳还是厦门哇?hr面问了什么能分享一下嘛
点赞 回复 分享
发布于 2023-10-25 00:59 广东

相关推荐

华为 终端鸿蒙 30w
点赞 评论 收藏
分享
2 10 评论
分享
牛客网
牛客企业服务