设计一个二人五子棋游戏

五子棋的游戏规律我们都知道,横竖五个棋子一样就赢了,斜5个一样就赢了,我们首先定义一个判断函数,每次判断他赢没赢。赢得话返回一,没赢继续,
#include<stdio.h>

#define N 10//N*N大小的棋盘
void Fz(char Arr[N][N])
{
	int j,k;
	for(k = 0;k < N;k++)
		for(j = 0;j < N;j++)
		{
			Arr[k][j] = ' ';
		}
}
int panDuan(char Arr[N][N],int temp)
{
	int i,j;
	for(i = 0;i < N;i++)
	{
		for(j = 0;j < N;j++)
		{
			if(Arr[i][j] == temp)
			{
				if(Arr[i][j+1] == temp    && Arr[i][j+2] == temp) return temp;
				if(Arr[i+1][j+1] == temp  && Arr[i+2][j+2] == temp) return temp;
				if(Arr[i+1][j] == temp    && Arr[i+2][j] == temp) return temp;
				if(Arr[i+1][j-1] == temp  && Arr[i+2][j-2] == temp) return temp;
			}
		}
	}
	
	return 0;
}

void Scan(int Arr[N][N])
{
	for(int h1 = 0;h1 < N;h1++)
			{
				for(int h2 = 0 ;h2 < N;h2++)
				{
					printf("%7d",Arr[h1][h2]);	
				}
				printf("\n");
			}

}
int main()
{
	fz();
	for(k = 0;k < N*N;k++)
	{
		int a,b; //白方走棋位置
		int w = 0;
		printf("甲走棋:");
		scanf("%d%d",&a,&b);
		Arr[a][b] = 'X';
		Scan(Arr);
		w = panDuan(Arr,1);
		if(w == 1)
		{
			printf("游戏结束,黑方胜利");
			break;
		}
		int c,d; //黑方走棋位置
		printf("黑棋走棋:");	
		Scan(Arr);
		w = panDuan(Arr,2);
		if(w == 2)
		{
			printf("游戏结束,白方胜利");
			break;
		}
	}
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值