게시판테트리스를 배우는 강화학습 에이전트 만들기예제 소스

예제 소스

테트리스를 배우는 강화학습 에이전트 만들기 · 파일 31개

main.cpp

#include "main_window.h"

#include <QApplication>
#include <QCommandLineParser>

int main(int argc, char* argv[]) {
    QApplication app(argc, argv);
    QCommandLineParser parser;
    parser.setApplicationDescription(QStringLiteral("Tetris (Qt) — RL friendly"));
    parser.addHelpOption();
    QCommandLineOption rlPortOpt(QStringList() << "rl-port", "RL control TCP port (localhost).", "port");
    QCommandLineOption tickMsOpt(QStringList() << "tick-ms", "Tick interval in ms (slower = bigger). Default 650.", "ms");
    parser.addOption(rlPortOpt);
    parser.addOption(tickMsOpt);
    parser.process(app);

    int rl_port = 0;
    if (parser.isSet(rlPortOpt)) {
        bool ok = false;
        rl_port = parser.value(rlPortOpt).toInt(&ok);
        if (!ok) {
            rl_port = 0;
        }
    }

    int tick_ms = 650;
    if (parser.isSet(tickMsOpt)) {
        bool ok = false;
        const int v = parser.value(tickMsOpt).toInt(&ok);
        if (ok && v > 0) {
            tick_ms = v;
        }
    }

    MainWindow w(nullptr, rl_port, tick_ms);
    w.show();
    return app.exec();
}