第一个结对编程的pair project终于告于段落,这几天忙得昏天黑地头昏脑胀的,终于我和Xiaoming同学合作把我们丑丑的3D版中国象棋完成啦~~ 先撒花~~
首先还是show一下这个不太好看的象棋好了:
我们把棋盘设计成一个立方体的形状,但其实还是只在四个侧面上走,就好像一个两端开口的正方形水管。红色一方默认是初始方,一进入3D游戏就可以看到一大片他们的棋子。当然啦,为了适应所谓3D的规则,我们队棋子进行了一些改动,每方添加了2个炮和5个卒,保持了一个对称的结构。右边是一个拉动条,方法比较笨了一点:通过鼠标拉动来改变视角换下一步下棋方。呵呵,本来想弄得高级一点用鼠标滚轮控制的,没来得及改~~ 以后再做吧。至于背景,实在是没有找到什么好看的相称的,还是简单点用把颜色刷从上刷到下好了。棋盘式纯天然纯手工纯工艺品,自己在画图里按照棋子的大小一格一格画的,是个体力活,累死人了~~
最初在WPF和Silverlight之间选择的时候,完全是冲着WPF功能貌似大过银光决定的,而且对银光的了解程度更加比不上WPF。然后就是设计我们的中国象棋。很可惜的是,我们最初的想法被邹欣老师判为“伪3D”,就是空有一个3D的外表而不是真正所要求的,于是哗哗哗全部重来。原来那个3D的平板棋盘就这么丢了我们都觉得遗憾,最后决定把它夹在了新设计的游戏中。一开始呈现的是供用户选择下哪种棋的一个界面,如下图所示:
顺便展示下我们的最初心血:伪3D版中国象棋,哈哈:
扯远了扯远了~~ 回到3D上面来。添加了一些棋子之后,再来就是规则的修正和设计。其实和原先的中国象棋的规则没有什么不同,只是转到了三维空间中,多了些边界棱角上的问题处理罢了。車、馬、炮的走法基本上就还是那样,该怎么跳的就怎么跳。而相就被限制在棋子本来所在的那个面上,不能跳至别的面。卒直接就摆在了原先“楚河-汉界”的位置,也就是棱边上,一开始就可以有横走和竖走两种方式。每次选中棋子之后,被选的棋子会有不同的显示,而单击右键可以放弃选中。大致的功能就是这样啦,可能听起来挺没有意思的,但是其实感觉还蛮好玩的,要是可以再方便更人性化一点就更好了。
总之我们的中国象棋由于时间紧,很多原来计划想实现的功能模块都没有完成,界面效果也没有做的很炫,但是确实是我和Xiaoming同学一起花了近两个礼拜的时间共同完成的。拖上我这个coding很不行的pair来工作,真是辛苦他了,表示深深的感谢和歉意。
通过这次的结对编程,我倒是也学到了一点东西。首先就是概念上的纠正,原来这里的结对是指共同编程,两个人对着同一台电脑,对着同一段代码。这样交流首先方便很多,两个人相互有什么新的想法都可以马上说出来然后交流和探讨,即使communicator和MSN再怎么方便还是没有面对面的交流更加便捷。其次就是大家都感受到的合作的效率问题,两双眼睛共同盯着一段code,两个脑袋共同分析着一个算法,错误更容易被发现,一些不规范不合理不好理解的地方也就更容易被改善,代码的可读性能够提高很多。虽然最后我们的代码有点小冗长,但是在规范性和可读性上还是很不错的。
我和Xiaoming同学共同结对编程:
Anyway,第一次的pair work总算结束,明天还有一个English的presentation要做,得好好向大家介绍一下我们的象棋才是~~~
----------- By Zhouxiao