📄 main.cpp
字号:
#include "wumpus_world.h"#include "rc_agent.h"#include "types.h"
Percept per;
Percept percep1[5][5];
Action *acon;
int X,Y;
void main(){ Wumpus_World w;
w.agent.gold=0;
per.breeze=Null;
per.glitter=Null;
per.stench=Null;
for(int j=0;j<=4;j++)
{ for(int k=0;k<=4;k++)
{
//*(*(percep+j)+k)->breeze=Null;
//*(*(percep+j)+k)->glitter=Null;
//*(*(percep+j)+k)->stench=Null;
//*(*(percep+j)+k)=per;
percep1[j][k].breeze=Null;
percep1[j][k].glitter=Null;
percep1[j][k].stench=Null;
//cout<<"jjjjj"<<endl;
}
}
w.init();//初始化整个wumpus world
w.reset_agent();//初始化智能体
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
Control_Agent rca;
for(int m=0;m<5;m++)
{
for(int n=0;n<5;n++)
rca.object[m][n]=empty;
}
rca.object[1][1]=Empty;
for( int i=0;i<88;i++)
rca.raction[i]=Undo;
while(w.agent.gold==0)
{
/*if(w.adjacent(Pit))
w.agent.percept.breeze=true;
if(w.adjacent(Live_wumpus))
w.agent.percept.stench=true;
if(w.current(Gold))
w.agent.percept.glitter=true;*/
//cout<<"object[2][1]"<<rca.object[2][1]<<endl;
//cout<<"object[2][2]"<<rca.object[2][2]<<endl;
// cout<<"object[3][1]"<<rca.object[3][1]<<endl;
// cout<<"object[1][4]"<<rca.object[1][4]<<endl;
if(w.agent.alive==Fasle)
{ cout<<"THE AGENT HAS DIED!!!"<<endl;return;}
X=w.agent.x;
Y=w.agent.y;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[i+1],w.world);
}
w.show(percep1,w.world);
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
}
}
/*(*(percep+w.agent.x)+w.agent.y)=percep1[w.agent.x][w.agent.y];
Control_Agent rca;
for(int m=0;m<5;m++)
{
for(int n=0;n<5;n++)
rca.object[m][n]=empty;
}
rca.object[1][1]=Empty;
for( int i=0;i<88;i++)
rca.raction[i]=Undo;
X=w.agent.x;
Y=w.agent.y;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
cout<<"raction[0]"<<rca.raction[0]<<endl;
cout<<"raction[1]"<<rca.raction[1]<<endl;
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[i+1],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
cout<<"w.agent.x"<<w.agent.x<<" "<<"w.agent.y"<<w.agent.y<<w.agent.percept.stench<<endl;
cout<<"w.world[4][2]"<<w.world[4][2]<<endl;
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
cout<<endl;
cout<<"pit"<<rca.object[2][1]<<endl;
cout<<"pit"<<rca.object[1][1]<<endl;
cout<<percep1[2][1].breeze<<endl;
cout<<"pit"<<rca.object[3][1]<<endl;
cout<<"pit"<<rca.object[2][4]<<endl;
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//xuanhuan
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
X=w.agent.x;
Y=w.agent.y;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,rca.raction[1+i],w.world);
}
w.show(percep1,w.world);
//
//由计算机控制,选择执行的动作
/*while(w.agent.gold==0)
{
/*if(w.adjacent(Pit))
w.agent.percept.breeze=true;
if(w.adjacent(Live_wumpus))
w.agent.percept.stench=true;
if(w.current(Gold))
w.agent.percept.glitter=true;
Control_Agent rca;
for( int i=0;i<88;i++)
rca.raction[i]=Undo;
X=w.agent.x;
Y=w.agent.y;
rca.select_action(percep1,X,Y);
for(i=0;i<88;i++)
{
w.do_action(rca.raction[i],X,Y,w.world);
}
w.show(percep1);
w.set_percepts();
percep1[w.agent.x][w.agent.y].breeze=w.agent.percept.breeze;
percep1[w.agent.x][w.agent.y].glitter=w.agent.percept.glitter;
percep1[w.agent.x][w.agent.y].stench=w.agent.percept.stench;
for( i=0;i<88;i++)
rca.raction[i]=Undo;
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -