📄 aidlg.h
字号:
// AIDlg.h : 头文件
//
#pragma once
#include "atltypes.h"
#include "afxwin.h"
#include "afxcmn.h"
#include "searcher.h"
#include "dfs.h"
#include "bdfs.h"
#include "idfs.h"
#include "bfs.h"
#include "tbfs.h"
#include "astar1.h"
#include "astar2.h"
#include "ida.h"
#include "parameter.h"
#include "graph.h"
#include "help.h"
#include "compare.h"
#include <vector>
//#define TEST
#ifdef TEST
#include <cstdlib>
#endif
// CAIDlg 对话框
class CAIDlg : public CDialog
{
// 构造
public:
CAIDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_AI_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedButtonIntroduction();
public:
const static int NUM = 9;
CBitmap m_bitmap[NUM]; //位图信息
CButton m_init[NUM], m_end[NUM], m_hand[NUM]; //状态按钮
CRect rectLarge;
CRect rectShow;
CRect rectRight;
CRect rectDown;
public:
afx_msg void OnBnClickedButtonHand();
private:
void changeBitmap(CButton [], CButton [], int [], int [], int ); //改变图片函数
public:
CParameter set; //参数设置窗口
int m_heuristic; // 启发函数系数
int m_maxstep; //有界深度优先函数界限
int m_sleep; //自动演示延迟时间(ms)
CButton m_random_begin; //是否随机初始状态
CButton m_random_end; //是否随机结束状态
bool m_byhand; //是否手动玩
int m_selectval; //此值用来选择状态图片
int pos_begin[NUM], pos_end[NUM]; //图片所在位置
int pos_begin_return[NUM], pos_end_return[NUM]; //状态反向映射图片位置
CButton select_begin[NUM], select_end[NUM]; //标记图片是否被选择
bool gamestart; //是否求解中
std::vector<int> path; //用于保存路径
int top; //指示路径中的当前结点
int nowstatus, laststatus; //初始、结束状态
public:
afx_msg void OnBnClickedHand();
afx_msg void OnBnClickedEnd();
afx_msg void OnBnClickedInit();
afx_msg void OnBnClickedCheckHand();
afx_msg void OnBnClickedButtonRandom();
public:
CButton prevstep; //上一步
CButton nextstep; //下一步
CButton recover; //恢复状态
CButton display; //自动演示
public:
BOOL statusReady(void);
int getStatus(int pos_return[]);
void SetStatus(CButton button[], CButton select[], int pos[], int pos_return[], int status);
public:
//各种搜索算法
DFS dfs;
BDFS bdfs;
IDFS idfs;
BFS bfs;
TBFS tbfs;
ASTAR1 astar1;
ASTAR2 astar2;
IDA ida;
searcher *search;
int ans; //搜索结果
enum{TYPE_DFS = 0, TYPE_BDFS, TYPE_BFS, TYPE_TBFS, TYPE_ASTAR1, TYPE_ASTAR2, TYPE_IDFS, TYPE_IDA} search_type;
int stop; //用于终止线程
public:
#ifdef TEST
void test();
#endif
afx_msg void OnBnClickedSearchType();
void SetInstroduction();
afx_msg void OnBnClickedButtonBegin();
void move(int pos);
afx_msg void OnBnClickedButtonNext();
afx_msg void OnBnClickedButtonPrev();
afx_msg void OnBnClickedButtonDefault();
afx_msg void OnBnClickedButtonRecover();
afx_msg void OnBnClickedButtonAuto();
void loadpicture(int start);
afx_msg void OnAbout();
afx_msg void OnGirl();
void changeimage(int id);
afx_msg void OnDigits();
void SetNowstep(int step);
afx_msg void SetParameter();
afx_msg void OnIco();
afx_msg void OnCreate();
afx_msg void OnHelp();
afx_msg void OnCompare();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -