跳棋
“我的跳棋”设计说明书,作者:俞尚
来自:r17/yushang0824/blog/.
一、 概述:
跳棋在我国是一项老少皆宜、流传广泛的益智型棋类游戏。由于其规则简单,一玩就懂,一辈子都不会忘,所以几乎每个人从小到大都下过跳棋。如果您不愿陷入激烈的思考和竞争,那么无疑本游戏可以使您回到一种更平和、产生美好回忆的心情之中。
在此我把近十天的成果做一个简要的介绍,尽量把问题说得清楚细致。希望与对跳棋编程有同样兴趣的伙伴们好好讨论一下,也希望下一版本的跳棋做得更好。
这个跳棋游戏主要有下几个特点:界面漂亮,操作简单,功能简洁,老少兼宜。我爸爸都很喜欢下。整个跳棋的源码你可以下载。
二、 跳棋整体设计
UML类图:
先给跳棋整个代码做一个整体介绍,说明每个包,每个类具体作用:
1.
,标题栏和各种按钮,设置玩家个数及类型(人,或是计算机)。
2.
,比较简单。
3.
,比较简单。
4.
,“抖动”动画效果l
、棋子、下棋位置等图片l
,控制玩家下棋顺序、棋子棋盘的显示、动画显示、以及响应玩家的下棋的鼠标事件。l
5.
,说明棋子的颜色以及索引号等信息。l
:l
索引功能:为棋子和棋盘坐标建立索引关系,根据棋子的可快速检索出该棋子的坐标或根据坐标快速检索出该位置是否有棋子。由于这两项功能在下棋过程中使用频率很高,因此对性能要求也很高。
下棋规则:设定了下棋规则,可以是传统的规则,也可以隔空跳规则。这是一个麻烦的工作。涉及数据结构方面的知识,有图的生成和最短路径搜索两个难点。
RealChessBoard和VirtualChessBoard是ChessBoard派生类: RealChessBoard中建立了棋子和棋盘坐标建立真正的索引关系。而VirtualChessBoard是建立在RealChessBoard基础之上的,VirtualChessBoard只是保存当已走动的棋子坐标变化情况,这样VirtualChessBoard的数据量很小,提高计算机下棋智能计算速度,这一优点在介绍计算机下棋策略详细讨论。RealChessBoard和VirtualChessBoard只是创建方式有点区别,使用上没有任何差别,这也是多态性的一个运用。
保存了玩家棋子颜色、昵称、敌对玩家,棋子摆放初始区域等信息。同时输出下棋路径,为播放动画作准备。
有两个Play和Man两个派生类,.,而人玩家的下棋要由用户鼠标事件来驱动。这两个类实现这两个不同的功能。
6.
。该类可得到自己区域包含哪些坐标(getAreaPositions)。也可得到和自己相对区域(getOppsiteArea)。l
(非棋盘边界),在放六个方向上都有相邻的坐标位置,l
、、“图”相关的三个类。l
,有三个功能:设定了棋盘边界、给定一方向可以得到该方向上相邻的坐标、计算与另一坐标的距离。l
7.
计算机下棋策略主要有以下几个方面:
计算出己方所有可能走法
选出一个跳得最远(尽快让自己获胜)的棋子和走法。
选择一个最可能阻碍对方前行的
跳棋设计 来自淘豆网m.daumloan.com转载请标明出处.