예제 소스
장기로 이해하는 규칙 엔진과 평가 함수 탐색 · 파일 59개
MainWindow.h
#pragma once
#include "Ai.h"
#include "Game.h"
#include "SetupDialog.h"
#include <QMainWindow>
class BoardWidget;
class QLabel;
class QListWidget;
class QPushButton;
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget* parent = nullptr);
private slots:
void newGame();
void onHumanMoved();
void updateStatus();
void undoMove();
void passMove();
void resignGame();
void claimBikjang();
private:
void startGame(const GameSettings& settings);
void thinkIfAiTurn();
void playAiMove();
bool isHumanTurn() const;
QString resultText() const;
void refreshCaptures();
void refreshHistory();
Game game_;
Ai ai_;
GameSettings settings_;
BoardWidget* board_ = nullptr;
QLabel* turnLabel_ = nullptr;
QLabel* checkLabel_ = nullptr;
QLabel* scoreLabel_ = nullptr;
QLabel* capturedChoLabel_ = nullptr;
QLabel* capturedHanLabel_ = nullptr;
QListWidget* historyList_ = nullptr;
QPushButton* undoButton_ = nullptr;
QPushButton* passButton_ = nullptr;
QPushButton* bikjangButton_ = nullptr;
QPushButton* resignButton_ = nullptr;
bool aiBusy_ = false;
};