- 注册时间
- 2005-2-13
- 最后登录
- 1970-1-1
|
最近在研究一些数据结构的问题,就涉及到了"遍历",就想到了做一个棋类游戏,可惜直到程序完成也没用到"遍历".
不过却在编写过程中想到了一些问题,就是黑白棋的算法.
我没学过正统编程,我用的我自己想的算法
1.放子前,将棋盘上可能用到的空格标注为"可用",这类空格指在他周围有子的格
2.人选(通过选子子程序)或机选一个上述空格
3.看这个空格周围是否有与即将放下的棋子颜色不同的棋子
4.若有:假设这个不同颜色的棋子的坐标为(x,y),当前空格坐标为(x0,y0),那么用x0-x,y0-y求出方向值.然后沿这个方向搜索同色子,遇到空格就停止 若没有:提示错误,回到2步骤
5.若搜索到:将搜索过程中途径的棋子所在格标注为"可翻"(这类棋子就是两个同色子之间夹的异色子) 若没有:提示错误,回到2步骤
6.跳转绘棋子子程序,按照每个空格的属性(用一个2维书组表示,值代表状态)绘棋子
7一次落子结束,回到1步骤
以上,是我的算法,运行时明显慢,但是可以完成游戏.
说的不好,大家看看我的程序吧: http://xynet.6to23.com/wqx/w&b.bas
说这些是想和大家交流算法和心得,另外希望知道传统经典算法的老鸟指点一二,也希望后来的菜鸟们学到东西.
|
|