c语言简单五子棋

#include<stdio.h>
#include<windows.h>
#include <stdlib.h>
void chessboard(){
	int a,b=0;
  char chessboard[15][15];
	for(int a=0;a<15;a++) 
 	for(int b=0;b<15;b++)
 {
 	
 	chessboard[a][b]='+';}

 for(int a=0;a<15;a++) 
 
 for(int b=0;b<15;b++)
{

 printf(" %c",chessboard[a][b]);
 if(b==14){
 
 printf("\n");
}
}
}	


int judge(int m,int n){
	int i,k=0;
	 char chessboard[15][15] ;
	for(i = m-4; i <= m+4; i ++)
        if(chessboard[i][n] =='#'&& chessboard[i+1][n]== '#'&&chessboard[i+2][n]=='#'&&chessboard[i+3][n]=='#'&&chessboard[i+4][n]=='#') 
        return 1;
        else break;
    for(k = m-4; k <= m+4; k ++)
        if(chessboard[m][n]=='#'&&chessboard[m][n+1] =='#'&& chessboard[m][n+2]== '#'&&chessboard[m][n+3]=='#'&&chessboard[m][n+4]=='#') 
        return 1;
        else break;
    for(i = m-4 ,k <= m-4;i<=m+4; i++,k ++)
    	if(chessboard[i][k]=='#'&&chessboard[i+1][k+1] =='#'&& chessboard[i+2][k+2]== '#'&&chessboard[i+3][k+3]=='#'&&chessboard[i+4][k+4]=='#') 
    	return 1;
    	else break;
    	for(i=m-4,k=n+4;i<=m+4;i++,k--)
    if(chessboard[i][k]=='#'&&chessboard[i+1][k-1] =='#'&& chessboard[i+2][k-2]== '#'&&chessboard[i+3][k-3]=='#'&&chessboard[i+4][k-4]=='#') 
     return 1;
     else break;
     
     	for(i = m-4; i <= m+4; i ++)
        if(chessboard[i][n] =='o'&& chessboard[i+1][n]== 'o'&&chessboard[i+2][n]=='o'&&chessboard[i+3][n]=='o'&&chessboard[i+4][n]=='o') 
        return 2;
        else break;
    for(k = m-4; k <= m+4; k ++)
        if(chessboard[m][n]=='o'&&chessboard[m][n+1] =='o'&& chessboard[m][n+2]== 'o'&&chessboard[m][n+3]=='o'&&chessboard[m][n+4]=='o') 
        return 2;
        else break;
    for(i = m-4 ,k <= m-4;i<=m+4; i++,k ++)
    	if(chessboard[i][k]=='o'&&chessboard[i+1][k+1] =='o'&& chessboard[i+2][k+2]== 'o'&&chessboard[i+3][k+3]=='o'&&chessboard[i+4][k+4]=='o') 
    	return 2;
		else break;
    	for(i=m-4,k=n+4;i<=m+4;i++,k--)
    if(chessboard[i][k]=='o'&&chessboard[i+1][k-1] =='o'&& chessboard[i+2][k-2]== 'o'&&chessboard[i+3][k-3]=='o'&&chessboard[i+4][k-4]=='o') 
     return 2;
     else
	 return 0;
}
	int move1(){
	int x = 0; int  y = 0;
 char chessboard[15][15] ;
 		printf("轮到黑方行棋\n"); 
		printf("请输入行\n"); 
		scanf("%d", &x);
		printf("请输入列\n"); 
		scanf("%d",&y);
		x--;
		y--;
		if (((x >= 0) && (x <= 15)) && ((y >= 0) && (y <= 15)))
		{
			if (chessboard[x][y] =='+')
			{ system("cls");
				chessboard[x][y] = '#';  
				for(int a=0;a<15;a++) 
 				for(int b=0;b<15;b++){
				 
				 printf(" %c",chessboard[a][b]);
 				 if(b==14){
				  printf("\n");
				 
		}
			}return 0;
			}
			else
				printf("下标错误,请重新输入\n");
				
				return 1;
		}
		else
			printf("下标错误,请重新输入\n");
			
			return 1;
	}

int move2()
{
	int x = 0; int  y = 0;
	 char chessboard[15][15] ;
	{
		printf("轮到白方行棋\n"); 
		printf("请输入行\n"); 
		scanf("%d", &x);
		printf("请输入列\n"); 
		scanf("%d",&y);
		x--;
		y--;
		if (((x >= 0) && (x <= 15)) && ((y >= 0) && (y <= 15)))
		{
			if (chessboard[x][y] == '+')
			{	
				system("cls");
				chessboard[x][y] = 'o'; 
					for(int a=0;a<15;a++) 
 				for(int b=0;b<15;b++){
 				printf(" %c",chessboard[a][b]);
 				 if(b==14){
				  printf("\n");
			}
			}return 0;
			}
			else
				printf("下标错误,请重新输入\n");
				
				return 2;
		}
		else
			printf("下标错误,请重新输入\n");
			
			return 2;
 }
}
	
	
	
	main(){
	
	SetConsoleTitle("Chessboard");
	int a,b,c=0,d=0,count=0;
	
	//count=judge(a,b);
	//printf("%d\n",count);
	
	chessboard();
	while(count==0){
		c++;
		d=c%2;
		switch ( d )            
	{
    case 1:

    if(move1()==1)
   {
	 c--;
	 
	 }
		
    	for(int a=0;a<15;a++) 
 	for(int b=0;b<15;b++)
 
		if(judge(a,b)==1)
	{
	printf("黑棋胜利 游戏结束\n");
	exit(0);}
	break;

	
	case 0:	
	if(move2()==2)
    {
	c--;
	}
	for(int a=0;a<15;a++) 
 	for(int b=0;b<15;b++)
 
	 if(judge(a,b)==2){
	printf("白棋胜利 游戏结束\n");
	 exit(0);
	}
	break;
	}
	 
	}
}
	





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值