parent
4d71ec3c1e
commit
d0ccca886c
@ -0,0 +1,64 @@
|
||||
#pragma once
|
||||
#include "graphics.h"
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
|
||||
//棋子位置
|
||||
struct ChessPos
|
||||
{
|
||||
int row;
|
||||
int col;
|
||||
|
||||
ChessPos(int r = 0, int c = 0):row{ r }, col{ c } {}
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
CHESS_WHITE = -1,//白
|
||||
CHESS_BLACK = 1//黑
|
||||
}chess_kind_t;
|
||||
class Chess
|
||||
{
|
||||
//添加数据成员
|
||||
private:
|
||||
IMAGE chessBlackImg;//黑棋子
|
||||
IMAGE chessWhiteImg;//白棋子
|
||||
|
||||
int gradeSize;//棋盘大小
|
||||
int margin_x;//棋盘左侧边界
|
||||
int margin_y;//棋盘顶部边界
|
||||
double chessSize;//棋子大小(棋盘格大小)
|
||||
ChessPos lastPos;//最后落子
|
||||
|
||||
//棋盘中棋子分布情况chessMap[行][列]
|
||||
vector<vector<int>>chessMap{};
|
||||
|
||||
//落子方确定
|
||||
bool playerFlag;//true黑false白
|
||||
|
||||
//更新
|
||||
void updateGameMap(ChessPos* pos);
|
||||
|
||||
//胜负判断
|
||||
bool checkWin();
|
||||
public:
|
||||
Chess(int gradeSize, int marginX, int marginY, double chessSize);
|
||||
//棋盘初始化
|
||||
void init();
|
||||
|
||||
//判断有效点击,并保存有效位置
|
||||
bool clickBoard(int x, int y, ChessPos *pos);
|
||||
|
||||
//落子
|
||||
void ChessMove(ChessPos *pos, chess_kind_t kind);
|
||||
|
||||
//获取棋盘大小
|
||||
int getGradeSize();
|
||||
|
||||
//是否获胜
|
||||
bool checkOver();
|
||||
|
||||
//获取指定位置棋子状态
|
||||
int getChessData(ChessPos* pos);
|
||||
int getChessData(int row, int col);
|
||||
};
|
||||
|
Loading…
Reference in new issue