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

📄 guessnumall.h

📁 猜数字游戏和一个人工智能猜数字的游戏VC++
💻 H
字号:
/*
* 文件名称: GuessNumAll.h
* 程序描述: 本头文件定义了决策树节点类以及生成决策树时的元素类
* 编制日期: 2003-05-28
* 程序作者: realfun
* 联系方式: rzfemail@etang.com
*/

#include <map>
#include <set>
#include <string>

/*Decision Tree Node class
	每一个Node表示一个猜测
	ch[4]表示游戏者的猜测
	NextStep表示对每一种(0A0B-4A0B共15种)猜测aAbB,将其转换为int(a*10+b)
	然后将之对应于下一个Node,如果对应的猜测以后数据集约简为空,则不计入NextStep
*/
class Node
{
public:
	char m_num[4];	//0123-9876
	map<int, Node*> NextStep;	//猜测返回aAbB时,下一个猜测
};

/*class of creation list element
	每一个Element表示分析到现在为止
*/
class Element
{
	char m_num[4];	//当前节点的数
	char m_dad[4];	//父节点的数
	int m_level;	//当前的节点的等级
	set<int> remain;	//剩余的可猜之数
};

//class GuessNumAll, 在构函中完成决策树(耗时),用于猜测,可打印最大猜测长度,平均长度
//	以及超出某一长度的数,或者两个长度之间的数
class GuessNumAll
{
public:
	GuessNumAll(int begin = 123);	//default: begin guess with 0123
	~GuessNumAll();
	void Guess(void);
	void PrintStack(void);

	//从XX开始猜,共有YY个数字猜测长度在from到to之间,它们是:...
	void PrintBetween(int from = 1, int to = 8);
	int MaxLen(void);
	double AverLen(void);
private:
	bool ConfirmAB(const char *l, const char *r, char *ab);	//为提速,略去类型检查,并且做成inline
	int GetABValue(const char *l, const char *r, char *ab);
	void ToChar4(int value, char *ch4);
	const static int m_base[5];

	
	list<string> m_setAll;
	list<string> m_setCurr;
	vector<string> m_stack;
	int m_times;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -