leonwu0108 / Matrix-Search-with-Astar

An application of matrix searching using A* algorithm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Readme

开发工具简介

  • 使用编程语言:C++
  • 图形界面开发框架:Qt 5.13.0

源码简介

  • EightNums2.pro:Qt Creator项目文件
  • global.h:程序中使用的全局变量的声明
  • global.cpp:程序中使用的全局变量的定义
  • func.h:程序后端主要使用的函数的声明
  • func.cpp:程序后端主要使用的函数的定义
  • mainwindow.h:主窗口类声明
  • mainwindow.cpp:主窗口类实现
  • mainwindow.ui:主窗口UI设计文件
  • main.cpp:主函数

程序使用方法

  • 在提交的作业文件夹中,除报告和readme文件外还有两个名称分别为“Executable_App”和“Src_Files”的文件夹,分别包含程序打包后的可执行文件和程序全部源码。在Executable_App文件夹中直接找到名为“MatrixSearch.exe”的程序可执行文件,点击执行即可
  • 接下来介绍程序的使用方法:
    • 程序左上角的Row和Column输入框可以键入修改阵列的行数和列数。输入后点击“Confirm”键即可更改。程序的默认阵列大小为3*3,输入的行数和列数可以不等。由于程序的内存管理机制,支持的最大格数为25,当输入的行列数之积大于这一数字(如6*6)时,程序会提示输入无效重新输入
    • 点击界面**上方的“Auto Generate State”按键可以随机生成初始状态。由于算法本身的设计,每次点击生成的随机阵列会与原阵列的区别较小,因此若想生成与原阵列区别较大的阵列可以多点击几次
    • 界面的右侧两个矩阵输入框分别是用来手动初始化阵列状态和手动设置阵列目标的。如果一个位置不输入默认为0。由于这里没有设置输入检测,因此请务必保证自己的输入正确。输入后点击右侧相应的确认按键,即可完成设定
    • 初始状态和目标状态的默认值均为{ 空格, 1, 2, 3, 4, ..., M*N-1 }
    • 右侧下方的两个文本框分别用于显示搜索出来的移动方案的步数的搜索花费的时间
    • 点击右下角的“Search Route”按键即可进行从初始状态到目的状态的移动路径的搜索。如果搜索成功,则会显示“Found!”;如果无解,则会显示“Cannot find a route!”;如果可用的内存耗尽,则会显示“No space!”(5*5及以内所有情况下均不会耗尽内存)。同时,在进行搜索之前请务必保证初始状态和目的状态的设置是合法的
    • 搜索完成后,点击界面右下角的“Show”按键,则左侧阵列部分会动态展示所搜索到的可行路径。“Show Speed”栏可以调节显示的速度,从1到3为越来越快

About

An application of matrix searching using A* algorithm


Languages

Language:C++ 88.5%Language:QMake 7.1%Language:C 4.5%