前言:
上海每年都有 ChinaJoy, 所以很期待在上海开发游戏. 今天, 我面了来上海之后的第一家游戏公司. 很友好的一家游戏公司, 氛围也很和谐. 面我的面试官应该是一个主程, 看了我的笔试, 指出了很多不足, 对我来说受益颇多.
话不多说! 上题!
背景: 有一个英雄, 生活在布满农田, 洞穴的世界里, 他为了生存不断的采集, 打怪.
元素: 三种点: 家 (唯一), 农田 (若干), 洞穴 (若干), 数据由 pointlist 定义 (见参考代码); 一个角色: 英雄 (初始位置在家);
游戏逻辑 (代码实现):
a, 根据 pointlist 创建地图;
b, 点击家, 角色移动到家, 血量全满; 点击洞穴, 角色移动到洞穴, HP-20,Exp+10, 洞穴消失; 点击农田, 角色移动到农田, HP-20,Exp+5, 农田消失;
游戏判定: 角色升级胜利, HP 不足则失败.
题目需求: 用自己熟悉的语言 (c++,c#, 或其他语言皆可), 需要有完整的类定义, 函数定义, 变量定义, 注释来实现完整的游戏逻辑, 主要考察逻辑, 代码习惯, 面向对象编程, 设计模式及代码可拓展性 (比如新加角色, 新加类型点);
参考代码:
enum PointType
{
- PointType_Home,
- PointType_Hole,
- PointTYpe_Farm,
- };
- struct PointInfo
- {
- int id;
- PointType pointType;
- Vector2D position;
- };
- var std::vector<PointInfo>pointList;
(答题时间不限) 多说一句: 面试题上写的是时间不限, 但面试时间是上午 11:30, 公司午饭时间是 12:30. 最好是一个小时内你要构思好游戏逻辑, 并手写出来. 对! 是手写.... 习惯了 VS 提示编程的我很不习惯. 很多 Unity 的 API 知道但拼不全. 还是代码量太少了. 继续面试了, 最起码找到一家公司不管规模多大, 徐徐图之.
来源: http://www.bubuko.com/infodetail-3346965.html