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

📄 rc_agent.cpp

📁 人工智能课堂作业
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	    if(j==4&&i!=4&&i!=1)
		{
            if(percept2[i-1][j].stench==True)
			{	if((i-1)==1)
					if(object[i-1][j-1]==Empty)
						object[i][j]=Living_Wumpus;
                else
				    if(object[i-1][j-1]==Empty&&object[i-2][j]==Empty)
						object[i][j]=Living_Wumpus;
            } 
			if(percept2[i+1][j].stench==True)
			{	if((i+1)==4)
					if(object[i+1][j+1]==Empty)
                       object[i][j]=Living_Wumpus;    
                else
				    if(object[i+1][j+1]==Empty&&object[i+2][j]==Empty)
						object[i][j]=Living_Wumpus;
            }
			if(percept2[i][j-1].stench==True)
				if(object[i-1][j-1]==Empty&&object[i+1][j-1]==Empty&&object[i][j-2]==Empty)
					object[i][j]=Living_Wumpus;
		}
	   //对不是边界判断
	    if((i!=1)&&(i!=4)&&(j!=4)&&(j!=1))

        {
            if(percept2[i-1][j].stench==True)
            {
			   if(i-1==1)
               {
			      if(object[i-1][j-1]==Empty&&object[i-1][j+1]==Empty)
					  object[i][j]=Living_Wumpus;
			   }
			   else
               {
			      if(object[i-1][j-1]==Empty&&object[i-1][j+1]==Empty&&object[i-2][j]==Empty)
					  object[i][j]=Living_Wumpus;   
			   }

			}
            if(percept2[i+1][j].stench==True)
            {
			   if(i+1==4)
               {
			      if(object[i+1][j-1]==Empty&&object[i+1][j+1]==Empty)
					  object[i][j]=Living_Wumpus;
			   }
			   else
               {
			      if(object[i+1][j-1]==Empty&&object[i+1][j+1]==Empty&&object[i+2][j]==Empty)
					  object[i][j]=Living_Wumpus;   
			   }

			}
            if(percept2[i][j-1].stench==True)
            {
			   if(j-1==1)
               {
			      if(object[i-1][j-1]==Empty&&object[i+1][j-1]==Empty)
					  object[i][j]=Living_Wumpus;
			   }
			   else
               {
			      if(object[i-1][j-1]==Empty&&object[i+1][j-1]==Empty&&object[i][j-2]==Empty)
					  object[i][j]=Living_Wumpus;   
			   }

			}
            if(percept2[i][j+1].stench==True)
            {
			   if(j+1==4)
               {
			      if(object[i-1][j+1]==Empty&&object[i+1][j+1]==Empty)
					  object[i][j]=Living_Wumpus;
			   }
			   else
               {
			      if(object[i-1][j+1]==Empty&&object[i+1][j+1]==Empty&&object[i][j+2]==Empty)
					  object[i][j]=Living_Wumpus;   
			   }

			}
		}		 		 

	 }	 
  }  
}
void Control_Agent::KX(int i,int j,Percept percept2[5][5])
{
   
	if(i==1&&j==4)
		 { 
			 if(object[i+1][j]==empty&&percept2[i+1][j].breeze==Null)
             {   raction[1]=UpForward; return;}    
 			 if(object[i][j-1]==empty&&percept2[i][j-1].breeze==Null)
			 {	 raction[1]=LeftForward;return;}
           
		 }
         if(i==4&&j==4)
		 { 
			 if(object[i-1][j]==empty&&percept2[i-1][j].breeze==Null)
			 {    raction[1]=DownForward;  return;}
			 if(object[i][j-1]==empty&&percept2[i][j-1].breeze==Null)
			 {	  raction[1]=LeftForward;  return;}

		 }
         if(i==4&&j==1)
		 { 
			 if(object[i-1][j]==empty&&percept2[i-1][j].breeze==Null)
			 {         raction[1]=DownForward;  return;}
			 if(object[i][j+1]==empty&&percept2[i][j+1].breeze==Null)
			 {	  raction[1]=RightForward;return;}  
   
		 }
	   //这里是边界的方格的判断
	   if(i==1&&j!=4&&j!=1)
	   {
            if(object[i][j-1]==empty&&percept2[i][j-1].breeze==Null)
			{  
				 raction[1]=LeftForward; return;
            } 
			if(object[i][j+1]==empty&&percept2[i][j+1].breeze==Null)
			{	 raction[1]=RightForward; return;
            }
			if(object[i+1][j]==empty&&percept2[i+1][j].breeze==Null)
			{	raction[1]=UpForward; return;}
	   }
	   if(i==4&&j!=4&&j!=1)
	   {
            if(object[i][j-1]==empty&&percept2[i][j-1].breeze==Null)
			{	raction[1]=LeftForward; return;
            } 
			if(object[i][j+1]==empty&&percept2[i][j+1].breeze==Null)
			{	raction[1]=RightForward; return;
            }
			if(object[i-1][j]==empty&&percept2[i-1][j].breeze==Null)
			{    raction[1]=DownForward; return;}
	   }
	   if(j==1&&i!=4&&i!=1)
	   {
           //cout<<"PIT ONLINE"<<endl; 
		   //cout<<j<<"      "<<i<<endl;
		   if(object[i-1][j]==empty&&percept2[i-1][j].breeze==Null)
			{	
                raction[1]=DownForward; return;
            } 
			if(object[i+1][j]==empty&&percept2[i+1][j].breeze==Null)
			{	raction[1]=UpForward; return;
            }  
			if(object[i][j+1]==empty&&percept2[i][j+1].breeze==Null)
			{	raction[1]=RightForward;return;}

	   }
	   if(j==4&&i!=4&&i!=1)
	   {
            if(object[i-1][j]==empty&&percept2[i-1][j].breeze==Null)
			{raction[1]=DownForward;return;
            } 
			if(object[i+1][j]==empty&&percept2[i+1][j].breeze==Null)
			{raction[1]=UpForward;return;}
			if(object[i][j-1]==empty&&percept2[i][j-1].breeze==Null)
			{	raction[1]=LeftForward;return;}
	
	   }
	   //对不是边界判断
	   if((i!=1)&&(i!=4)&&(j!=4)&&(j!=1))

       { 
            if(object[i-1][j]==empty&&percept2[i-1][j].breeze==Null)
            {
                 raction[1]=DownForward;return;
			}
            if(object[i+1][j]==empty&&percept2[i+1][j].breeze==Null)
            {//cout<<"kx   online"<<endl;
             raction[1]=UpForward;return;

			}
            if(object[i][j-1]==empty&&percept2[i][j-1].breeze==Null)
            {
                raction[1]=LeftForward;return;

			}
            if(object[i][j+1]==empty&&percept2[i][j+1].breeze==Null)
            {raction[1]=RightForward;return;
	
			}
	   }
}
void Control_Agent::KZ(Object object[5][5],int x,int y,int i)
{
            b1.bx=10;
			b1.bx=10;
            k=0;

           
			b[0].bx=x;b[0].by=y;

			   if((b[i].pb[0]==&b1)&&(b[i].pb[1]==&b1)&&(b[i].pb[2]==&b1)&&(b[i].pb[3]==&b1))
               {
                    
				   if((b[i].bx==1)&&(b[i].by==1))
				   {  k=0;
				      if(b[i].ab->bx!=b[i].bx+1)
					  {	  
						b[ks].bx=b[i].bx+1;
                        b[ks].by=b[i].by;
					    b[ks].ab=&b[i];
					    b[i].pb[0]=&b[ks];
					    ks=ks+1;
						k=k+1;
					  }
					  if(b[i].ab->by!=b[i].by+1)
					  {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by+1;
					     b[ks].ab=&b[i];
					     b[i].pb[k]=&b[ks];
					     ks=ks+1;
					  }
				   }
				   //
				   if((b[i].bx==1)&&(b[i].by==4))
				   {  
					   k=0;
				      if((b[i].ab->bx!=b[i].bx+1)&&(object[b[i].bx+1][b[i].by]==Empty))
					  {	  
						b[ks].bx=b[i].bx+1;
                        b[ks].by=b[i].by;
					    b[ks].ab=&b[i];
					    b[i].pb[0]=&b[ks];
					    ks=ks+1;
                        k=k+1;
					  }
					  if((b[i].ab->by!=b[i].by-1)&&(object[b[i].bx][b[i].by-1]==Empty))
					  {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by-1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
				
					      ks=ks+1;
                         
					  }
				   }
				   ///////
				   if((b[i].bx==4)&&(b[i].by==1))
				   {  k=0;
				      if((b[i].ab->bx!=b[i].bx-1)&&(object[b[i].bx-1][b[i].by]==Empty))
					  {	  
						b[ks].bx=b[i].bx-1;
                        b[ks].by=b[i].by;
					    b[ks].ab=&b[i];
					    b[i].pb[0]=&b[ks];
					    ks=ks+1;
						k=k+1;
					  }
					   if((b[i].ab->by!=b[i].by+1)&&(object[b[i].bx][b[i].by+1]==Empty))
					   {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by+1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
					      ks=ks+1;
					   }
				   }
				   //////////////
				   ///////
				   if((b[i].bx==4)&&(b[i].by==4))
				   {  k=0;
				      if((b[i].ab->bx!=b[i].bx-1)&&(object[b[i].bx-1][b[i].by]==Empty))
					  {	  
						b[ks].bx=b[i].bx-1;
                        b[ks].by=b[i].by;
					    b[ks].ab=&b[i];
					    b[i].pb[0]=&b[ks];
					    ks=ks+1;
							k=k+1;
					  }
					  if((b[i].ab->by!=b[i].by-1)&&(object[b[i].bx][b[i].by-1]==Empty))
					  {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by-1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
					      ks=ks+1;
					  }
				   }
				   //////////////
				   ///////
				   if((b[i].bx==4)&&(b[i].by==1))
				   {k=0;
				      if((b[i].ab->bx!=b[i].bx-1)&&(object[b[i].bx-1][b[i].by]==Empty))
					  {	  
						b[ks].bx=b[i].bx+1;
                        b[ks].by=b[i].by;
					    b[ks].ab=&b[i];
					    b[i].pb[0]=&b[ks];
					    ks=ks+1;
							k=k+1;
					  }
					  if((b[i].ab->by!=b[i].by+1)&&(object[b[i].bx][b[i].by+1]==Empty))
					  {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by+1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
					      ks=ks+1;
					  }
				   }
				   //////////////
                   if(b[i].bx==1&&b[i].by!=1&&b[i].by!=4)
				   {k=0;
				       if(b[i].ab->bx!=(b[i].bx+1)&&(object[b[i].bx+1][b[i].by]==Empty))
					   {
						  b[ks].bx=b[i].bx+1;
                          b[ks].by=b[i].by;
					      b[ks].ab=&b[i];
					      b[i].pb[0]=&b[ks];
					      ks=ks+1;
						  	k=k+1;
					   }
				       if(b[i].ab->by!=(b[i].by+1)&&(object[b[i].bx][b[i].by+1]==Empty))
					   {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by+1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
					      ks=ks+1;
						  	k=k+1;
					   }
				       if(b[i].ab->by!=(b[i].by-1)&&(object[b[i].bx+1][b[i].by-1]==Empty))
					   {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by-1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
					      ks=ks+1;					     
					   }					   
				   }
				   ///////////////////////////
                   if(b[i].bx==4&&b[i].by!=1&&b[i].by!=4)
				   {k=0;
				       if(b[i].ab->bx!=(b[i].bx-1)&&(object[b[i].bx-1][b[i].by]==Empty))
					   {
						  b[ks].bx=b[i].bx-1;
                          b[ks].by=b[i].by;
					      b[ks].ab=&b[i];
					      b[i].pb[0]=&b[ks];
					      ks=ks+1;
						  	k=k+1;
					   }
				       if(b[i].ab->by!=(b[i].by+1)&&(object[b[i].bx][b[i].by+1]==Empty))
					   {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by+1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
					      ks=ks+1;
						  	k=k+1;
					   }
				       if(b[i].ab->by!=(b[i].by-1)&&(object[b[i].bx+1][b[i].by-1]==Empty))
					   {
						  b[ks].bx=b[i].bx;
                          b[ks].by=b[i].by-1;
					      b[ks].ab=&b[i];
					      b[i].pb[k]=&b[ks];
					      ks=ks+1;					     
					   }					   
				   }

⌨️ 快捷键说明

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