这里有VC编写的跳棋程序(含源码):
http://creativesoft.home.shangdu.net/resources1.htm
程序实现简介:
由于仓促写成,游戏的网络功能暂时没有,非常抱歉,下一版本一定补上。
跳子棋程序的实现不算太难,但却也有一点复杂。主要原因可能就是它的棋盘为一个不
规则的图形。
我的思路是:把棋盘121棋格分为7个区,中间为0区,上为1区,逆时针至右上角。
定义一个棋格的属性:
坐标。(根据棋盘图自己量一下,不会不知道用什么吧!)
棋格所属区域,即上面所提7个区。
棋格离各个端点几格,6维数组记录6方,电脑下子时可作为下子的优先级判断。
棋格上棋子的颜色0-6,0为无子。
棋格属于第几个棋格(从上至下,从左至右,1-122个棋格)
再定一个6维指针数组,指向当前棋格的6个方向的属性(逆时针,右上方为第0维至右
方第5维,此方无棋格指向NULL)。
再定义棋子的属性:
指向的棋格。
可走路径用数组集合动态保存。
棋子的状态,选择与否。
上面具体的实现请看date.h文件。
接下来做的就是定义122个棋格实例(0格为空)和6方每方10个棋子的实例,初始好它们如
无错,就成功一半了。
确定好程序数据结构,以下就好办多了,但也不可大意,指针乱指可就不好玩了^-^。
至于围绕这些数据如何去操作,只要理解它的数据结构参照一下程序应不难。
如有疑问请E-mail yangjun_vc@china.com
至于人工智能算法,可以参考一下五子棋的算法(私下以为跳棋比五子棋容易很多
)。