网易游戏游戏开发工程师与游戏测试面试题Word格式.doc
《网易游戏游戏开发工程师与游戏测试面试题Word格式.doc》由会员分享,可在线阅读,更多相关《网易游戏游戏开发工程师与游戏测试面试题Word格式.doc(7页珍藏版)》请在冰点文库上搜索。
括号内为李氏夫妇的次数
从8看起,那个人肯定和另外的8人握手,否则没有8次,而且他的配偶肯定是7次,否则不可能有8次握手的人.(X表示已计算的握手)
第一次:
X7
54
32
10
(11)
第二次:
XX
00
(22)
第三次:
X3
(33)
第四次:
(44)
所以李先生和李太太都握手了4次.
3.几何题如图,两圆交于AB两点,由A作直线交于两圆于CD,问CD何时最长?
并证明.提示:
相同弧段的圆周角是圆心角一半
感谢影子情人提供解法…
答案是让AB和CD垂直,这样BD和CB是两个直角三角形的斜边…提示可知道是直径…得整….
4.假设一副扑克牌只有A,2,3,4,5,6六张,且每张有任意多张,没有不同花型(即没有桃心梅方),用PQRST表示不同的牌面,计算下列概率,并排顺序
PQRST,PPQRS,PPQQR,PPPQR,PPPPR,PPPPP,PPPQQ
大概解法:
概率里面的什么分子分母实在懒得打,我还用几次方和阶乘表示了相对关系,这样比较容易看,不要用大学的概率统计公式,直接用高中生想法,很容易求解.
注意,每种牌的数量不限制,所以去除某种特定牌的概率是1/6,但是取出第一张任意牌的概率是6/6,同理第二张不同牌的概率是5/6,所以第一个概率是6!
/6^5然后乘以6,因为有六种取法,C65嘛等于C61,也就是6!
/6^4
后面的也差不多,顺便说一下,5张一样的好难啊,竟然只有6/6^5,也就是1/1296,呵呵,要珍惜炸弹啊.然后乘以C61,也就是6/6^4
5已知二叉树的先序和中序遍历字符串,编程实现输出后序遍历字符串,如果没有成功输出Failed,最后分析时间和空间复杂度
这是标准的ACM2255题,NOIp和NOI中也有一样的题目,很经典的.我也提供一下网上的标准答案,懒得打了.时间复杂度是2的n次方吧…我感觉是的,没有空间消耗,除了栈的开辟消耗空间.
#include<
iostream>
string>
usingnamespacestd;
voidPrintPostOrder(conststring&
preorder,conststring&
inorder,intstart1,intstart2,intsize){
if(size==1)
{
cout<
<
preorder[start1];
return;
}
if(size==0)
inti=inorder.find(preorder[start1]);
PrintPostOrder(preorder,inorder,start1+1,start2,i-start2);
PrintPostOrder(preorder,inorder,start1+1+i-start2,start2+1+i-start2,size-i+start2-1);
intmain(void)
stringpreorder,inorder;
while(cin>
>
preorder>
inorder)
PrintPostOrder(preorder,inorder,0,0,preorder.size());
endl;
游戏测试
一位游戏业HR给出了一份招聘游戏测试的题,觉得挺有趣,有必要拿来分享一下。
顺便让各位看观了解一下游戏测试是个什么活。
测试面试题
程序部门按照如下需求文档,设计了一个游戏程序:
用面向对象的思想,设计一个简单的游戏框架。
程序需求如下:
1.用命令行模式实现,不需要界面
2.游戏世界中,存在5个房间:
A、B、C、D、E。
有些房间之间存在连通性(从一个房间所能到达的另一个房间),而有些房间之间则不存在。
具体如下:
双向:
A<
->
B、A<
C、C<
D、单向:
D->
A、D->
E、E->
B
3.玩家可以控制角色从一个房间走到另一个房间(敲入命令gotoA,则进入A房间),每次只能走一步路径。
起始房间为A
每次进入房间,需要列出下一步可进入的房间。
例如:
在房间C敲入:
gotoD,会列出:
A
E
C
4.每个房间里存在不同的NPC,NPC具有名称,玩家进入一个房间后,需要列出该房间的所有NPC名称。
A房间:
无
B房间:
杂货商、渔民
C房间:
武器商
D房间:
防具商
E房间:
大海龟、海猫猫
5.NPC具有简单的对话功能,敲入talkNPC名称,则可以看到NPC所说的话。
对话内容可自行设计。
扩展需求1
玩家拥有金钱和背包,初始金钱为100,背包中有5个格子,每个格子中可以放下一个物品。
初始物品为“回城符”、“小刀”
扩展需求2
其中的一些NPC具有交易功能,玩家可以将自己身上的物品交易给NPC以获得金钱、或者通过身上的金钱购买物品。
杂货商:
出售蜡烛(20)、小刀(30)、回城符(10)
渔民:
出售鱼肉(10)
武器商:
出售乌木剑(50)
防具商:
出售木盾(40)
括号里的表示出售价格,同时也是收购价格。
打命令“shopNPC名称”可以列出该NPC所出售的物品和价格
打命令“buyNPC名称物品名称”可购买物品
打命令“sellNPC名称物品名称”可出售物品
打命令item可以列出自己背包中的物品。
背包满的情况下,不允许再买入物品,并提示“背包满”。
阅读文档时间为1小时,阅读文档完毕后请在2小时内完成如下题目:
1,
请为按照文档画出五个房间和他们之间的路径和方向;
2,
按照文档说明和,填写下表
Startroom
Input
Output
示例A
GotoA
B,C
A
GotoB
GotoC
GotoD
GotoE
GotoA
C
D
E
3,
针对扩展需求1和2,测试背包功能,描述你的测试思路和方法。
一道AS3面试题的解答
题目:
对一批编号为1-100全部开关朝上(开)的灯进行以下操作:
开关编号凡是1的倍数反方向拨一次开关;
若该编号也是2的倍数反方向又拨一次开关;
若该编号又是3的倍数反方向又拨一次开关……以此类推一直计算到100为止。
目的:
请trace出经过反复开关操作后所有关闭的灯的开关编号。
这是我写给大家看的易懂版本:
var
n:
int,
m:
int;
range:
int
=
100;
for(var
i:
1;
i
range;
++){
n
while(true){
if(n
/
n){
break;
}
if(i
%
==
0){
trace("
结果"
i);
++;
下面是写着玩的缩写版本,不过正常写项目代码,我不会这样干的,在这儿只是娱乐一下而已。
下面这段代码想玩就看看,不想玩的看上面就行了,判断原理是一样,没区别!
1,
1000;
+=
1){
while(n
0)
?
0
:
!
(i
n)
-1
+
1
-1)
我将range都改成100000后,第一种方法耗时7233毫秒,第二种缩减的写法耗时1840毫秒。
对于易读易懂,你会选择那种方法呢?
对于暗泪同学的回复,下面增加一点内容:
其实上面写的是正常算法,如果2亿次,通过分析题目,可以得出只要该数能被开平方时,就是关闭状态,因此这道题目如果是写在项目里面,可以这样写:
1000000000;
num:
Math.pow(range,0.5);
num;
i
*
i)
我测试过10亿次的效率,仅需要6毫秒~何其快啊!