예제 소스
테트리스 MoE 매크로 정책: 네 전문가로 착수 고르기 · 파일 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();
}