下面这个案例呢是一个类似于五子棋的系统分析设计啊,
这是一个可以说是一个算法密集,跟前面那些例子呢相比,它有自己的特色 首先呢,我们也还是按照从描述系统分析、
系统设计这个 系统实践这个过程来讲述。
但是这个例子呢是一个 算法密集型,同时它是一个,现在最流行的一种
移动平台下的一种硬盘,我们用的这个平台呢是 Windows Phone 8
和这个 Windows Win8 啊这个平台,两种平台,所以我们可以
领略到一些这个,最新的这个 移动互联网开发一些应用,这一些开发,但它只
涉及到手机端和移动端,当然它可以进一步地 建立这个云。
这个后续我们可以进行这个 加入这方面这些工作。
这个但是它的这个 性质,当前系统的性质,它是一种算法密集型的 分析设计模型。
这里边,因为它是个人工智能应用,它这个需要呢,实际上很多的
一些这个算法,比如说这个博弈术的算法,这个比较复杂。
通过这个我们可以看到 面向对象在解决这方面的一些巨大的一些优势。
这个另外呢还有一些技术上,这里边用到的语言呢,不是 Jave ,是 C#
啊,还有一些这个 silverlight ,啊前端的一些这种hoop
to hoop的转线,变成这个 另外的一些技术软件,像 silverlight
,并且我们这还可以领略到 跨平台一种设计,这也体现我们这个
问题部分设计是很重要的,因为相同的 我们现在要开发,实际上这个当前这个应用既可以用在一个网页上执行
啊,也可以在我们的一个平板端,Win 8 的一个平板端,也可以在 Win Phone 8
的手机 上应用,而这些呢,实际上它们不同的这个技术,尽管它们都是在这个微软公司的这个
提供的一些技术,但是不同的平台的它的这个 SDK
,这个开发的这种环境,用到的一些这个 技术不同。
尽管是 silverlight 在 Win 8 上这个执行 和在我们的 Win Phone
8 上执行,这个开发是完全不同的,但是呢 在未来,非常短暂的未来,可能微软要做一定的调整,它可以适应
这个在同样的这个 Win 8 和 Win Phone 8
实际上是变成 接口是完全一样的,但现在你看还是不同的
所以整个这套知识是这样的,所以它也有一定的研究的意义
这个首先还有一个立体五子棋介绍,立体五子棋大家可能 没有听说过。
而立体五子棋实际上就是一种在一个三个平板上 相互衔接的三个这个平面上 进行一个着子。
这时候就要求呃这个判断 胜利或者说着子的方式,它有些时候你跨越多个
平板形成一个五子连珠那也可以算赢,甚至你可以 跨越三个平板上,在它的横面、
竖面和斜面,只要你 不管跨越三个平面,只要你连上五子之后,那也算
也是一个优胜的一个,所以这考察人的一个
空间的这个判断能力,并且在除此之外呢,它的所有的这个着棋规则和判断规则和
一般的那个平面五子棋是一样的。
所以这是我们借助于这个,只能通过一个复合型的方式来便于我们实验
的这种情况,如果你不用复合型的方式,那实验起来是非常麻烦的,同时我们也用了人工智能- 的这种方式
下面我们看一下这个需求分析 需求分析这个其实本身也不是很复杂,这时候只有一个参与者,就是这个棋手
棋手可以进行开始游戏、 进入游戏,由于这个 是个立体棋盘,有些时候从不同的角度来看这个
布局显得非常这个,需要在不同的角度来看,这样看的比较直观和全面,所以它这个
旋转棋盘的这么一个功能点儿,啊。
在进行游戏的时候,可以人机对战,还可以人和人进行对战
人机对战涉及到人工智能的一些部分的这个加入,而人人对战只是这个
系统只是扮演一个裁判的角色,所有的这个工作呢都是由两个人之间完成
它只是裁判一个到底最后谁赢。
而人人 人机对战的时候,这个系统既扮演运动员,又扮演裁判员,啊。
它既判断胜利又扮演这个,本身它要
考虑下一步,人的这个棋手下完之后它要 考虑怎么下,这是一个
判断,由于这个判断胜利的时候,因为我们是在三个棋盘上进行判断,它要分 要判断每个棋盘是否胜利,两个棋盘
跨越边界上是否有这个胜利的这个趋势,以及跨越三个棋盘 是否有胜利的趋势。
这个旋转棋盘可以旋转,按照 x 轴、 y 轴和 z 轴分别进行旋转,这是这个
use case ,当然这个有个需求分析详细的一些描述,啊
这个我们就不详细说了,我们可以往下 过一下。
这是这个人人对战的一个过程,人人对战包括黑棋着棋、 判断胜利、 白棋着棋、 判断胜利
这个在黑棋着棋的时候,这时候呢是这个 系统显示并保存当前的数据信息。
判断胜利这包含 这个单平面判断,跨越双平面和跨越三平面判断
这个,这是这个需求分析,我们再往下
这是这个棋手单平面着棋判断胜利,是判断一号
这个是否胜利,这个然后再判断二号
好,这是跨越两个平面进行判断,这个时候我们的详细的描述,我们就不说了
这个是跨越三个平面进行判断,啊。
这是白棋着棋,白棋着棋这个时候呢是 就是说这个系统要下棋,系统下棋 这是。
当前是这个棋手在白棋着棋,这是一个最简单的一种情况 还有一种情况呢是人机对战的时候啊
这个时候包括棋手着棋、 判读胜利,然后加上这个什么机器着棋,再判断胜利啊,
这四个 use case。
这是,我们往下 这是棋手着棋的时候,这个棋手着棋的时候呢这个
这个是由这个,这个棋手指的是一个
计算机这个系统进行着棋 下面是这个机器进行着棋。
这是这个