五子棋怎么玩法介绍的问题


这是一个五子棋程序中的判断在行棋方向上是否有5个连续当前玩家的棋子的模块,请高手帮忙解释一下另外帮忙用if else语句把switch语句重写一下。。。答的好的追加高分

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

// 作用:判断指定行棋方向上,是否有含当前棋位的5个连续当前玩家棋子

// 求从当前棋子在行棋方向上起点棋位,既逆向数(不含当前棋子)的第4个棋子)的坐标,

// 以及该行棋方向沿水平方向,垂直方向的步长。

// pos.x -- 起点棋位(逆向数(不含当前棋子)的第4个棋位)的坐标x

// pos.y -- 起点棋位(逆向数(不含当前棋子)的第4个棋位)的坐标y

// dpos.x -- 行棋方向沿水平方向的步长,既行棋方向增加一格,则水平方向对应的坐标变化值。

// dpos.y -- 行棋方向沿垂直方向的步长,既行棋方向增加一格,垂直方向的对应的坐标变化值。

count=0; // 临时记录已有连续棋子的个数。

// 因为需要计算判断的范围是,从当前棋位正向或逆向各数testnum-1个棋子,

// 所以,加上当前棋子,需要判断的棋子次数等于

// 如果还想不明白,看下图,*表示当前棋位


count++; // 如果棋位上有该玩家棋子,则连续棋子数加一。

if(count>=testnum) // 如果连续棋子数大于等于“要判断的棋子个数”,则判断为真。

count=0; // 如果棋位上没有该玩家棋子,既出现空位或对家棋子,则连续棋子数清零。

// 每次循环,按步长计算一次行棋方向上的新棋位坐标。





输入格式 第1行输入两个数n和m,用空格分开,n为棋盘横纵坐标的最大值,m为步数:

输出格式 输出首次分出胜负那一步的序号(第一步为1),如果走完了都没有分出胜负,输出“aabb”。输入样例5 11

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

本来想给你实现一下的 但是、、、数组判断对角的胜利太麻烦了,发现还得用到树 唉 悲剧啊

如果你不嫌麻烦可以用数组来实现这个 以数值来表示是否有棋子 0:空,1:白棋,2:黑棋。

用坐标位置值相加的结果来表示胜利,sum是否等于 5||10, 祝你好运

输入的只是一方的棋子,不是双方的

我要回帖

更多关于 五子棋怎么玩法介绍 的文章

 

随机推荐