c语言实现三子棋

家电维修 2023-07-16 19:17www.caominkang.com家电维修技术

日后出详解。

 

 

 

 

 

完整代码,复制可用
#define HANG 3
#define LIE 3
#include
//#include"ojbk.h"
#include
#include
int caidan()
{
	do{
		int x=0;
		printf("三子棋n");
		printf("开始游戏请按1n");
		printf("调节难度请按2n");
		printf("退出游戏请按3n");
		printf("查看游戏说明请按4n");
		printf("n");
		scanf("%d",&x);
		system("cls");
		if(x==1)
			return 1;
		else if(x==3)
			return 3;
		else if(x==4)
			return 4;
		else if(x==2)
			return 2;
		else
			continue;
	}hile(1);
}
void daying(char x[LIE][HANG])
{
	int i,j;
	for(i=0;i=1&&a<=3&&b>=1&&b<=3)
		   {
		  if(ch[a-1][b-1]==' ')
				{
			 ch[a-1][b-1]='';
			 break;
			}
		 else if(ch[a-1][b-1]=='#'||ch[a-1][b-1]=='')
			{
			 printf("睁大你的小眼睛,这个位置不能下了哦,换个位置吧");
			 continue;
			}
		   }
    else
		  {
		    printf("这,,这这这,没有这个坐标啊,好好输行吗?重新输!");
		  continue;
		  }
		   }hile(1);
    //玩家输入
		   //判定
		   jieguo=panding(ch);
		   if(jieguo!=0)
			   break;
    //电脑输入
		   //简单模式;
		if(nandu==1)
		{
	   for(int i=0;i<3;i++)
		  {

			  int x=0;
			  for(int j=2;j>=0;j--)
			  {
				  if(ch[j][i]==' ')
				  {
					  ch[j][i]='#';
					  x++;
					  break;
				  }
				  else;
			  }
			  if(x==1)
				  break;
		}
		}
	  //电脑输入;
		//困难模式;
		else if(nandu==2)
		{
		//
		  hile(1)
		  {
			int x=0,biao=0;
		//	int m,n;
			int i,j;
				if(ch[0][0]=='#'&&ch[1][1]=='#')
		  {
			  if(ch[2][2]==' ')
			  {ch[2][2]='#';
			  break;}
		  }
		  if(ch[2][2]=='#'&&ch[1][1]=='#')
		  {
			  if(ch[0][0]==' ')
			  {ch[0][0]='#';
			  break;}
		  }
		  if(ch[0][0]=='#'&&ch[2][2]=='#')
		  {
			  if(ch[1][1]==' ')
			  {
				  ch[1][1]='#';
				  break;}
		  }
		  if(ch[0][2]=='#'&&ch[1][1]=='#')
		  {
			  if(ch[2][0]==' ')
			  {ch[2][0]='#';
			  break;}
		  }
		  if(ch[0][2]=='#'&&ch[2][0]=='#')
		  {
			  if(ch[1][1])
			  {
			  ch[1][1]='#';
			  break;
			  }
		  }
		  if(ch[2][0]=='#'&&ch[1][1]=='#')
		  {
			  if(ch[0][2]==' ')
			  {ch[0][2]='#';
			  break;}
		  }

			for( i=0;i<3;i++)//列
		  {
			  int biao2=0;
			  x=0;
			  for(j=0;j<3;j++)//检查一列是否有二个#,
				  if(ch[j][i]=='#')
					  x++;
			if(x==2)
				for(j=0;j<3;j++)
					if(ch[j][i]==' ')
				{
					ch[j][i]='#';
					biao=1;
					biao2++;
					break;
				}
				if(biao2==1)
					break;
		  }
		  if(biao==1)
			  break;
			for(i=0;i<3;i++)//行
		  {
			  x=0;
			  int biao2=0;
			  for(j=0;j<3;j++)//检查一行是否有二个#,
				  if(ch[i][j]=='#')
					  x++;
			if(x==2)
				for(j=0;j<3;j++)
					if(ch[i][j]==' ')
					{	ch[i][j]='#';
					 biao++;
						biao2++;
						break;
					}
				if(biao2==1)
					break;
		  }
		  if(biao==1)
			  break;
    for(i=0;i<3;i++)//行
		  {
			  x=0;
			  int biao2=0;
			  for(j=0;j<3;j++)//检查一行是否有二个,
				  if(ch[i][j]=='')
					  x++;
			if(x==2)
				for(j=0;j<3;j++)
					if(ch[i][j]==' ')
					{	ch[i][j]='#';
					 biao++;
						biao2++;
						break;
					}
				if(biao2==1)
					break;
		  }
		  if(biao==1)
			  break;
		  for( i=0;i<3;i++)//列
		  {
			  int biao2=0;
			  x=0;
			  for(j=0;j<3;j++)//检查一列是否有二个,
				  if(ch[j][i]=='')
					  x++;
			if(x==2)
				for(j=0;j<3;j++)
					if(ch[j][i]==' ')
				{
					ch[j][i]='#';
					biao=1;
					biao2++;
					break;
				}
				if(biao2==1)
					break;
		  }
		  if(biao==1)
			  break;
		  if(ch[0][0]==''&&ch[1][1]=='')
		  {
			  if(ch[2][2]==' ')
			  {ch[2][2]='#';
			  break;}
		  }
		  if(ch[2][2]==''&&ch[1][1]=='')
		  {
			  if(ch[0][0]==' ')
			  {
			  ch[0][0]='#';
			  break;}
		  }
		  if(ch[0][0]==''&&ch[2][2]=='')
		  {
			  if(ch[1][1]==' ')
			  {ch[1][1]='#';
			  break;}
		  }
		  if(ch[0][2]==''&&ch[1][1]=='')
		  {
			  if(ch[2][0])
			  {
			  ch[2][0]='#';
			  break;}
		  }
		  if(ch[0][2]==''&&ch[2][0]=='')
		  {
			  if(ch[1][1]==' ')
			  {
			  ch[1][1]='#';
			  break;}
		  }
		  if(ch[2][0]==''&&ch[1][1]=='')
		  {
			  if(ch[0][2]==' ')
			  {
			  ch[0][2]='#';
			  break;}
		  }

			  
		  for(i=2;i>0;i++)
		  {

			   int k=0;
			  for(j=2;j>=0;j--)
			  {
				  if(ch[j][i]==' ')
				  {
					  ch[j][i]='#';
					  k++;
					  break;
				  }
				  else;
			  }
			  if(k==1)
			  {   biao++;
				  break;
			  }
		  }
		  if(biao==1)
			  break;



			  
		  }//
		}

	//判定
		   jieguo=panding(ch);
		   if(jieguo!=0)
			   break;
		}
		system("cls");
		daying(ch);
		jieguo=panding(ch);
		jieguo=fcai();
		if(jieguo==1)
			continue;
		else if(jieguo==2)
			break;
	}
	}
 //结束游戏
	else if(shuru==3)
	{
		system("cls");
		printf("不玩拉倒,再见!n");
		break;
	}
	//游戏说明
	else if(shuru==4)
	{
		jieguo=shuoming();
		if(jieguo==1)
		{
			system("cls");
			continue;
		}
	}
	else if(shuru==2)
	{
		system("cls");
		nandu=tiaojie();
		continue;
	}
	system("cls");
	}
	
	
	return 0;
}

Copyright © 2016-2025 www.jianfeikang.com 建飞家电维修 版权所有 Power by