上节说到剖析五子棋的任务从这节开始,那确实。
其实,这节的任务很简单,就是 以完全面向对象的思想来分析这个小游戏。
对于面向对象,对于开发人员,一定不再陌生,这里就不再赘述。
那他需要哪些类了。
一个黑棋子,一个白棋子,他是不是有许多的属性 是一样的,因此我们这里抽象出一个piece 包含位置,类型等等属性
这些棋子在哪玩,是不是棋盘上。因此,我们需要棋盘类(pieceboard)类来体现所谓的棋盘。
怎么来存储相应五子棋的结果了,因此我们需要winningResult类存储相应结果。
你会问我怎么来控制游戏开展的,我这里是基于mvc的思想
我这里是一个通过一个比如PieceMediator 来监听PieceProxy 变化,而PieceProxy 监上面的Piece的变化。最终的当家是ApplicationFacede组织所有监听者的变化。
对啊,我真的忘了,上节说到了ai,我要介绍ai部分,一个ai类组织了 相应人工智能的算法。
而ai需要一个Rule类, 判断相应的水平,竖直方向,斜线方向是否是相连。
那我再看相应的类图的架构:
你还会问我,我介绍非常的笼统。 那个PieceType,WinningType 是枚举的 为什么需要xxcomponent 这相当于 view 层,对于相应的model层,
通过pages把xxcomponent 串联起来。 这样就能玩了哟
当然,这还不是纯粹的mvc的思想,在xxMediator 类 还要需要 访问跨页面的调用相应控件。 最好的方法是利用mvvm来重构,恳请大家谅解,
并给我意见。