问一个我去年遇到的G家设计题# JobHunting - 待字闺中w*y2013-04-02 07:041 楼手机里一个maze里撞球的游戏---迷宫有一些挡板,横的/竖的,拨一下球就一直移动到撞墙停下来:可以横着or竖着拨球让它移动。设计用什么data structure, 用什么算法找 start 到exit的路径
w*y2013-04-02 07:044 楼遇到挡板就停下来我想最后跟迷宫解法是没区别的, 但是这个是设计提, 最主要的是用什么样的class/structure去组织。 当时面试官花了很多时间问我,想要用什么去表示这个迷宫---传统的就是一个array; 剩下的就是用到哪些method什么的,譬如移动一下到什么位置怎么实现之类的【在 n**4 的大作中提到】: 这跟找迷宫解法有什么区别: 挡板移动后还归位么
w*y2013-04-02 07:045 楼偷偷来update一下这个题的答案说是迷宫可以转化成一个graph ---大意是每个挡板都可以转化成node(大家可以去看这个就了解迷宫长什么样了 http://www.freeaddictinggames.com/static/thumbs/868.jpg), 我还没具体想转化的方法,不过感觉就是一些rules吧。 可以移动的位置之间,对应node间的edge。有了graph, 就是找node间是不是存在一个path了。
x*w2013-04-02 07:046 楼用个matrix不就行了吗?【在 w***y 的大作中提到】: 偷偷来update一下这个题的答案: 说是迷宫可以转化成一个graph ---大意是每个挡板都可以转化成node(大家可以去: 看这个就了解迷宫长什么样了 http://www.freeaddictinggames.com/static/thumbs/868.jpg), 我还没具体想转化的方法,不过感觉就是一些rules吧。 可以移动的位置之间,对应node间的edge。: 有了graph, 就是找node间是不是存在一个path了。
w*y2013-04-02 07:047 楼我想跟这个game的规则有关系。matrix有一个问题是, 任何一个位置(i,j)都是可以四个方向移动的但是这个game是拨一下,就一直移动到挡板的位置。 所以如果用matrix,在移动的时候就比较复杂。 如果把graph建好了,后面就很直接。【在 x*********w 的大作中提到】: : 用个matrix不就行了吗?
w*y2013-04-02 07:0411 楼能不能展开说说? 我没做过游戏, 不知道如果用matrix表示, 移动的时候怎么处理比较好当时我就试图用matrix做,不过最后也没有整明白找path的算法hehe【在 z*******3 的大作中提到】: matrix: 这个应该是做过游戏的地图比较熟悉
s*n2013-04-02 07:0412 楼怎么可能用graph.matrix表示地图。一个格子可以是空地,可以是墙,可以是挡板。球:有5个移动方向。定时器,控制球的移动,如果球有方向就每个tick移动一格。input:挡板,可以改变球的方向。【在 w***y 的大作中提到】: 偷偷来update一下这个题的答案: 说是迷宫可以转化成一个graph ---大意是每个挡板都可以转化成node(大家可以去: 看这个就了解迷宫长什么样了 http://www.freeaddictinggames.com/static/thumbs/868.jpg), 我还没具体想转化的方法,不过感觉就是一些rules吧。 可以移动的位置之间,对应node间的edge。: 有了graph, 就是找node间是不是存在一个path了。
s*n2013-04-02 07:0413 楼找到path的算法用flooding,这是topcoder 上面直接给解答的问题。【在 w***y 的大作中提到】: 能不能展开说说? 我没做过游戏, 不知道如果用matrix表示, 移动的时候怎么处: 理比较好: 当时我就试图用matrix做,不过最后也没有整明白找path的算法hehe