`

C语言简单实现五子棋

c 
阅读更多

五子棋实现代码

 

#include<stdio.h>
#define M 9
#define N 9
void print(int a[M][N])
{
	int i,j;
	for(i=0;i<M;i++)
	{
		for(j=0;j<N;j++)
			printf(" %d",a[i][j]);
		printf("\n");
	}
}
int check(int a[M][N])
{
	int i,j;
	for(i=0;i<M-5;i++)
	{
		for(j=0;j<N-5;j++)
		{
			if((a[i][j]==1)&&(a[i+1][j]==1)&&(a[i+2][j]==1)&&(a[i+3][j]==1)&&(a[i+4][j]==1))
			{
				printf("player1 win\n");
				return 0;
				break;
			}
			else if((a[i][j]==1)&&(a[i][j+1]==1)&&(a[i][j+2]==1)&&(a[i][j+3]==1)&&(a[i][j+4]==1))
			{
				printf("player1 win\n");
				return 0;
				break;
			}
			else if((a[i][j]==1)&&(a[i+1][j+1]==1)&&(a[i+2][j+2]==1)&&(a[i+3][j+3]==1)&&(a[i+4][j+4]==1))
			{
				printf("player1 win\n");
				return 0;
				break;
			}
			else if((a[M-i][j]==1)&&(a[M-i-1][j+1]==1)&&(a[M-i-2][j+2]==1)&&(a[M-i-3][j+3]==1)&&(a[M-i-4][j+4]==1))
			{
				printf("player1 win\n");
				return 0;
				break;
			}

			if((a[i][j]==2)&&(a[i+1][j]==2)&&(a[i+2][j]==2)&&(a[i+3][j]==2)&&(a[i+4][j]==2))
			{
				printf("player2 win\n");
				return 0;
				break;
			}
			else if((a[i][j]==2)&&(a[i][j+1]==2)&&(a[i][j+2]==2)&&(a[i][j+3]==2)&&(a[i][j+4]==2))
			{
				printf("player2 win\n");
				return 0;
				break;
			}
			else if((a[i][j]==2)&&(a[i+1][j+1]==2)&&(a[i+2][j+2]==2)&&(a[i+3][j+3]==2)&&(a[i+4][j+4]==2))
			{
				printf("player2 win\n");
				return 0;
				break;
			}
			else if((a[M-i][j]==2)&&(a[M-i-1][j+1]==2)&&(a[M-i-2][j+2]==2)&&(a[M-i-3][j+3]==2)&&(a[M-i-4][j+4]==2))
			{
				printf("player2 win\n");
				return 0;
				break;
			}
		}
	}
	return 1;
}

int main()
{
	int a[M][N]={0},b[M][N]={0};
	print(a);
	int i,j;
	int count=1,num=0;
	while(count)
	{
		num++;
		if(num%2==1)
		{
			printf("player1 input:");
			scanf("%d",&i);
			scanf("%d",&j);
			a[i-1][j-1]=1;
			print(a);
			count=check(a);
			for(i=0;i<M;i++)
				for(j=0;j<N;j++)
					b[i][j]=a[i][j];
		}
		else if(num%2==0)
		{
			printf("player2 input:");
			scanf("%d",&i);
			scanf("%d",&j);
			b[i-1][j-1]=2;
			print(b);
			count=check(b);
			for(i=0;i<M;i++)
				for(j=0;j<N;j++)
					a[i][j]=b[i][j];
		}
	}
	return 0;
}

在redhat上运行



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics