_chessb.h

来自「利用c++编写的带人工智能的跳棋程序。屏幕的中央是棋盘」· C头文件 代码 · 共 28 行

H
28 行
字号
//此文件声明了棋盘类
#include "structs.h"
class _ChessBoard
{
private:
	_Nodes Nodes[121];			//存放了121个节点的数组
	int road[121];				//记录走棋路径的数组
	int Nowroad;				//记录路径时候记录当前位置的数组下标
	int DFS(int,int);			//深度优先搜索(Deep First Search),参数分别为起始结点序号和目标结点序号
	void cut(_Nodes *,int);			//去掉重复的结点,参数分别为存放所有节点的数组和节点的个数(包含重复的)
	void sort(_Nodes *);			//把121个结点从上到下、从左到右排序,参数是存放所有节点的数组
	void joint(_Nodes *,int (*p)[2]);	//连接各结点,参数分别是存放所有节点的数组和存放节点相邻位置的坐标增值的数组的指针
	void record(int,int);			//记录游戏的步骤,参数分别为起始结点序号和目标结点序号
	int countstep;				//记录已走棋的步数
	_link *head,*tail;			//指向记录每步棋的链表的头指针和尾指针
public:
	_ChessBoard(int,int,int,int);		//初始化棋盘(构造函数)
	int **Reset();				//对棋盘棋子进行初始化
	_Nodes *AllNodes();			//返回存放节点的数组
	int JudgeSellect(int,int);		//判断棋子是否能够选定,参数分别为:游戏者序号和选定点的结点序号
	int JudgeMove(int,int,int);		//判断棋子能否移动,参数分别为:游戏者序号,起始点序号,目标点序号	
	int Decide(int);			//判断是否有一游戏方已经赢棋,参数为游戏者序号
	int * MoveRoad();			//返回记录路径的数组road[]
	void MoveIt(int,int);			//移动棋子,参数为起始点序号和目标点序号
	void back();				//返回到上一次的棋局
	~_ChessBoard();				//析构函数
	
};

⌨️ 快捷键说明

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