Android五子棋游戏开发实战的亲身经验之二

       上回说到我对一个五子棋游戏开发的分析,通过这个分析,是否说明在好多时候问题总是会变得越来越多,越来越严重呢?这些问题就算在美国也经常见到碰到,而且这个问题,总是会变得越来越严重。

       接着上一集,回到我现在的问题。

       我们根据分析出来的总题纲,进行问题分解。

       1. 棋盘的管理

       2. 棋子的管理

       3. 游戏控制的管理

       4. 游戏的AI

       5. 游戏分数的管理

       由于还没打算进行更细粒度的划分,所以基本上划分五个管理模块。

XML/HTML代码
  1. <SPAN style="COLOR: #0000ff">1.棋盘的管理      
  2. </SPAN>    

       棋盘在一个15X15的棋盘,主要负责控制游戏棋盘的显示与棋子的显示。棋盘由可以自适应。

XML/HTML代码
  1. <SPAN style="COLOR: #0000ff">2.棋子的管理</SPAN>  

       主要负责保存棋子的坐标信息,如 qizhi(‘黑’,3, 4),代表黑子在x=3,y=4的坐标上。

XML/HTML代码
  1. <SPAN style="COLOR: #0000ff">3.游戏控制的管理</SPAN>  

       游戏的控制主要是将游戏的显示与游戏的AI进行合成,产生交互效果,设计叫这个为MVC(MVC这概念面试的时候,专门考初级程序员的题目)。

XML/HTML代码
  1. <SPAN style="COLOR: #0000ff">4.游戏的AI</SPAN>  

       游戏的AI使用玩家与电脑进行对战。

XML/HTML代码
  1. <SPAN style="COLOR: #0000ff">5.游戏分数的管理</SPAN>   

       在游戏总结时,赢的一方得到分数,并保存为数分和显示排名。

       好了,分析到这步,是不是开始写代码了,在很多时候,我们在做项目的时候,通常进行了需求分析,数据库设计,流程设计,详细设计后,我们就进行程序开发,但通常一边开发,又一边发现‘冲突’或存在诸多疑问。

       我还是用五子棋说明问题。

       第一:五子棋的设计,是画出来呢,还是贴图贴出来?

       第二:五子棋的棋盘的VI如何设计,棋子的图案是网上抄,还是重新设计,设计成怎么样子。

       第三:AI部分,究竟用什么AI呢,是用常用的权值法,还是用遗传算法?

       第四:分数,分数的计法,分数如何计呢?

       第五:在开发时,归案由谁去负责,谁负责哪个模块,文档由谁业写。

       ……

       一连串的问题,使我们通常犯错却一次又一次的犯下去。当然我这里指出的是,并不一定客观,但我只想通过这个实例说明,做一个项目,所需要的成本,往往比我们想像中的多。如何有效去约束,就是项目经理的水平所在了。在国外,有专门的写档案的印度佬,有专门做忽悠人的PA,有专门搞测试的QC/QA, 分得很细,却都很专业。我们大陆,也是这样分工的,如分售前,开发,实施,售后的分工。但通常我见得最多的是:‘又是裁判,又是运动员’。这就是我们为什么生活的很累的原因,一份精力却要两倍支出,能不累吗。特别有些(现在已经好多了,甚至搞上市)的公司(把大蛋糕吃下的那个企业)把项目给了外包公司,外包公司再找几个‘外援’,来搭个几千万的项目,就这样,这几个累的要死的‘外援’做出了几千万的项目,这就是非常有名的‘二八原理’。

       所以我想总结一下:通常设计中,我们做得文档一般都不够详细,所以我们在开发的时候会发现困难重重,对于开发中途加入的开发人员,看那缺头缺尾的文档更是要‘努力’(‘要智富就要努力’不知道这句话是谁发明的,总把后面的那一句漏掉了),二是想引用站长的一句话‘珍惜生命,远离外包’来做作为这一集做的总结。

       好,这一集就说到这里,谢谢。


android开发学习网 » Android五子棋游戏开发实战的亲身经验之二