用C语言实现实现三子棋(或者:n in a row)

初始设定:

        1、下棋输入1,退出输入0

        2、玩家用*棋子,电脑用#棋子

        3、棋盘的行列数相同,棋子均下在”空格”内

        4、判断输赢的规则:只要有n个同类棋子在棋盘中形成一行,一列,一斜线,

                则判定函数输出1,否则输出0.

判定函数功能:先判断第一行中是否有一串棋子满足赢的条件,如果满足,返回1,否则返回0,

然后再逐渐判断第二行,第三行,...

for ( i = 0; i < SIZE; i++)
	{
		for (j = 0; j < SIZE; j++)
		{
			if (((arr[i][j] == qi) && (arr[i][j - 1] != qi))
				|| ((arr[i][j] == qi) && (j == 0)))
			{
				flag1 = traverseArr1(i, j, qi, arr);
				if (flag1 >= numInaRow)
				{
					return 1;
				}
			}
		}
	}
int traverseArr1(int i, int j, char qi, char arr[SIZE][SIZE])
{
	int flag = 0;
	while (j < SIZE)
	{
		if (arr[i][j] == qi)
		{
			if ((j < SIZE - 1) && (arr[i][j] == arr[i][j + 1]))
			{
				while ((j < SIZE - 1) && (arr[i][j] == arr[i][j + 1]))
				{
					flag++;
					j++;
				}
				if (flag >= numInaRow)
				{
					return flag;
				}
				else
				{
					flag = 0;
				}
			}
			else
			{
				return 0;
			}
		}
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值