⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.h

📁 这是一个关于智能算法的简单实例!人工智能本科生实验的第一次试验
💻 H
字号:
#include "itc.h"


class demo : public Tic
{
public:
	demo()
	{
	
	}
 virtual bool AutoDone() //此处为学生实现代码
	{  
		
     
       if(IsWin(States[0])==1){cout<<"computer win"<<endl;return true;}  
      else if(IsWin(States[0])==-1){cout<<"player win"<<endl;return true;}  
	 
	  if(e_fun(States[0])==-1001)
		 {cout<<"平局"<<endl; return true;}
	   
	  for(int k=0;k<4;k++)
	  { if(States[0].QP[k][0]+States[0].QP[k][1]+States[0].QP[k][2]+States[0].QP[k][3]==3)
	  { for(int h=0;h<4;h++)
			States[0].QP[k][h]=1;
		   cout<<"computer win"<<endl;return true;
	  }
	  }
	  for(k=0;k<4;k++)
		  { if(States[0].QP[0][k]+States[0].QP[1][k]+States[0].QP[2][k]+States[0].QP[3][k]==3)
	  {for(int h=0;h<4;h++)
			States[0].QP[h][k]=1;
			cout<<"computer win"<<endl;return true;
	  } 
	  }
	  if(States[0].QP[0][0]+States[0].QP[1][1]+States[0].QP[2][2]+States[0].QP[3][3]==3)
		 {for(k=0;k<4;k++)
		  States[0].QP[k][k]=1;
	       cout<<"computer win"<<endl;return true;
		 } 
	  if(States[0].QP[3][0]+States[0].QP[2][1]+States[0].QP[1][2]+States[0].QP[0][3]==3)
		{States[0].QP[3][0]=1;
         States[0].QP[2][1]=1;
         States[0].QP[1][2]=1;
		 States[0].QP[0][3]=1;
		 cout<<"computer win"<<endl;return true;
		}
      for(k=0;k<4;k++)
	  { if(States[0].QP[k][0]+States[0].QP[k][1]+States[0].QP[k][2]+States[0].QP[k][3]==-3)
	  { for(int h=0;h<4;h++)
			if(States[0].QP[k][h]==0)States[0].QP[k][h]=1;
	         return false;	   
	  }
	  }
        for(k=0;k<4;k++)
		{ if(States[0].QP[0][k]+States[0].QP[1][k]+States[0].QP[2][k]+States[0].QP[3][k]==-3)
		{    for(int h=0;h<4;h++)
			if(States[0].QP[h][k]==0)States[0].QP[h][k]=1; return false;              
		} 
		}
		if(States[0].QP[0][0]+States[0].QP[1][1]+States[0].QP[2][2]+States[0].QP[3][3]==-3)
		 {for(k=0;k<3;k++)
		  if(States[0].QP[k][k]==0)States[0].QP[k][k]=1;
	       return false;
		 } 
        if(States[0].QP[3][0]+States[0].QP[2][1]+States[0].QP[1][2]+States[0].QP[0][3]==-3)
		{if(States[0].QP[3][0]==0)States[0].QP[2][0]=1;
		 if(States[0].QP[2][1]==0)States[0].QP[1][1]=1;
		 if(States[0].QP[1][2]==0)States[0].QP[0][2]=1;
		 if(States[0].QP[0][3]==0)States[0].QP[0][2]=1;
		 return false;
		}
      



	 
	 int ef=-10; 
	 for (int i=0;i<4;i++)
	   for (int j=0;j<4;j++)
	   { 
		 States[i*4+j+1].parent=0;
		 for(int k=0;k<4;k++)
			 for(int h=0;h<4;h++)
				 States[i*4+j+1].QP[k][h]=States[0].QP[k][h];

        // States[i*3+j+1].QP=States[0].QP;  ////error
		 if (States[0].QP[i][j]==0)
		 {	States[i*4+j+1].QP[i][j]=1;
		    int e=10;
		     for (int m=0;m<4;m++)
			   for (int n=0;n<4;n++)
				{ States[(i*4+j+1)*16+m*4+n+1].parent=i*4+j+1;
			      for(int k=0;k<4;k++)
			       for(int h=0;h<4;h++)
			        States[(i*4+j+1)*16+m*4+n+1].QP[k][h]=States[i*4+j+1].QP[k][h];
			      if (States[i*4+j+1].QP[m][n]==0)
				  {   States[(i*4+j+1)*16+m*4+n+1].QP[m][n]=-1;
			          States[(i*4+j+1)*16+m*4+n+1].e_fun=e_fun(States[(i*4+j+1)*16+m*4+n+1]);
				    if(States[(i*4+j+1)*16+m*4+n+1].e_fun<e) e=States[(i*4+j+1)*16+m*4+n+1].e_fun; 
				//	if(States[(i*4+j+1)*16+m*4+n+1].e_fun<ef){m=4;n=4;}
				  }//if end
				}//for3, for4 end
		        States[i*4+j+1].e_fun=e;
		      
		 
		 }//if end
        if (States[i*4+j+1].e_fun>ef) ef=States[i*4+j+1].e_fun; 
	   }//for1 for2 end
	
	for (i=0;i<4;i++)
	   for (int j=0;j<4;j++)
	   {if(ef==States[i*4+j+1].e_fun)
	    for(int k=0;k<4;k++)
			 for(int h=0;h<4;h++)
				 States[0].QP[k][h]=States[i*4+j+1].QP[k][h];
	  }

	   for(i=0;i<275;i++)
		   States[i].e_fun=-10;
	if(IsWin(States[0])==0)return false;
	else if(IsWin(States[0])==1){cout<<"computer win"<<endl;return true;}  
	else if(IsWin(States[0])==-1){cout<<"player win"<<endl;return true;}  
	
     s_count++;
	 if(s_count>=8)
		 return true;
	}//AutoDone
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -