def autoReduceRange(cur=170, step=5, limit=300000, target=50, postfix=''): ls2 = hands_range.getRangeHands(cur) while True: db = mongo.generateDB(rangee=str(cur)) r = db.find_one({'hands': 'AA'}) if r and r['totalNum'] >= limit: ls2 = hands_range.reduceHands(cur) cur -= step continue updateHandsWinNumForRange(ls2, db)
def getRangeHands(l=165): if l >= 166: l = 169 return getDefault169HandsRange() db = mongo.generateDB(rangee=str(l)) res = db.find({}).sort([('winRate', -1)]) result = [] for data in res: result.append(data['hands']) return result
def topHandsResult(k=0.25): if type(k) == float: k = int(169 * k) ratedb = mongo.generateDB(rangee='169') res = ratedb.find({}).sort([('winRate0', -1)]) handsResult = set() for i in range(0, k): hands = Card.arrayFromString(res[i]['hands']) handsResult.add(hands) if __name__ == '__main__': print(res[i]['hands'], end=' ') return handsResult
def reduceHands(fromRange=165, step=5, winRate='winRate0', postfix=''): length = fromRange - step dbfrom = mongo.generateDB(playerNum=2, rangee=str(fromRange), postfix=postfix) res = mongo.getSortedData(dbfrom, winRate, -1) result = [] for data in res: result.append(data['hands']) if __name__ == '__main__': print(result[0:length]) return result[0:length]
def updateResultStatisData(handsRange=170, playerNum=2, step=5, limit=1000000, target=80, postfix='NoneHigh'): ls = hands_range.getRangeHands(handsRange) t1 = time.time() while True: db = mongo.generateDB(playerNum=playerNum, rangee=str(handsRange), postfix=postfix) r = db.find_one({'hands': 'AA'}) if r and r['totalNum'] >= limit: ls = hands_range.reduceHands(handsRange, postfix=postfix) handsRange -= step continue print('%.1f' % (time.time() - t1), len(ls)) t1 = time.time() updateHandsWinNumForRange(ls, playerNum, db)