게시판장기로 이해하는 규칙 엔진과 평가 함수 탐색예제 소스

예제 소스

장기로 이해하는 규칙 엔진과 평가 함수 탐색 · 파일 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;
};