网易游戏游戏开发工程师与游戏测试面试题教学内容.docx

上传人:b****3 文档编号:1928225 上传时间:2022-10-25 格式:DOCX 页数:9 大小:23.09KB
下载 相关 举报
网易游戏游戏开发工程师与游戏测试面试题教学内容.docx_第1页
第1页 / 共9页
网易游戏游戏开发工程师与游戏测试面试题教学内容.docx_第2页
第2页 / 共9页
网易游戏游戏开发工程师与游戏测试面试题教学内容.docx_第3页
第3页 / 共9页
网易游戏游戏开发工程师与游戏测试面试题教学内容.docx_第4页
第4页 / 共9页
网易游戏游戏开发工程师与游戏测试面试题教学内容.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

网易游戏游戏开发工程师与游戏测试面试题教学内容.docx

《网易游戏游戏开发工程师与游戏测试面试题教学内容.docx》由会员分享,可在线阅读,更多相关《网易游戏游戏开发工程师与游戏测试面试题教学内容.docx(9页珍藏版)》请在冰豆网上搜索。

网易游戏游戏开发工程师与游戏测试面试题教学内容.docx

网易游戏游戏开发工程师与游戏测试面试题教学内容

网易游戏游戏开发工程师

1.一次考试,有25人参加,有ABC三题,每人至少会做一题,在不会做A的人中,会做B的人是会做C的人的两倍,在会做A的人中,只会做A的人比其他的少一人,不会做A的人和只会做A的人数相等,问只会做B的有几人?

解:

设绿色加白色为X  紫色加白色为X/2  白色为Z  红色为Y  蓝色为Y+1

所以由条件可得X+0.5X-Z+2Y+1=25    X+0.5X-Z=Y  故3X=16+2Z当且仅当Z=4,X=8时为整数解,故题目答案为X-Z=4人或以下三组解:

Z=1,X=6;  Z=7,X=10;  Z=10,X=12;

2.李氏夫妇请4对夫妇来家吃饭,已知每人不和自己和配偶握手,每人至少握手一次,不重复和人握手,李先生最后一问每人握手次数都不一样,问李太太握手几次...

解:

既然每人次数不同,就说明有1到8八种次数,每人一种.

初始:

87  65  43  21  (00)  括号内为李氏夫妇的次数

    从8看起,那个人肯定和另外的8人握手,否则没有8次,而且他的配偶肯定是7次,否则不可能有8次握手的人.(X表示已计算的握手)

第一次:

X7  54  32  10  (11)

第二次:

XX  43  21  00  (22)

第三次:

XX  X3  10  00  (33)

第四次:

XX  XX  00  00  (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

#include

usingnamespacestd;

voidPrintPostOrder(conststring&preorder,conststring&inorder,intstart1,intstart2,intsize){

if(size==1)

{

cout<

return;

}

if(size==0)

return;

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);

cout<

}

intmain(void)

{

stringpreorder,inorder;

while(cin>>preorder>>inorder)

{

PrintPostOrder(preorder,inorder,0,0,preorder.size());

cout<

}

}

游戏测试

 

一位游戏业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

 

A

GotoC

 

A

GotoD

 

A

GotoE

 

B

GotoA

 

B

GotoB

 

B

GotoC

 

B

GotoD

 

B

GotoE

 

C

GotoA

 

C

GotoB

 

C

GotoC

 

C

GotoD

 

C

GotoE

 

D

GotoA

 

D

GotoB

 

D

GotoC

 

D

GotoD

 

D

GotoE

 

E

GotoA

 

E

GotoB

 

E

GotoC

 

E

GotoD

 

E

GotoE

 

        3, 针对扩展需求1和2,测试背包功能,描述你的测试思路和方法。

一道AS3面试题的解答

题目:

对一批编号为1-100全部开关朝上(开)的灯进行以下操作:

开关编号凡是1的倍数反方向拨一次开关;若该编号也是2的倍数反方向又拨一次开关;若该编号又是3的倍数反方向又拨一次开关……以此类推一直计算到100为止。

目的:

请trace出经过反复开关操作后所有关闭的灯的开关编号。

这是我写给大家看的易懂版本:

var n:

int, m:

int;

var range:

int = 100;

for(var i:

int = 1; i <= range; i ++){

  n = 1;

  while(true){

    if(n > i / n){

      break;

    }

    if(i % n == 0){

      if(i / n == n){

        trace("结果",i);

        break;

      }

    }

    n ++;

  }

}

下面是写着玩的缩写版本,不过正常写项目代码,我不会这样干的,在这儿只是娱乐一下而已。

下面这段代码想玩就看看,不想玩的看上面就行了,判断原理是一样,没区别!

var n:

int = 1, range:

int = 1000;

for(var i:

int = 1; i <= range; i += n = 1){

  while(n > 0) n = n > i / n ?

 0 :

 !

(i % n) ?

 i / n == n ?

 -1 :

 n + 1 :

 n + 1;

  if(n == -1) trace("结果",i);

}

我将range都改成100000后,第一种方法耗时7233毫秒,第二种缩减的写法耗时1840毫秒。

对于易读易懂,你会选择那种方法呢?

对于暗泪同学的回复,下面增加一点内容:

其实上面写的是正常算法,如果2亿次,通过分析题目,可以得出只要该数能被开平方时,就是关闭状态,因此这道题目如果是写在项目里面,可以这样写:

var range:

int = 1000000000;

var num:

int = Math.pow(range,0.5);

for(var i:

int = 1; i <= num; i ++){

  trace("结果",i * i)

}

我测试过10亿次的效率,仅需要6毫秒~何其快啊!

游戏软件功能测试——测试用例的编写方法浅谈

一、游戏软件与通用软件的区别

a)通用软件的需求明确,游戏软件需求理想化

i.通用软件中用户每步操作的预期结果都是明确且有规范可参考的,而网游中并不是所有的需求都有一个明确的预期结果,拿技能平衡性来说,我们所谓的平衡也只是相对的平衡,而非绝对的平衡。

没有什么明确的参考参数。

只能根据以往游戏的经验获得一个感知的结果。

ii.网络游戏中的某些功能是有预期结果可参考的。

例如组队、交易,而另外一些带有策划创意的功能,却是根据策划个人的理解,来确定其预期结果的。

人的思考力都是有限的,所以不能保证在他的创意中会考虑到各种各样复杂的细节。

也不能够保证这个创意就可以完全被用户所接受。

当你作为游戏测试人员时,很多时候你需要做的不仅仅是验证功能。

也需要帮助开发者和用户找到一个互相容忍的平衡点。

游戏软件的测试员带有对策划需求的怀疑,力求通过自己的努力在玩家和开发者之间将可能产生的矛盾减小。

b)通用软件开发过程中需求变更少,游戏软件开发过程中需求便更快

i.通用软件的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1