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

📄 main.cpp

📁 人工智能课堂作业
💻 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 + -