chess.h

来自「包括用VC开发的五子棋程序 以及VRML语言写的虚拟地理环境程序」· C头文件 代码 · 共 74 行

H
74
字号
#ifndef STUDENT
#define STUDENT

#include <afxtempl.h>

class Step
{
public:
	Step():x(0),y(0),side(0),deep(0)
	{
	}
	
	int x;				//x,y表示在数组中的位置
	int y;
	
	int side;			//表示下子方
	int deep;
};

class GameStatus
{
public:
	GameStatus()//:deep(0),score(0),is_machine(false)
	{
	}

	int deep;
	int score;
	bool is_machine;
	Step st;			//当前走步
	int fivearray[15][15];
};

class Chess
{
public:
	Chess();
	~Chess();

public:
	int LeftRight(int i,int j,int side);				//从左到右相同棋子数
	int UpDown(int i,int j,int side);					//从上到下相同棋子数
	int LUptoDown(int i,int j,int side);				//从左上到右下相同的棋子数
	int RUptoDown(int i,int j,int side);				//从右上到左下相同的棋子数

	int LeftToRight_Status(int i,int j,int array[][15]);		//搜索从左到右棋子的状态
	int UpToDown_Status(int i,int j,int array[][15]);			//搜索从上到下棋子的状态
	int LeftUpToRightDown_Status(int i,int j,int array[][15]);	//搜索从左上到右下棋子的状态
	int LeftDownToRightUp_Status(int i,int j,int array[][15]);	//搜索从左下到右上棋子的状态

	int SearchValue(int array[][15],Step& st,bool machine);					//返回当前状态的分数
	void GetCurrentScore(GameStatus& board_situation);						//返回当前棋盘的分数
	int SearchMaxValue(Step& st,int array[][15]);							//返回对仅当前棋盘分析得出的最好走步
	int DeepSearch(GameStatus ts,Step& st,bool machine,int value);			//递归搜索最好的走步

	void ComputerGo();

	void Input(int i,int j);				//人方下子
	void Output();			//输出棋盘
	void Regret();			//进行悔棋操作

	bool Judge();				//裁判函数

	void ComputerGoFirst();
	void PersonGo(int& i,int& j);

public:

	int FiveArray[15][15];					//棋盘存储数组
	CList<Step,Step&>StepList;				//存储所走棋步
};

#endif

⌨️ 快捷键说明

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