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

📄 _gamer.h

📁 利用c++编写的带人工智能的跳棋程序。屏幕的中央是棋盘
💻 H
字号:
//此文件声明了游戏者类,以及由它派生的human和robot类

#ifndef  Gamer_h
#define  Gamer_h
#include "structs.h"

class _Gamer					// 由游戏者类的定义
{
protected: 
	int MyChessman[10];  			// 存放游戏者所拥有的10个棋子的序号
	_Nodes *Nodes;				// 指向棋盘的指针
public:
	int gamerID;				// 游戏者的序号
	int Sellect;				// 选择的棋子序号
	int Aimplace;				// 目的结点序号
	int GamerType;				// 游戏者类型,1为人控制,0为电脑控制
	virtual _Message Input()=0;		// 虚函数,人类玩家和电脑玩家不同
	void Init(int *,_Nodes *);		// 为每个游戏者初始化,参数分别为指向含有游戏者序号和
						// 所拥有的棋子的数组指针,指向棋盘的指针
	
	struct _EvalueData   			// 存储评估走棋效果数据的结构体
		{
    			int Score;     		// 走棋评估值
    			int start;     		// 起点
    			int end;       		// 终点
		};
	struct _GamerQuen 			//记录游戏者顺序的链表
		{
    			int GamerId;  		//游戏者序号
    			int EnemyId;		//对手的序号
    			_GamerQuen *Next;	//指向下一个链表的元素
		};
	struct _Path   				//记录某棋子可走位置的结构体
		{
			int start;    		// 起点棋子位置
			int count;    		// 可走位置总数
			int path[40]; 		// 记录目的位置的数组
		};
		
};

class _Human:public _Gamer			//从_Gamer继承的_Human子类
{
public:
	_Message Input();			//human的输入
};

class _Robot:public _Gamer			//从_Gamer继承的_Robot子类
{
private:
	_GamerQuen *GamerQuen;  		// 游戏者顺序信息链表
    	int SearchDepth;			// 搜索的深度
	int NearWin,FarWin;			// 用于对采取不同的搜索方式进行判断
	void Think();				// 机器人的思考
	void DFS2(int start,_Nodes *tNodes);	// 深度优先搜索函数,用于搜索可以走的路径
    	void GetAllMyPath(_Path *AllPath,_Nodes *tNodes,int type); 
    						// 取得指定游戏者ID(参数三)棋子的可走路径
                                             	// 存入_Path中,_Nodes*为指向棋盘的指针
    	_EvalueData Evalue(_Nodes *,int,int);	// 评估棋盘(_Nodes*所指)上指定游戏者ID棋子局势
                        			// 得分放在_EvalueData结构体中的Score中返回
    	_EvalueData Search(_Nodes *,int);	// 指定深度递归搜索,返回最佳走法可得到的局势
        _EvalueData aBSearch(_Nodes *,int depth,int score);
                                    		// 剪枝法搜索,深度depth,上一级分数score
						// 同样返回最佳走法可得到的局势
public:

	void GetCondition(int **,int );  	// 取得此局游戏者顺序和信息
    	_Message Input();           		//Robot的输入
    	_Robot();                   		//构造函数,对Robot进行初始化
    	~_Robot();                  		//析构函数
};


#endif

⌨️ 快捷键说明

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