8#ifndef CHINESE_CHESS_H_KL_2020_05_13__
9#define CHINESE_CHESS_H_KL_2020_05_13__
16#include "chinesechess_export.h"
43 SwapRedBetweenBlack = 4,
44 OnlyTopRed = OnlyBottomRed | SwapRedBetweenBlack,
45 OnlyBottomBlack = OnlyTopBlack | SwapRedBetweenBlack,
46 TopBlackAndBottomRed = OnlyTopBlack | OnlyBottomRed,
47 TopRedAndBottomBlack = TopBlackAndBottomRed | SwapRedBetweenBlack
49 int SetBoardLayout(ENUM_BoardLayout layout);
50 ENUM_BoardLayout GetBoardLayout();
66 bool GoChess(
int i,
int j,
bool bNext =
false);
77 virtual int SaveChessGame(
const char* pszFile);
83 virtual int LoadChessGame(
const char* pszFile);
84 time_t GetStartTime();
85 int SetStartTime(
const time_t &t);
87 int SetEndTime(
const time_t &t);
88 std::string GetRedName();
89 int SetRedName(
const char* pszName);
90 std::string GetBlackName();
91 int SetBlackName(
const char* pszName);
92 std::string GetGameTag(
const std::string &tag);
93 int AddGameTag(
const std::string &szTag,
const std::string &szVal);
95 int EnablePromptSound(
bool sound =
true);
96 bool getEnablePromptSound();
97 int EnablePromptMessage(
bool bMsg =
true);
98 bool getEnablePromptMessage();
111 virtual int onPromptSound(PROMPT_SOUND sound = NoGo) = 0;
120 virtual int onGoChess(
int i,
int j, CPiece::ENUM_QiZi chess) = 0;
124 bool IsGoChess(
int i,
int j);
130 bool m_bPromptMessage;
154 CPiece::ENUM_QiZi m_ChessBoard[9][10];
158 typedef enum _ENUM_WalkState {
164 ENUM_WalkState m_WalkState;
168 int m_PreviouPositionX;
169 int m_PreviouPositionY;
170 int m_CurrentPositionX;
171 int m_CurrentPositionY;
172 int CleanPrompt(
int &i,
int &j);
174 bool IsValidPosition(
int i,
int j);
180 int ConvertQiPang(
const int &i,
const int &j,
int &x,
int &y);
棋局类 完成棋局的加载、保存、复盘等对棋局的操作 注意:棋盘布局:详见《象棋竞赛规则(2011)》第一章 第1条 红棋在下,黑棋在上,左上角为[0][0],右下角为[9][10]
virtual int onPromptMessage(CGoRule::ENUM_ReturnValue val)=0
提示错误消息
virtual int onGoChess(int i, int j, CPiece::ENUM_QiZi chess)=0
走棋事件
enum CChineseChess::_ENUM_BoardLayout ENUM_BoardLayout
标准棋盘布局:详见《象棋竞赛规则(2011)》第一章 第1条。红棋在下,黑棋在上。 界面可以支持非标准棋盘布局(红在上,黑在下)
virtual int onDrawPrompt(int i, int j)=0
画提示框
virtual int onCleanPrompt(int i, int j)=0
清除提示框
_ENUM_BoardLayout
标准棋盘布局:详见《象棋竞赛规则(2011)》第一章 第1条。红棋在下,黑棋在上。 界面可以支持非标准棋盘布局(红在上,黑在下)
文件名:GoRule.h 功 能:走棋规则 编译器:Visual C++ 6.0 作 者:康 林 版 本:1.0.0.1 日 期:2004-10-18 时 间:9:55:40