// decide what to do and do it void botPlay(playerT *botP, partyT *partyP, tableT *tableP, int trumpSuit) { if (botP == partyP->defender) { // check if table is already beaten or already taken cards if (playerInRound(botP) && !tableBeaten(tableP)) { botDefend(botP,tableP,trumpSuit); } } else { // only attack if not done if (playerInRound(botP)) { botAttack(botP,partyP,tableP,trumpSuit); } } }
void BotStateResponse::fromJson(const QString& json) { QJsonDocument document = QJsonDocument::fromJson(json.toUtf8()); QJsonObject documentObject = document.object(); _id = documentObject["id"].toInt(); QJsonObject botObject = documentObject["bot"].toObject(); QString botId = botObject["id"].toString(); QString botIp = botObject["ip"].toString(); QString botOs = botObject["os"].toString(); BotState botState = static_cast<BotState>(botObject["state"].toInt()); QJsonObject attackObject = botObject["attack"].toObject(); int attackId = attackObject["id"].toInt(); QString attackTarget = attackObject["target"].toString(); Attack botAttack(attackId, attackTarget); _bot = new Bot(botId, botIp, botOs, botState, botAttack); }