欢迎来到天天文库
浏览记录
ID:51444680
大小:52.00 KB
页数:10页
时间:2020-03-24
《人工智能A星算法(C++).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#include#includeusingnamespacestd;#defineM3classMatrixNode{//定义MatrixNode类public:intm;//在位个数intd;//深度intp;//牌与其目标位置直接步数之和intf;//f=d+p,估价函数intplace[M][M];//当前矩阵intplacetrue[M][M];//目标矩阵intkong_x;//空位的横坐标intkong_y;//空位的纵坐标//--------
2、-----------------------------------------------------------------------public:MatrixNode();MatrixNodestart(MatrixNodeM_Matrix);//初始矩阵intTruePlace(MatrixNodeT_place);//查找在位数intp_place(MatrixNodeP_place);//坐标差绝对值之和intf_kongx(MatrixNodefind_kongx);//找出空格的横坐标intf_kongy(MatrixNodefind_kon
3、gy);//找出空格的纵坐标boolsolved(MatrixNodeM_Matrix);//判断是否有解,奇偶性相同则有解,否则无解MatrixNodeup_move(MatrixNodeM_Matrix);//空格上移MatrixNodedown_move(MatrixNodeM_Matrix);//空格下移MatrixNodeleft_move(MatrixNodeM_Matrix);//空格左移MatrixNoderight_move(MatrixNodeM_Matrix);//空格右移MatrixNodeupdata_m(MatrixNodeM_Mat
4、rix);//移动后更新状态MatrixNodeparents(dequeilist,MatrixNodeM_Matrix);//找到该节点的父亲};//=========================================================================================MatrixNode::MatrixNode(){//目标矩阵placetrue[0][0]=1;placetrue[0][1]=2;placetrue[0][2]=3;placetrue[1][0]=8;pla
5、cetrue[1][1]=-1;placetrue[1][2]=4;placetrue[2][0]=7;placetrue[2][1]=6;placetrue[2][2]=5;}//-----------------------------------------------------------------------------------------MatrixNodeMatrixNode::start(MatrixNodeM_Matrix){//初始矩阵cout<<"请按如下格式输入初始矩阵(空位用0表示):"<6、6708"<>M_Matrix.place[a][b];M_Matrix.d=0;M_Matrix=M_Matrix.updata_m(M_Matrix);M_Matrix.d=M_Matrix.d-1;//初始更新时深度多加1,应该减去M_Matrix.f=M_Matrix.f-1;returnM_Matrix;}//-----------------------------------------------7、------------------------------------------boolsolved(MatrixNodeM_Matrix){//判断是否可解intnum[8];inttarget[8];inta=0;intb=0;for(intm=0;m8、[m][n];}}int
6、6708"<>M_Matrix.place[a][b];M_Matrix.d=0;M_Matrix=M_Matrix.updata_m(M_Matrix);M_Matrix.d=M_Matrix.d-1;//初始更新时深度多加1,应该减去M_Matrix.f=M_Matrix.f-1;returnM_Matrix;}//-----------------------------------------------
7、------------------------------------------boolsolved(MatrixNodeM_Matrix){//判断是否可解intnum[8];inttarget[8];inta=0;intb=0;for(intm=0;m8、[m][n];}}int
8、[m][n];}}int
此文档下载收益归作者所有