게시판SGF 기보로 학습하는 바둑 LLM 인공지능예제 소스

예제 소스

SGF 기보로 학습하는 바둑 LLM 인공지능 · 파일 169개

aiplayer.h

#pragma once

#include "goboard.h"
#include <QPoint>

namespace AiPlayer {

/// 결과: 둘 좌표. row<0 또는 col<0 이면 패스 권고.
struct MoveSuggestion {
    int row = -1;
    int col = -1;
    bool pass = false;
    /// 모든 합법수가 자해(자충수/자기 집 메우기/자기 단수)인 종반 상황.
    /// MainWindow 는 이 신호를 받으면 더 두지 않고 자동 계가 모드로 진입한다.
    /// (AI 는 자발적으로 패스/기권하지 않으나, 둘 가치 있는 자리가 없는 종반엔
    ///  계속 자충수를 두지 않고 게임을 마치는 것이 옳다.)
    bool noGoodMove = false;
    int  bestScore = 0; ///< 디버그/판정용 최고 후보 점수
};

/// 단순 휴리스틱: 합법수 중 (a) 따낼 수, (b) 위협 받는 자기 그룹 살리기,
/// (c) 자기 그룹 활로 늘리기 + 상대 그룹 활로 줄이기 + 중앙 가중치 로 가장 좋은 점.
/// 합법수가 없거나 모두 자기 영역만 줄이는 작은 점이면 패스.
MoveSuggestion suggestMove(const GoBoard &board, Stone aiColor);

} // namespace AiPlayer