# Astar解八数码 **Repository Path**: li-zch/astar-solving-eight-digit ## Basic Information - **Project Name**: Astar解八数码 - **Description**: 使用A*算法求解八数码问题,人工智能课程项目,hrcFunLiu.cpp与hrcFunLuo.cpp不在MIT许可范围,版权归对应小组成员所有。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-09-27 - **Last Updated**: 2023-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Astar解八数码 #### 介绍 使用A*算法求解八数码问题,人工智能课程项目,hrcFunLiu.cpp与hrcFunLuo.cpp不在MIT许可范围,版权归对应小组成员所有。 #### 问题介绍: 基于A*算法求解八数码问题 1. 至少定义3种不同的启发式函数,编程实现求解八数码问题的A*算法; 2. 要求用可视化界面演示算法执行过程,应能选择预定义的启发式函数,能随机初始化初始状态,能单步执行,也能连续执行,能画出搜索树,同时标出估价函数在每个节点的各项函数值,能展示OPEN表和CLOSED表的动态变化过程; 3. 能统计出扩展节点数和算法执行时间,以便对采用不同启发式函数的A*算法的性能做对比研究。 #### 软件架构 1. IDE VS2022 2. 主要依靠Astar类实现; 3. myMain.h存储的函数声明,函数定义在myMain.cpp; 4. 两个hrcFun.cpp文件是小组内另两个成员编写的启发式函数,以姓氏命名。hrcFunLiu.cpp与hrcFunLuo.cpp不在MIT许可范围内,版权归编写函数的成员所有。 5. 可以查看思维导图了解软件基本框架(思维导图应该有及时更新吧)。OPEN表和CLOSE表都是用unordered_map类。 #### 安装教程 1. VS 2022打开EightDigitalProblems.sln即可。 #### 使用说明 1. Astar类的构造函数包括两部分,首先是启发函数,然后是初始节点; 2. 对于Astar的构造函数而言,初始节点输入为nullptr时,将随机生成初始节点,随机函数使用algorithm中的random_shuffle函数; 3. 目前排序函数仅仅是遍历然后给出Fn值最小的节点。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)