在总结前,先上图再说。
先说说算法。我的五子棋判断输赢的算法是比较容易想到的。将判断方向分为四个方向,即:水平向右,竖直向下,斜向右下,斜向左下。我用一个二维数组来存放数据表达棋盘交点处的状态,是否有棋子,是什么棋子。将数组全部初始化为0,而鼠标点击棋盘后会将对应交点数组里的数改变。以改变为1表示放置的是黑子,以改变为-1表示放置的是白子。然后在水平向右,竖直向下,斜向右下这三个方向从左上方的第一个棋子开始一层层做循环来判断是否连成五子。而斜向左下这个方向从右上第一个棋子一层层做循环来判断。
我觉得这里是最容易出问题的地方,因为数组初始化的位置容易搞错,还有数组一不小心就会越界。
我觉得我的这个五子棋还不是很完善。如还没有加入人机对战,没有解决小棋盘外还可以落子的问题,还有其实悔棋的功能还没有实现。不过我会在有充分的时间是完善。
在这个项目中,我深刻地体会到,游戏的实现我还是能做到的!还有,做个小游戏也不容易,所以在自己不会做某个游戏时就不要鄙视某个游戏烂!最后希望大家能指出不足与错误,谢谢