Pair Project - 新版对战扫雷
作者:欧阳云(本小组),刘宇(铷铯小组)
下载地址:
https://files.cnblogs.com/bawangyishan/Mine.rar
解压后运行Mine.exe即可。
这次pair project是由我和来自80的刘宇同学一起完成的,前后一共只有两周的时间。我们从选题到提出改进意见只花了很短的时间,接下来便是从基础的扫雷写起,慢慢掌握了WPF的使用方法,然后进行了一些扩展,合作还是相当愉快的。
游戏背景:
在基础的扫雷游戏之后,MSN推出了对战扫雷。这种对战的扫雷基于MSN平台,可在MSN好友之间进行。其显示的数字意义与普通扫雷相同,但其并没有左右键的区别,若一方点出一雷则积一分,并继续点击,若没有点出雷则换手,最后分高的一方获胜。这个游戏充满了乐趣,也需要一定的策略。
该图片来自于网络
不过玩MSN扫雷需要找到自己的朋友联机游戏,因此我们设计了单机的MSN扫雷,拥有AI可以进行对战,同时为了增强游戏性,我们还添加了一些道具。
我们的游戏:
我们从完全不会用WPF开始,从最基本的扫雷写起,完成了我们想要实现的功能。
道具方面,我们主要设计了以下3个道具:
1、开图。点击使用后,点一个格子,使用方可以单方面知道以该格为左上角的2*2的4个格子中的内容,以黄色在地图中显示。
2、不朽盾。点击使用后,该回合当使用方未能点中雷要阵亡时,原地复活,继续行动,不交换行动权。
3、限制对手。点击使用后,点一个格子,则在对手下一次行动时必定从这一个格子开始。
在我们自己的测试中,这3个道具还是很有用的,都能发挥出其效果。
游戏界面
选项界面
在设计AI方面,我们经过讨论设计出了一个评分函数,通过给每个格子计算评分来计算出最好的格子来让电脑进行点击。从平时与电脑对战情况来说,电脑还是比较聪明的。
开发过程:
我们在前两天对要开发的游戏和项目进行了讨论,确立了要做的项目和需要添加的改动。我们放弃了2D转3D,因为工作量较大,同时扫雷并不太需要3D的图形。
接着我们共同开发,写出了基础的扫雷界面,并确立了下一步的分工,即一人写后台的随机布雷、查找雷数等基础功能(刘宇),另一人完善前台的扫雷界面,并使其能与后台相互联系(欧阳云)。
在完成了这两项功能后,我们再次约见汇总代码,共同将基础的对战扫雷完整实现,留好了剩下功能的所有接口,同时讨论出了AI的设计思路。我们还确立了下一步的分工,即一人负责写道具部分(刘宇),一人负责写AI部分(欧阳云)。
至此我们大约花费了一周多的时间,在分别完成这两部分之后,我们将两人代码汇总,写出了初步符合构思的程序。不过此时程序仍然缺乏很多功能(没有菜单、扫雷地图大小不能设置、道具数量不能设置),AI也不够完善,界面也比较混乱。再这次汇总后,我们再次确立了两人的分工,即一人负责完善界面、显示各类信息、处理一些杂项功能(刘宇),一人负责完善AI,编写菜单(欧阳云)。
在这次分别完成后,我们又将代码进行了汇总,进行最后一些bug处理后得到了现在的版本。
开发体会:
这次pair project还是很愉快的,各自分工部分都完成得很好,汇总时也能很好地讨论、集合,我们开工比较早,过程也比较有条不紊。
不过也还是有些遗憾的,最后的界面还是不够漂亮,同时AI的道具处理做得并不好。
对搭档的评价:
欧阳云:刘宇同学的代码能力很好,合作时交流得也很愉快,也总能提出很多有用的建议,无论在各自进行代码还是合作进行工作时都做得很好,和他合作得很愉快。
刘宇:合作很愉快,partner包揽了相当部分的工作,两个人的讨论也总是以问题解决了作为结束。
附:工作合照