-
Notifications
You must be signed in to change notification settings - Fork 188
/
MachineGame.h
executable file
·34 lines (27 loc) · 1.52 KB
/
MachineGame.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2019-2024 XMuli & Contributors
// SPDX-GitHub: https://github.com/XMuli/ChineseChess
// SPDX-Author: XMuli <[email protected]>
#ifndef MACHINEGAME_H
#define MACHINEGAME_H
#include "ChessBoard.h"
#include "ChessStep.h"
#include <QVector>
class MachineGame : public ChessBoard
{
public:
MachineGame();
~MachineGame();
void chooseOrMovePieces(int tempID, int& row, int& col); // 辅助函: 选棋或移动棋子
void saveStep(int moveID, int checkedID, int row, int col, QVector<ChessStep*>& steps); // 保存棋子步骤
void getAllPossibleMoveStep(QVector<ChessStep*>& steps); // 获得所有可能的移动步骤(击杀)
void getAllPossibleMoveStepAndNoKill(QVector<ChessStep*>& steps); // 获得所有可能的移动步骤(不击杀)
virtual void mousePressEvent(QMouseEvent *); // 鼠标点击事件
void clickPieces(int checkedID, int& row, int& col);
void fakeMove(ChessStep* step); // 假装移动棋子
void unFakeMove(ChessStep* step); // 撤回先前假装移动棋子的步骤
int calcScore(); // 计算最好的局面分
ChessStep* getBestMove(); // 获得最好的移动步骤
void machineChooseAndMovePieces(); // 机器 黑方时间: 进行选棋+下棋
};
#endif // MACHINEGAME_H