📄 five.h
字号:
/**
*
* 文件名: Five.h
* 描述: 五子棋游戏类申明
* 作者: 魏罡
* 时间: 2005.3.27 - 2005.10.15
*
* file name: Five.h
* description:
* author: WEI-Gang
* time: 2005.3.27 - 2005.10.15
*
*/
#include "Struct.h"
#include "KeyChessman.h"
#include "Shift.h"
#include "Tree.h"
#ifndef GOBANG_GAME_CLASS_CFIVE
#define GOBANG_GAME_CLASS_CFIVE "This program is programed by WEI-Gang "
class CFive{
//五子棋游戏主类,用于进行一个游戏。包括游戏的初始化,行棋,自动获取下一步棋等操作。
//The main class for gobang. Used to play a game.
public:
CFive();
int Play(int x,int y);//行棋,正常返回0,得胜返回1,黑子禁手返回-1,和棋返回4。
void AutoPlay(int &x,int &y);//自动获取下一着棋
char GetMap(int x,int y){return map[x][y];}//获取棋盘x,y处状态
void Clear();//清除所有行棋(初始化棋盘)
void Back();//悔棋
void EndGame(){times = -100;}//强行结束游戏
int GetTimes(){return times;}//获取当前第几手行棋
~CFive();
// int GetV(int x,int y){return bd[x][y].val;}
protected:
int FirstPlay(int x,int y);//第一手行棋
int SecondPlay(int x,int y);//第二手行棋
int ThirdPlay(int x,int y);//第三手行棋
int OtherPlay(int x,int y);//一二三手后的行棋
void FirstAutoPlay(int &x,int &y);//自动获取第一手行棋
void SecondAutoPlay(int &x,int &y);//自动获取第二手行棋
void ThirdAutoPlay(int &x,int &y);//自动获取第三手行棋
void OtherAutoPlay(int &x,int &y);//自动获取一二三手后的行棋
int BDPlay(int x,int y,char col);//内部棋盘行棋
void ChangeValue(int x,int y,char col,int v);//col色棋子(x,y)处落子后,权值变更,v为增减开关
int FindBlank(int &x,int &y,int dx,int dy,char col);//寻找col颜色(x,y)处dx,dy方向的空白,成功返回1,失败返回0
int CountValue(int result,char col);//根据传入结果和棋子颜色,计算出增加的权值
int Count(int x,int y,char col);//计算col颜色(x,y)处落子后连子情况,返回值:长连11,五10,活四9,四四8,四三7,三三6,四4,活三3,其他0
int Count(int x,int y,int dx,int dy,char col);//计算col颜色(x,y)处落子后dx,dy方向连子情况,返回值:长连6,五5,双四4,活四3,四2,活三1,其他0
protected:
int times;//行棋次数
CTree * tree;//经验数:用于记录以前游戏结果
CShift * shift;//转换类:用于转换用户棋盘与内部棋盘间的坐标
CKeyChessman keychessmans;//关键棋子类,用于存放下一手行棋时的关键棋子。
char map[15][15];//用户棋盘
board bd[15][15];//内部棋盘
int tempx,tempy;//记录第二手的棋子位置
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -