连棋游戏
就像五子棋那样 先弄简单的 3*3的 怎么判断谁赢谁输 建立一个3*3的2维数组
没下的地方是0 其中一个人下过的为1 第二个人下的地方为2
怎么判断输赢??? 如果棋盘变大 像五子棋一样的话 又要怎么弄?
打代码麻烦的话 也可以给个思路算法 谢谢
[解决办法]
每次有一方下了棋子之后,记住该位置。
定义一个指针。指向这里
判断横向:
往左移动,若有相同的棋子。nSame++;
直到没有,Break
往右移动,若有相同的棋子,nSame++;
直到没有
nSame - 1(初始位置的棋子+了两次)
判断nSame是否等于5(或者其他,你的规则)
纵向,斜向一样
[解决办法]
哪有那么麻烦?
一开始棋盘上是肯定没有连好的。所以我们只要处理每一次变化就行了。一旦发生变化,就在变化点上开始观测,一共只有4个连接方向,一横一纵两斜。4个方向检查完都没有连好,那就表明没有成功,游戏继续。任何一个方向上发现成功,则游戏结束,宣布胜利者。
每次变化后甚至只需要检测和本次变化方相同的那些棋子,哪有你想的那么复杂?