微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pair project 的小结有图有真相(group member: Fei Tian, Gaoyao Xiao)

3Dchess

到今天为止,我和Fei Tian 同学的pair project—3D中国象棋基本完成了,整个project工作量还是蛮大的,在这个过程中我也见识到了编程高手是怎样写code的。


接下来说说我们的pair project的过程吧。

我们第一步是确定编程工具,虽然邹欣老师很推荐silverlight,但是经过我们调查,silverlight的参考资料似乎比较少,而wpf的则很多,另外wpf功能也比silverlight强大,为了快速高效的学会一门工具,我们选择wpf


第二步就是确定最终的实现目标了,我们对3D象棋的期望是,加入适量的3D效果,改变一些游戏规则并保证游戏仍有较高的可玩性(毕竟如果不好玩,3D做的再炫、创意再多也木有用、、)。经过讨论,根据我们在象棋实战的过程中遇到的一些情况,按照邹欣老师的要求,我们决定设计一个两层的棋盘,第一层是正常的中国象棋棋盘,第二层是扩展的。具体是,在第一层也就是正常棋盘中,当棋子A走到的左右两条边界线时,如果被对方的棋子逼得走投无路,就可以选择躲避到第二层,正常棋盘中的棋子不允许吃掉躲在第二层的棋子,当形势改变后,如果棋子A原位置为空,棋子A可以返回原来的位置。这样做的效果是,给被逼到边界的棋子提供了一条生路,但同时也有风险,如果一个“车”躲下去了,然后对方用一个棋子把“车”跳下去的那个点堵住,那么那个“车”就长眠在第二层了。通过这样一种功能,给正常的中国象棋增加了一些趣味性。具体的可以看看文章顶部的截图,途中左边界线上的棋子全都躲避到第二层去了(上下边界线上的点除四个顶点外,不能躲避)。确定了这个功能后,Fei同学觉得这个AI也很有意思,因此在实现该功能后又追加了“人机对战”功能


第三步就是结对编程了,我觉得结对编程既有优点,也有缺点。优点是大家可以讨论怎样解决bug,讨论可靠的方案从而减少bug的出现,另外两个人一起也更有动力,不那么容易感觉无聊。缺点也很明显,比如可能一个人的思考会受到干扰之类的,而且如果两个人编程水平、风格相差较大,在pair programming时必然不少于一个人会很郁闷吧。Fei是主力,这是毋庸置疑的,在实现“人机对战”功能中,Fei从头学习搜索策略算法,然后编程实现,写出来的程序很清晰,注释简明扼要,相比之下我的代码则导致了较多的bug,囧、、、


第四步就是消灭bug吧,我们的3D象棋还有一些小问题,但我们相信最终会完成一个终极完美版~~

 

最后贴上照片一张,左边是我,右边是Fei~~

pair-project

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐