文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688] 网易游戏游戏开发工程师与游戏测试面试题 网易游戏游戏开发工程师 ,有25人参加,有ABC三题,每人至少会做一题,在试面试题 程序部门按照如下需求文档,设计了一个游戏程序: 用面向对象的思想,设计一个简单的游戏框架。 程序需求如下: 1. 用命令行模式实现,不需要界面 2. 游戏世界中,存在5个房间:A、B、C、D、E。有些房间之间存在连通性(从一个房间所能到达的另一个房间),而有些房间之间则不存在。具体如下: 双向:A<->B、A<->C、C<->D、单向:D->A、D->E、E->B 3. 玩家可以控制角色从一个房间走到另一个房间(敲入命令goto A,则进入A房间),每次只能走一步路径。起始房间为A 每次进入房间,需要列出下一步可进入的房间。 例如:在房间C敲入:goto D,会列出: A E C 4. 每个房间里存在不同的NPC,NPC具有名称,玩家进入一个房间后,需要列出该房间的所有NPC名称。具体如下: A房间:无 B房间:杂货商、渔民 C房间:武器商 D房间:防具商 E房间:大海龟、海猫猫 5. NPC具有简单的对话功能,敲入talk NPC名称,则可以看到NPC所说的话。对话内容可自行设计。 扩展需求1 玩家拥有金钱和背包,初始金钱为100,背包中有5个格子,每个格子中可以放下一个物品。初始物品为“回城符”、“小刀” 扩展需求2 其中的一些NPC具有交易功能,玩家可以将自己身上的物品交易给NPC以获得金钱、或者通过身上的金钱购买物品。具体如下: 杂货商:出售 蜡烛(20)、小刀(30)、回城符(10) 渔民: 出售 鱼肉(10) 武器商:出售 乌木剑(50) 防具商:出售 木盾(40) 括号里的表示出售价格,同时也是收购价格。 打命令“shop NPC名称”可以列出该NPC所出售的物品和价格 打命令“buy NPC名称 物品名称”可购买物品 打命令“sell NPC名称 物品名称”可出售物品 打命令item可以列出自己背包中的物品。 背包满的情况下,不允许再买入物品,并提示“背包满”。 阅读文档时间为1小时,阅读文档完毕后请在2小时内完成如下题目: 1, 请为按照文档画出五个房间和他们之间的路径和方向; 2, 按照文档说明和,填写下表 Start room Input Output 示例A Goto A B,C A Goto B A Goto C A Goto D A Goto E B GotoA B Goto B B Goto C B Goto D B Goto E C Goto A C Goto B C Goto C C Goto D C Goto E D Goto A D Goto B D Goto C D Goto D D Goto E E Goto A E Goto B E Goto C E Goto D E Goto E 3, 针对扩展需求1和2,测试背包功能,描述你的测试思路和方法。 一道AS3面试题的解答 题目: 对一批编号为1-100全部开关朝上(开)的灯进行以下操作: 开关编号凡是1的倍数反方向拨一次开关;若该编号也是2的倍数反方向又拨一次开关;若该编号又是3的倍数反方向又拨一次开关……以此类推一直计算到100为止。 目的:请trace出经过反复开关操作后所有关闭的灯的开关编号。 这是我写给大家看的易懂版本: varn:int,m:int; varrange:int=100; for(vari: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++; } } 下面是写着玩的缩写版本,不过正常写项目代码,我不会这样干的,在这儿只是娱乐一下而已。下面这段代码想玩就看看,不想玩的看上面就行了,判断原理是一样,没区别! varn:int=1,range:int=1000; for(vari:int=1;i<=range;i+=n=1){ while(n>0)n=n>i/n0:!(i%n)i/n==n-1:n+1:n+1; if(n==-1)trace("