📄 rc_agent.cpp
字号:
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 + -