MCPcopy Create free account
hub / github.com/cutechess/cutechess / parseMatch

Function parseMatch

projects/cli/src/main.cpp:256–733  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

254}
255
256EngineMatch* parseMatch(const QStringList& args, QObject* parent)
257{
258 MatchParser parser(args);
259 parser.addOption("-srand", QMetaType::UInt, 1, 1);
260 parser.addOption("-tournament", QMetaType::QString, 1, 1);
261 parser.addOption("-engine", QMetaType::QStringList, 1, -1, true);
262 parser.addOption("-each", QMetaType::QStringList, 1);
263 parser.addOption("-variant", QMetaType::QString, 1, 1);
264 parser.addOption("-concurrency", QMetaType::Int, 1, 1);
265 parser.addOption("-draw", QMetaType::QStringList);
266 parser.addOption("-resign", QMetaType::QStringList);
267 parser.addOption("-maxmoves", QMetaType::Int, 1, 1);
268 parser.addOption("-tb", QMetaType::QString, 1, 1);
269 parser.addOption("-tbpieces", QMetaType::Int, 1, 1);
270 parser.addOption("-tbignore50", QMetaType::Bool, 0, 0);
271 parser.addOption("-event", QMetaType::QString, 1, 1);
272 parser.addOption("-games", QMetaType::Int, 1, 1);
273 parser.addOption("-rounds", QMetaType::Int, 1, 1);
274 parser.addOption("-sprt", QMetaType::QStringList);
275 parser.addOption("-ratinginterval", QMetaType::Int, 1, 1);
276 parser.addOption("-outcomeinterval", QMetaType::Int, 1, 1);
277 parser.addOption("-resultformat", QMetaType::QString, 1, 1);
278 parser.addOption("-debug", QMetaType::QString, 0, 1);
279 parser.addOption("-openings", QMetaType::QStringList);
280 parser.addOption("-bookmode", QMetaType::QString);
281 parser.addOption("-pgnout", QMetaType::QStringList, 1, 3);
282 parser.addOption("-epdout", QMetaType::QString, 1, 1);
283 parser.addOption("-repeat", QMetaType::Int, 0, 1);
284 parser.addOption("-noswap", QMetaType::Bool, 0, 0);
285 parser.addOption("-reverse", QMetaType::Bool, 0, 0);
286 parser.addOption("-recover", QMetaType::Bool, 0, 0);
287 parser.addOption("-site", QMetaType::QString, 1, 1);
288 parser.addOption("-wait", QMetaType::Int, 1, 1);
289 parser.addOption("-seeds", QMetaType::UInt, 1, 1);
290 if (!parser.parse())
291 return nullptr;
292
293 GameManager* manager = CuteChessCoreApplication::instance()->gameManager();
294
295 QString ttype = parser.takeOption("-tournament").toString();
296 if (ttype.isEmpty())
297 ttype = "round-robin";
298 Tournament* tournament = TournamentFactory::create(ttype, manager, parent);
299 if (tournament == nullptr)
300 {
301 qWarning("Invalid tournament type: %s", qUtf8Printable(ttype));
302 return nullptr;
303 }
304
305 EngineMatch* match = new EngineMatch(tournament, parent);
306
307 QList<EngineData> engines;
308 QStringList eachOptions;
309 GameAdjudicator adjudicator;
310
311 const auto options = parser.options();
312 for (const auto& option : options)
313 {

Callers 1

mainFunction · 0.85

Calls 15

parseEngineFunction · 0.85
takeOptionMethod · 0.80
appendMethod · 0.80
setConcurrencyMethod · 0.80
toMapMethod · 0.80
setDrawThresholdMethod · 0.80
setResignThresholdMethod · 0.80
setMaximumGameLengthMethod · 0.80
setRoundMultiplierMethod · 0.80
setRatingIntervalMethod · 0.80
setOutcomeIntervalMethod · 0.80

Tested by

no test coverage detected